Back

Manually Built Blog RSS with Category Filter

Description

Manually Built Blog RSS with Category Filter.  This goes along with the Blog listing and Blog detail codeshare examples.

Code

#if($request.getParameter("cat"))
  #set($catVar=$request.getParameter("cat"))
  #set($catQuery = "+(categories:$catVar)")
#end


#set($nowsers= $date.format('yyyyMMddHHmmss', $date.getDate()))
#set($finalQuery = "+structureName:Blog $!{catQuery} +Blog.sysPublishDate:[19001010101000 TO $nowsers]")

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:jf="http://${host.hostname}/blogs/rss">
<channel>
<title>Quest Financial Blogs</title>
<link>http://${host.hostname}/blogs/</link>
<description>Most Recent $!{catVar} - Quest Financial Blog</description>
<language>en-US</language>
<pubDate>$!{date.format('yyyy-MM-dd', $date.getDate())}T$!{date.format('hh:mm:ss', $date.getDate())}</pubDate>
    
#set($blogContent= $dotcontent.pull("${finalQuery}",50,"Blog.sysPublishDate desc"))  
#foreach($blogEntry in $blogContent)
<item>
  <title>$webapi.xmlEscape($!{blogEntry.title})</title>
  <description>$webapi.xmlEscape($UtilMethods.prettyShortenString("$blogEntry.body", 200))</description>
  <link>http://${host.hostname}/blog/$blogEntry.urlTitle</link>
  <pubDate>$!{date.format('yyyy-MM-dd', $blogEntry.sysPublishDate)}T$!{date.format('hh:mm:ss', $blogEntry.sysPublishDate)}</pubDate>
  <guid>http://${host.hostname}/blog/$blogEntry.urlTitle</guid>
</item>
#end
</channel>
</rss>    

Have you created code you'd like to share with the dotCMS community?

Share your code Become a Contributor