Toggle navigation
Log-in
Register
Home
Page Index
User Index
Application Index
Global
Languages
Default Language
Wiki Index
RAWFIE Wiki
Modified Pages RSS Feed
Wiki source code of
Modified Pages RSS Feed
Last modified by
Marcel Heckel
on 2017/01/25 10:29
Show line numbers
{{velocity}} ## TODO: Rewrite this page completely so that it uses the same source as the Activity Stream Macro ## Backward compatibility redirect, if the RSS feed is called without the outputSyntax query argument, force it. #if (("$!request.xpage" == 'plain' || "$!request.xpage" == 'rdf') && "$!request.outputSyntax" != 'plain') $response.sendRedirect($xwiki.getURL($doc.fullName, 'view', 'xpage=plain&outputSyntax=plain')) #end #if ("$!request.xpage" == 'plain' && "$!request.outputSyntax" == 'plain') $response.setContentType('application/rss+xml') ## ====================== ## Compute Query to find documents ## ====================== #if("$!{request.tag}" != '') ## RSS feed for documents tagged with $request.tag #set ($query = 'from doc.object(XWiki.TagClass) as tag where (') #foreach ($tag in $request.getParameterValues('tag')) #set ($query = "$query :tag${foreach.count} member of tag.tags") #if ($foreach.hasNext) #set ($query = "$query OR ") #end #end #set ($query = "$query) AND ") #else #set ($query = 'where') #end #if("$!{request.space}" == '') ## RSS feed for the whole wiki #set ($query = "$query 1=1") #else ## RSS feed for spaces #set ($query = "$query (") #foreach ($space in $request.getParameterValues('space')) #set ($query = "$query doc.space=:space${foreach.count} OR doc.space LIKE :space_nested${foreach.count}") #if ($foreach.hasNext) #set ($query = "$query OR ") #end #end #set ($query = "$query)") #end #set ($query = "$query order by doc.date desc") ## ============== ## Bind Query parameters ## ============== ## Bind query parameters depending on the passed query string parameters #set ($queryObject = $services.query.xwql($query).addFilter('hidden/document').addFilter('currentlanguage').setLimit(20).setOffset(0)) #if("$!{request.tag}" != '') #foreach ($tag in $request.getParameterValues('tag')) #set ($queryObject = $queryObject.bindValue("tag${foreach.count}", $tag)) #end #end #if("$!{request.space}" != '') #foreach ($space in $request.getParameterValues('space')) #set ($queryObject = $queryObject.bindValue("space${foreach.count}", $space)) #set ($queryObject = $queryObject.bindValue("space_nested${foreach.count}", "${space}.%")) #end #end ## ================ ## Compute feed description ## ================ ## 4 cases to handle: no spaces and tags specified, only spaces specified, only tags specified and spaces and tags specified #if ("$!{request.space}" != '') #if ("$!{request.tag}" != '') #set ($description = $services.localization.render('activity.rss.feed.tagsAndSpaces.description', [$stringtool.join($request.getParameterValues('tag'), ','), $stringtool.join($request.getParameterValues('space'), ',')])) #else #set ($description = $services.localization.render('activity.rss.feed.spaces.description', [$stringtool.join($request.getParameterValues('space'), ',')])) #end #else #if ("$!{request.tag}" != '') #set ($description = $services.localization.render('activity.rss.feed.tags.description', [$stringtool.join($request.getParameterValues('tag'), ',')])) #else #set ($description = $services.localization.render('activity.rss.feed.description')) #end #end ## ===================== ## Execute query and generate feed ## ===================== #set ($feed = $xwiki.feed.getWebFeed($queryObject.execute())) #set ($feedURI = $xwiki.getDocument('Main.WebHome').getExternalURL('view')) #set ($discard = $feed.setLink($feedURI)) #set ($discard = $feed.setUri($feedURI)) #set ($discard = $feed.setAuthor('XWiki')) #set ($discard = $feed.setTitle($services.localization.render('activity.rss.feed.description'))) #set ($discard = $feed.setDescription($description)) #set ($discard = $feed.setLanguage("$xcontext.locale")) #set ($discard = $feed.setCopyright($xwiki.getXWikiPreference('copyright'))) $xwiki.feed.getFeedOutput($feed, $xwiki.getXWikiPreference('feed_type', 'rss_2.0')) #end {{/velocity}}