ContributionsMost RecentMost LikesSolutionsRe: How to build a custom thread list for display in message-list-panel UPDATE: I've switched over to LiQL and an API v2 style of query for my message list and that has given me SO MUCH more flexibility in what I'm displaying. I think I've got the list built that I want to display, now I just need to learn the CSS/wrappers/style parts to display my widget like I'd like it to display....getting closer Re: How to build a custom thread list for display in message-list-panel Thanks RobertT, I'd love to build my own list-panel component if I just had a starting point. Wish I could see the source code of the OOTB one. Did I miss a KB article or How-To somewhere that shows a basic structure for a component like this? I'm not a fan of calling "black box" code that I can't see and is not documented, like the message-list-panel, so I'd be happy to build my own. Re: How to build a custom thread list for display in message-list-panel Thanks for the help RobertT, but I actually started off with that and it throws a slightly different error that I couldn't quite make sense of. This time, the code actually runs when I save it, but the Studio Preview function fails to render the preview with this error: Freemarker template 'preview' processing failed: RenderQueueException:Render queue error in BeginRender[forums/contributions/Optional:messagelistpanel.simplemessagelist.list.componentdisplay]: Failure reading parameter 'messageRowModelDatas' of component forums/contributions/Optional:messagelistpanel.simplemessagelist.list: lithium.boards.core.Community cannot be cast to lithium.coreapi.boards.IMessage How to build a custom thread list for display in message-list-panel I've been trying to build a custom component that will display only unanswered threads authored by paying customers. Our paying customers have a role assigned to them "customer", so I'm querying the REST API for a list of unanswered posts, then identifying the author of each post, querying the roles of said author, then if they have the correct role, I want to append that thread to my sequence variable, which I will feed to the "forums.widget.message-list-panel" component for display. Here's my code snippet: <#list rest("/search/messages?openresponse=true&sort_by=-topicPostDate&page_size=" + results_list_size).messages.message as message> <#assign author = message.author.login> <#assign authorID = restadmin("/users/login/${author}/id").value> <#list restadmin("/users/id/${authorID}/roles").roles.role.name as authorRole> <#if authorRole?? && (authorRole == "customer")> <#assign messagelist = messagelist + message> When I save this code, Studio throws this exception: FreeMarker template error Only elements with no child elements can be processed as text. This element with name "message" has a child element named: thread The failing instruction (FTL stack trace): ---------- ==> #assign messagelist = messagelist + m... [in template "preview" at line 27, column 7] ---------- But if I change my message variable to drill down to the "thread" node level, by changing this line: <#assign messagelist = messagelist + message> to this: <#assign messagelist = messagelist + [message.thread]> it complains that my right-hand operand is not convertible to a string: For "+" right-hand operand: Expected a string or something automatically convertible to string (number, date or boolean), but this evaluated to a sequence (wrapper: f.t.SimpleSequence): ==> [message.thread] [in template "preview" at line 27, column 44] The failing instruction (FTL stack trace): ---------- ==> #assign messagelist = messagelist + [... [in template "preview" at line 27, column 7] ---------- What am I doing wrong? In other languages, this is just an array that I'm trying to append to, but Freemarker doesn't seem to like that. Ultimately, I just want to display this custom-built list of unanswered threads with this code: <div class="lia-panel lia-panel-standard top-five-threads-with-no-replies-wrapper"> <@component id="forums.widget.message-list-panel" title="${message_list_title}" messages="rest_v1:"+messagelist style="wide" numMessages="conv:"+results_list_size /> </div> Re: How to get subscription digest messages in chronological order Thank you for the reply, that does look like something I can consider. Do you know if it will work in the email templates, though? It seems that the templates don't use pure Freemarker, but some shorthand of it. I say this because they don't enclose the freemarker syntax in < > brackets like pure Freemarker would be, so I'm confused as to what tools are at my disposal in the email templates. How to get subscription digest messages in chronological order I'm working with the Digest Subscription email template and making it more legible and easy to use, but one thing that's bothering me is that for any particular board, the "notifications" are jumbled in random order. I'm not seeing any freemarker code for sorting by date. Has anyone else modified their digest email templates to present the updates in chronological order? I'd like the messages to be sorted newest->oldest. Thanks Re: How do I access recommended (related posts) content widget through the REST API? Can someone post back the solution to this thread? I'm curious about this functionality too. I am trying to put a "Related Topics" widget elsewhere on my corporate website. Thanks, Clint