Web Script: org/alfresco/modules/discussions/rss/topiclist-rss.get
Generated from /share/service/script/org/alfresco/modules/discussions/rss/topiclist-rss.get on Jun 14, 2026 2:45:06 PM

Script Properties
Id:org/alfresco/modules/discussions/rss/topiclist-rss.get
Short Name:Discussions RSS
Description:Discussions: RSS of List of Topics component
Authentication:user
Transaction:required
Method:GET
URL Template:/components/discussions/rss
Format Style:any
Default Format:rss
Negotiated Formats:[undefined]
Implementation:class org.alfresco.web.scripts.DeclarativeWebScript
Extensions:[undefined]

Store: classpath:alfresco/site-webscripts

File: org/alfresco/modules/discussions/rss/topiclist-rss.get.desc.xml
<webscript>
  <shortname>Discussions RSS</shortname>
  <description>Discussions: RSS of List of Topics component</description>
  <url>/components/discussions/rss</url>
  <format default="rss"/>
  <authentication>user</authentication>
</webscript>
File: org/alfresco/modules/discussions/rss/topiclist-rss.get.js
function convertTopicJSONData(topic)
{
    // created
    var created = new Date(topic["createdOn"])
    topic["createdOn"] = created;
    
    // last reply
    if (topic["lastReplyOn"] != undefined)
    {
        topic["lastReplyOn"] = new Date(topic["lastReplyOn"])
    }
}

/**
 * Converts the data object from strings to the proper types
 * (currently this only handles strings
 */
function convertTopicsJSONData(data)
{
    for (var x=0; x < data.items.length; x++)
    {
        convertTopicJSONData(data.items[x]);
    }
}

function main()
{
    
   // gather all required data
   var site = args["site"];
   var container = (args["container"] != undefined) ? args["container"] : "discussions";
   
   var url = '/api/forum/site/' + site + '/' + container + "/posts?contentLength=512";
   
   var connector = remote.connect("alfresco-feed");
   var result = connector.get(url);
   if (result.status != status.STATUS_OK)
   {
      status.setCode(status.STATUS_INTERNAL_SERVER_ERROR, "Unable to do backend call. " +
                     "status: " + result.status + ", response: " + result.response);
      return null;
   }
   var data = eval('(' + result.response + ')');
   convertTopicsJSONData(data);
   model.items = data.items;

   // set additional properties
   // PENDING: where to get this information?
   var lang = "en-us";
   model.lang = lang;
   model.site = site;
   model.container = container;
}

main();
File: org/alfresco/modules/discussions/rss/topiclist-rss.get.properties
#
#   file topiclist-rss.get.rss.ftl
#
topiclistrss.title=Alfresco Discussions Topics
topiclistrss.description=RSS feed of the discussions
topiclistrss.nocontent=No topic content yet
File: org/alfresco/modules/discussions/rss/topiclist-rss.get.rss.ftl
<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>${msg("topiclistrss.title")}</title>
		<link>${absurl(url.context)}/service/components/discussions/rss?site=${site}&amp;container=${container}</link>
		<description>${msg("topiclistrss.description")}</description>
		<language>${lang}</language>

		<#if (items?size > 0)>
			<#list items as topic>
			      <item>
			         <title>${topic.title?html}</title>
			         <link>${absurl(url.context)}/page/site/${site}/discussions-topicview?container=${container}&amp;topicId=${topic.name}</link>
			         <description>${topic.content?html}</description>
                     <#-- make sure we use en_US for date rendering -->
                     <#assign currentLocale=locale />
                     <#setting locale="en_US" />
                     <pubDate>${topic.createdOn?datetime?string("EEE, dd MMM yyyy HH:mm:ss Z")}</pubDate>
                     <#setting locale=currentLocale />
			      </item>
			</#list>
		<#else>
		      <item>${msg("topiclistrss.nocontent")}</item>
		</#if>
	</channel>
</rss>

Store: classpath:alfresco/webscripts

[No implementation files]