Wiki source code of Modified Pages RSS Feed

Last modified by superadmin on 2022/05/03 16:48

Show last authors
1 {{velocity}}
2 ## Backward compatibility redirect, if the RSS feed is called without the outputSyntax query argument, force it.
3 #if (("$!request.xpage" == 'plain' || "$!request.xpage" == 'rdf') && "$!request.outputSyntax" != 'plain')
4 $response.sendRedirect($xwiki.getURL($doc.fullName, 'view', 'xpage=plain&outputSyntax=plain'))
5 #end
6 #if ("$!request.xpage" == 'plain' && "$!request.outputSyntax" == 'plain')
7 $response.setContentType('application/rss+xml')
8 ## ======================
9 ## Compute Query to find documents
10 ## ======================
11 #if("$!{request.tag}" != '')
12 ## RSS feed for documents tagged with $request.tag
13 #set ($query = 'from doc.object(XWiki.TagClass) as tag where (')
14 #foreach ($tag in $request.getParameterValues('tag'))
15 #set ($query = "$query :tag${foreach.count} member of tag.tags")
16 #if ($foreach.hasNext)
17 #set ($query = "$query OR ")
18 #end
19 #end
20 #set ($query = "$query) AND ")
21 #else
22 #set ($query = 'where ')
23 #end
24 #if("$!{request.space}" == '')
25 ## RSS feed for the whole wiki
26 #set ($query = "$query 1=1")
27 #else
28 ## RSS feed for spaces
29 #set ($query = "$query (")
30 #foreach ($space in $request.getParameterValues('space'))
31 #set ($query = "$query doc.space=:space${foreach.count}")
32 #if ($foreach.hasNext)
33 #set ($query = "$query OR ")
34 #end
35 #end
36 #set ($query = "$query)")
37 #end
38 #set ($query = "$query order by doc.date desc")
39 ## ==============
40 ## Bind Query parameters
41 ## ==============
42 ## Bind query parameters depending on the passed query string parameters
43 #set ($queryObject = $services.query.xwql($query).addFilter('currentlanguage').setLimit(20).setOffset(0))
44 #if("$!{request.tag}" != '')
45 #foreach ($tag in $request.getParameterValues('tag'))
46 #set ($queryObject = $queryObject.bindValue("tag${foreach.count}", $tag))
47 #end
48 #end
49 #if("$!{request.space}" != '')
50 #foreach ($space in $request.getParameterValues('space'))
51 #set ($queryObject = $queryObject.bindValue("space${foreach.count}", $space))
52 #end
53 #end
54 ## ================
55 ## Compute feed description
56 ## ================
57 ## 4 cases to handle: no spaces and tags specified, only spaces specified, only tags specified and spaces and tags specified
58 #if ("$!{request.space}" != '')
59 #if ("$!{request.tag}" != '')
60 #set ($description = $services.localization.render('xe.rss.feed.tagsAndSpaces.description', [$stringtool.join($request.getParameterValues('tag'), ','), $stringtool.join($request.getParameterValues('space'), ',')]))
61 #else
62 #set ($description = $services.localization.render('xe.rss.feed.spaces.description', [$stringtool.join($request.getParameterValues('space'), ',')]))
63 #end
64 #else
65 #if ("$!{request.tag}" != '')
66 #set ($description = $services.localization.render('xe.rss.feed.tags.description', [$stringtool.join($request.getParameterValues('tag'), ',')]))
67 #else
68 #set ($description = $services.localization.render('xe.rss.feed.description'))
69 #end
70 #end
71 ## =====================
72 ## Execute query and generate feed
73 ## =====================
74 #set ($feed = $xwiki.feed.getWebFeed($queryObject.execute()))
75 #set ($feedURI = $xwiki.getDocument('Main.WebHome').getExternalURL('view'))
76 #set ($discard = $feed.setLink($feedURI))
77 #set ($discard = $feed.setUri($feedURI))
78 #set ($discard = $feed.setAuthor('XWiki'))
79 #set ($discard = $feed.setTitle($services.localization.render('xe.rss.feed.description', [$text])))
80 #set ($discard = $feed.setDescription($description))
81 #set ($discard = $feed.setLanguage($xcontext.language))
82 #set ($discard = $feed.setCopyright($xwiki.getXWikiPreference('copyright')))
83 $xwiki.feed.getFeedOutput($feed, $xwiki.getXWikiPreference('feed_type', 'rss_2.0'))
84 #end
85 {{/velocity}}
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 13.10.5 - Documentation