ContributionsMost RecentMost LikesSolutionsRe: Driving Growth in Community with Banners & Content Gates That's good to hear, and I'm sure that's true of other features we might be using (the basic functionality being called "something else" in Aurora). We know that we eventually need to move to Aurora, but it's difficult when a bunch of custom functionality needs to be re-implemented. I assume it's also going to involve Professional Services, since we will have to map data from the "Classic" method to the "Aurora" methods :) It's an ongoing discussion we're having with our CSM. Re: Driving Growth in Community with Banners & Content Gates Lief we're on Classic and, due to the massive amount of custom components we've developed, and of course missing functionality like custom tags, which are used in other components as well, I don't see a path where we can successfully migrate to Aurora anytime soon. Re: Driving Growth in Community with Banners & Content Gates It's a bit complicated to explain as it requires components, CSS, and layout changes. At a high level, I created two new components (one for blogs, one for regular forums) that embed several of the components of the BlogArticlePage and ForumTopicPage in a DIV that is hidden. Why? So Google can still index the post, but the end user will see the prompt to log in. To reference a component in another component, do something like the following: <@component id="topic-message" /> The exact components you will embed depend on your existing page layouts. To determine IF a post is gated, I use something like the following: <#-- This query should only return a single result if the tag is set in the post. Otherwise it should return zero results --> <#assign gated_query = "SELECT custom_tag_scope FROM messages WHERE custom_tags.id = 'isgated' AND id = '${id}'" /> <#assign gated_result = rest("2.0", "/search?q=" + gated_query?url).data.size!0 /> <#if gated_result gt 0 > <#assign gated = true /> <#else> <#assign gated = false /> </#if> isgated is the ID of my Custom Tag and it's an "is present" type. Based on that plus other logic (some blogs aren't gated by design, for instance), we can render a partial message in place of the topic-message component. That code fragment looks like this: <#assign subject = (page.context.thread.topicMessage.subject)!"" /> <h2 itemprop="name" class="message-subject"> <span class="lia-message-unread"> <div class="lia-message-subject" style="font-size: 22px;color: #2d2e31;margin-bottom: 5px;">${subject?no_esc}</div> </span> </h2> <#assign body = (page.context.thread.topicMessage.body)!"" /> <div class="short-message" style="font-size: 16px;"> ${utils.html.truncate(1200, body, "...")?no_esc} </div> <div class="footer_bottom"> <div></div> </div <span>TO READ THE FULL POST</span> <div class="buttons"> <a class="read-more" href="yourRegistrationURL" target="_blank">REGISTER</a> <a class="read-more" href="yourLoginURL" target="_blank">SIGN IN</a> </div> <span class="extra-info">it's simple and free</span> <@component id="thread-pager" /> The body is truncated to 1200 characters (you can obviously adjust this). Also, to make it easy to assign the custom tag to the message, I added the modbar-toggle component to the ForumMessage and BlogArticle layouts, which allows me to easily set the is_gated flag easily. Re: Driving Growth in Community with Banners & Content Gates We haven't gotten any complaints from anyone about it. Re: How do I get the article ID in Freemarker in a TkbArticle? It'd be nice if I could get the canonical_url directly. However, if I can get the message ID, which I can now do thanks to AmanMalhotra's post, I can pull it via a query easily enough. Driving Growth in Community with Banners & Content Gates Strategically placed banners and content gates can be a simple tactic to help maintain momentum for the Community product. How do I get the article ID in Freemarker in a TkbArticle? This is Community Classic. I'm trying to write a component to display something from a hidden field (canonical_url) while on the page of a TkbArticle. It doesn't appear that either page.context.message.id or env.context.message.id work in anything Tkb related. What other options do I have to retrieve this information in the context of the page itself? SolvedRe: Khoros Communities 24.2 Release Yet another example of the inconsistent experience I receive when I need to engage Khoros TAC...I was never offered this workaround! I ultimately decided to move away from using Products for the purpose I was using them for. Seems like this functionality was never fully developed and, given the eventual migration to Aurora, it doesn't seem prudent to waste further time attempting to use it. Re: Khoros Communities 24.2 Release For me, this release broke any queries where products.id was a constraint. Had to reimplement my custom components and relabel data in order to address the issue in a timely manner. Re: Is a Studio cheat sheet available? To do this properly will require custom components. In one instance, we use a TKB with articles that have various labels and product associations that are pulled by a few different components. This works for both hosted assets and links to external assets, which I encode in the canonical URL field of the article and my code will read and use. The components themselves can be included on any page. it also minimizes code changes as I can enable people to make changes to the TKB, which then changes the menus. I can share some code samples if it's relevant.