Change contents of a resuable page builder page dynamically.
I have a problem that I'm not quite sure how to tackle...
I have a set of 3 page wrappers that are all identical except for the CSS they call so that they can appear with different colors and fonts. But the fundamental display of the content remains untouched. The intent is to have a series of websites be created for upcoming events this year and to plug them into the page wrapper of their choice.
So far so good - i have a reusable nav, reusable sidebar and a reusable footer plugged into the page wrapper and then using [[S63:3]] I bring in the page builder content. All of it works great except now I'm struggling with how to make the navigation links and sidebar links unique for each event. I don't want to have to copy the page wrapper X amount of times and have many copies where only the reusable navigation and reusable sidebar name are altered.
My initial idea for getting around this would be to use Javascript within these files to check the name of the event from the URL path and then serve the right set of links based on that. The big drawback here is that i'll have to manually go in and input the navigation and sidebar links along with a unique identifier for them...what's worse is that as my list of sites grows so does the size of these files. I can see it becoming a huge headache to maintain these files and the goal is to eventually have less technical people be able to set these sites up themselves. So the JS solution doesn't really seem all that viable...
Does anyone know of any S-tags or any Luminate wizardry that could help with this?
Much appreciated!
-Mike
Comments
-
I'd do this with S-Tags.
If you can differenciate the events based on the URL, use the S8 tag.
https://www.blackbaud.com/files/support/helpfiles/luminate-online/help/luminateonline.html#../Subsystems/S-Tags/Content/S-Tags/S8_Current_URL.html
We do something similar to style particular sections in Teamraiser.
[[?[[S8]]::pg=entry::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-home.css" />
::
[[?[[S8]]::pg=personal::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-personal.css" />
::
[[?[[S8]]::pg=team::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-team.css" />
::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout.css" />
]]]]]]
EDIT: To finish with this idea. You'd replace the style links with sidebar and navigation reusables. You can even put this entire nested conditional in a reusable, so you aren't editing the wrapper all the time.
[[?[[S8]]::pg=entry::
[[S51:reus_SidebarOne]]
::
[[?[[S8]]::pg=personal::
[[S51:reus_SidebarTwo]]
::
[[?[[S8]]::pg=team::
[[S51:reus_SidebarThree]]
::
[[S51:reus_SidebarDefault]]
]]]]]]2 -
Brian Mucha:
I'd do this with S-Tags.
If you can differenciate the events based on the URL, use the S8 tag.
https://www.blackbaud.com/files/support/helpfiles/luminate-online/help/luminateonline.html#../Subsystems/S-Tags/Content/S-Tags/S8_Current_URL.html
We do something similar to style particular sections in Teamraiser.
[[?[[S8]]::pg=entry::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-home.css" />
::
[[?[[S8]]::pg=personal::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-personal.css" />
::
[[?[[S8]]::pg=team::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-team.css" />
::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout.css" />
]]]]]]Hi Brian,
Thanks for the reply! That sounds like something that I might be able to do. If you don't mind could I pick your brain about the S8 tag?
I've looked at the link you sent me to and it seems like it's use case is very similar to what I was going to do with Javascript. Just to be sure though...in your example you have the [[S8]]::pg=entry...I imagine that the "entry" is the page name or unique identifier that when present will have that stylesheet added to the page. If you were to make a new page, lets say called "login" would you have to go to the page/file where these s-tags are and add in another [[S8]]::pg=login to make the custom changes to it?
0 -
Michael Turner:
Brian Mucha:
I'd do this with S-Tags.
If you can differenciate the events based on the URL, use the S8 tag.
https://www.blackbaud.com/files/support/helpfiles/luminate-online/help/luminateonline.html#../Subsystems/S-Tags/Content/S-Tags/S8_Current_URL.html
We do something similar to style particular sections in Teamraiser.
[[?[[S8]]::pg=entry::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-home.css" />
::
[[?[[S8]]::pg=personal::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-personal.css" />
::
[[?[[S8]]::pg=team::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout-team.css" />
::
<link rel="stylesheet" type="text/css" href="../_wrappers/stepup/2011/layout.css" />
]]]]]]Hi Brian,
Thanks for the reply! That sounds like something that I might be able to do. If you don't mind could I pick your brain about the S8 tag?
I've looked at the link you sent me to and it seems like it's use case is very similar to what I was going to do with Javascript. Just to be sure though...in your example you have the [[S8]]::pg=entry...I imagine that the "entry" is the page name or unique identifier that when present will have that stylesheet added to the page. If you were to make a new page, lets say called "login" would you have to go to the page/file where these s-tags are and add in another [[S8]]::pg=login to make the custom changes to it?Yes, exactly.
In teamraiser the URL looks like: http://foundation.luriechildrens.org/site/TR?fr_id=1680&pg=entry
So we can use S8 to ask "If the URL contains 'pg=entry' then use these assets, otherwise if the url contains..." and so on.
Any page not tested for would use the last default set.
EDIT: Note that you can only nest conditionals around 20 deep or so. If the logic stops working, then you need to start a new nested set. Just have the previous set's default be nothing.
2 -
Ok great thanks for clarifying! Certainly nice to know that there is an in house solution that wouldn't require javascript. Sounds like this is the route to go - only bummer is someone reasonably technical will always have to be involved to update the S-tag and the specific commands it should perform every time a new site is introduced... Thats ok though I suppose.
Thanks a lot for your help Brian, I appreciate it very much!0 -
The nice thing about having this all isolated in a reusable page is you can comment the heck out of it and keep it simple.
Nested conditionals are a bit tricky. You could just have them stacked, which would be way easier for the less technical. You don't get a final default that way though.
I bet most people could figure out how to add page four in this:
[[? [[S8]] :: "first_page_id" :: <first assets> :: ]]
[[? [[S8]] :: "second_page_id" :: <second assets> :: ]]
[[? [[S8]] :: "third_page_id" :: <third assets> :: ]]1 -
Michael Turner:
Hi all,
I have a problem that I'm not quite sure how to tackle...
I have a set of 3 page wrappers that are all identical except for the CSS they call so that they can appear with different colors and fonts. But the fundamental display of the content remains untouched. The intent is to have a series of websites be created for upcoming events this year and to plug them into the page wrapper of their choice.
So far so good - i have a reusable nav, reusable sidebar and a reusable footer plugged into the page wrapper and then using [[S63:3]] I bring in the page builder content. All of it works great except now I'm struggling with how to make the navigation links and sidebar links unique for each event. I don't want to have to copy the page wrapper X amount of times and have many copies where only the reusable navigation and reusable sidebar name are altered.
My initial idea for getting around this would be to use Javascript within these files to check the name of the event from the URL path and then serve the right set of links based on that. The big drawback here is that i'll have to manually go in and input the navigation and sidebar links along with a unique identifier for them...what's worse is that as my list of sites grows so does the size of these files. I can see it becoming a huge headache to maintain these files and the goal is to eventually have less technical people be able to set these sites up themselves. So the JS solution doesn't really seem all that viable...
Does anyone know of any S-tags or any Luminate wizardry that could help with this?
Much appreciated!
-MikeAnother solution is use S151 tag that test if a named page is available or not like that:
====================
[[?[[E151:reus_assets_[[S334:pg]]::TRUE
::
[[E51:reus_assets_[[S334:pg]]]]
::
[[E51:reus_assets]]
]]
====================
You can just create new reusable pages based on "pg" parameter like (reus_assets_entry, reus_assets_personal, etc...) without any extra conditions. The above condition appends the URL paramter "pg" to "reus_assets_" and evaluates if there is a page with this name. If yes, include it with S51 tag. Otherwise, include a default one "reus_assets".
3
Categories
- All Categories
- Shannon parent
- shannon 2
- shannon 1
- 21 Advocacy DC Users Group
- 14 BBCRM PAG Discussions
- 89 High Education Program Advisory Group (HE PAG)
- 28 Luminate CRM DC Users Group
- 8 DC Luminate CRM Users Group
- Luminate PAG
- 5.9K Blackbaud Altru®
- 58 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 409 bbcon®
- 2.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- donorCentrics®
- 1.1K Blackbaud eTapestry®
- 2.8K Blackbaud Financial Edge NXT®
- 1.1K Blackbaud Grantmaking™
- 527 Education Management Solutions for Higher Education
- 1 JustGiving® from Blackbaud®
- 4.6K Education Management Solutions for K-12 Schools
- Blackbaud Luminate Online & Blackbaud TeamRaiser
- 16.4K Blackbaud Raiser's Edge NXT®
- 4.1K SKY Developer
- 547 ResearchPoint™
- 151 Blackbaud Tuition Management™
- 61 everydayhero
- 3 Campaign Ideas
- 58 General Discussion
- 115 Blackbaud ID
- 87 K-12 Blackbaud ID
- 6 Admin Console
- 949 Organizational Best Practices
- 353 The Tap (Just for Fun)
- 235 Blackbaud Community Feedback Forum
- 55 Admissions Event Management EAP
- 18 MobilePay Terminal + BBID Canada EAP
- 36 EAP for New Email Campaigns Experience in Blackbaud Luminate Online®
- 109 EAP for 360 Student Profile in Blackbaud Student Information System
- 41 EAP for Assessment Builder in Blackbaud Learning Management System™
- 9 Technical Preview for SKY API for Blackbaud CRM™ and Blackbaud Altru®
- 55 Community Advisory Group
- 46 Blackbaud Community Ideas
- 26 Blackbaud Community Challenges
- 7 Security Testing Forum
- 3 Blackbaud Staff Discussions
- 1 Blackbaud Partners Discussions
- 1 Blackbaud Giving Search™
- 35 EAP Student Assignment Details and Assignment Center
- 39 EAP Core - Roles and Tasks
- 59 Blackbaud Community All-Stars Discussions
- 20 Blackbaud Raiser's Edge NXT® Online Giving EAP
- Diocesan Blackbaud Raiser’s Edge NXT® User’s Group
- 2 Blackbaud Consultant’s Community
- 43 End of Term Grade Entry EAP
- 92 EAP for Query in Blackbaud Raiser's Edge NXT®
- 38 Standard Reports for Blackbaud Raiser's Edge NXT® EAP
- 12 Payments Assistant for Blackbaud Financial Edge NXT® EAP
- 6 Ask an All Star (Austen Brown)
- 8 Ask an All-Star Alex Wong (Blackbaud Raiser's Edge NXT®)
- 1 Ask an All-Star Alex Wong (Blackbaud Financial Edge NXT®)
- 6 Ask an All-Star (Christine Robertson)
- 21 Ask an Expert (Anthony Gallo)
- Blackbaud Francophone Group
- 22 Ask an Expert (David Springer)
- 4 Raiser's Edge NXT PowerUp Challenge #1 (Query)
- 6 Ask an All-Star Sunshine Reinken Watson and Carlene Johnson
- 4 Raiser's Edge NXT PowerUp Challenge: Events
- 14 Ask an All-Star (Elizabeth Johnson)
- 7 Ask an Expert (Stephen Churchill)
- 2025 ARCHIVED FORUM POSTS
- 322 ARCHIVED | Financial Edge® Tips and Tricks
- 164 ARCHIVED | Raiser's Edge® Blog
- 300 ARCHIVED | Raiser's Edge® Blog
- 441 ARCHIVED | Blackbaud Altru® Tips and Tricks
- 66 ARCHIVED | Blackbaud NetCommunity™ Blog
- 211 ARCHIVED | Blackbaud Target Analytics® Tips and Tricks
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- Luminate CRM DC Users Group
- 225 ARCHIVED | Blackbaud eTapestry® Tips and Tricks
- 1 Blackbaud eTapestry® Know How Blog
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
- 1 Blackbaud K-12 Education Solutions™ Blog
- 280 ARCHIVED | Mixed Community Announcements
- 3 ARCHIVED | Blackbaud Corporations™ & Blackbaud Foundations™ Hosting Status
- 1 npEngage
- 24 ARCHIVED | K-12 Announcements
- 15 ARCHIVED | FIMS Host*Net Hosting Status
- 23 ARCHIVED | Blackbaud Outcomes & Online Applications (IGAM) Hosting Status
- 22 ARCHIVED | Blackbaud DonorCentral Hosting Status
- 14 ARCHIVED | Blackbaud Grantmaking™ UK Hosting Status
- 117 ARCHIVED | Blackbaud CRM™ and Blackbaud Internet Solutions™ Announcements
- 50 Blackbaud NetCommunity™ Blog
- 169 ARCHIVED | Blackbaud Grantmaking™ Tips and Tricks
- Advocacy DC Users Group
- 718 Community News
- Blackbaud Altru® Hosting Status
- 104 ARCHIVED | Member Spotlight
- 145 ARCHIVED | Hosting Blog
- 149 JustGiving® from Blackbaud® Blog
- 97 ARCHIVED | bbcon® Blogs
- 19 ARCHIVED | Blackbaud Luminate CRM™ Announcements
- 161 Luminate Advocacy News
- 187 Organizational Best Practices Blog
- 67 everydayhero Blog
- 52 Blackbaud SKY® Reporting Announcements
- 17 ARCHIVED | Blackbaud SKY® Reporting for K-12 Announcements
- 3 Luminate Online Product Advisory Group (LO PAG)
- 81 ARCHIVED | JustGiving® from Blackbaud® Tips and Tricks
- 1 ARCHIVED | K-12 Conference Blog
- Blackbaud Church Management™ Announcements
- ARCHIVED | Blackbaud Award Management™ and Blackbaud Stewardship Management™ Announcements
- 1 Blackbaud Peer-to-Peer Fundraising™, Powered by JustGiving® Blogs
- 39 Tips, Tricks, and Timesavers!
- 56 Blackbaud Church Management™ Resources
- 154 Blackbaud Church Management™ Announcements
- 1 ARCHIVED | Blackbaud Church Management™ Tips and Tricks
- 11 ARCHIVED | Blackbaud Higher Education Solutions™ Announcements
- 7 ARCHIVED | Blackbaud Guided Fundraising™ Blog
- 2 Blackbaud Fundraiser Performance Management™ Blog
- 9 Foundations Events and Content
- 14 ARCHIVED | Blog Posts
- 2 ARCHIVED | Blackbaud FIMS™ Announcement and Tips
- 59 Blackbaud Partner Announcements
- 10 ARCHIVED | Blackbaud Impact Edge™ EAP Blogs
- 1 Community Help Blogs
- Diocesan Blackbaud Raiser’s Edge NXT® Users' Group
- Blackbaud Consultant’s Community
- Blackbaud Francophone Group
- 1 BLOG ARCHIVE CATEGORY
- Blackbaud Community™ Discussions
- 8.3K Blackbaud Luminate Online® & Blackbaud TeamRaiser® Discussions
- 5.7K Jobs Board