[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS Updated to RSS 2.0

Charlie Clark charlie at begeistert.org
Wed Oct 6 06:34:40 EDT 2010


Log message for revision 117278:
  Updated to RSS 2.0

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS_template.pt

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS.py	2010-10-06 10:23:52 UTC (rev 117277)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS.py	2010-10-06 10:34:40 UTC (rev 117278)
@@ -3,8 +3,10 @@
 from ZTUtils import Batch
 from ZTUtils import LazyFilter
 from Products.CMFCore.utils import getUtilityByInterfaceName
+from Products.CMFCore.utils import getToolByName
 from Products.CMFDefault.utils import decode
 
+utool = getToolByName(script, 'portal_url')
 stool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ISyndicationTool')
 
 
@@ -13,16 +15,24 @@
              '/rssDisabled?portal_status_message=Syndication+is+Disabled')
     return
 
-
 options = {}
 
-options['channel_info'] = { 'base': stool.getHTML4UpdateBase(context),
-                            'description': context.Description(),
-                            'frequency': stool.getUpdateFrequency(context),
-                            'period': stool.getUpdatePeriod(context),
-                            'title': context.Title(),
-                            'url': context.absolute_url() }
+syndication_info = stool.getSyndicationInfo(context)
+converter = {'daily':1, 'weekly':7, 'monthly': 30, 'yearly': 365}
+ttl = 60 * 24 * (syndication_info['frequency'] *
+                    converter[syndication_info['period']]
+                )
 
+syndication_info.update({'description': context.Description(),
+                         'title': context.Title(),
+                         'url': context.absolute_url(),
+                         'ttl': ttl,
+                         'portal_url': utool()}
+                        )
+syndication_info['base'] = syndication_info['base'].rfc822()
+
+options['channel_info'] = syndication_info
+
 key, reverse = context.getDefaultSorting()
 items = stool.getSyndicatableContent(context)
 items = sequence.sort( items, ((key, 'cmp', reverse and 'desc' or 'asc'),) )
@@ -31,14 +41,15 @@
 batch_obj = Batch(items, b_size, 0, orphan=0)
 items = []
 for item in batch_obj:
-    items.append( { 'date': item.modified().HTML4(),
+    items.append( { 'date': item.modified().rfc822(),
                     'description': item.Description(),
                     'listCreators': item.listCreators(),
                     'listSubjects': item.Subject(),
                     'publisher': item.Publisher(),
                     'rights': item.Rights(),
                     'title': item.Title(),
-                    'url': item.absolute_url() } )
+                    'url': item.absolute_url(),
+                    'uid': None } )
 options['listItemInfos'] = tuple(items)
 
 return context.RSS_template(**decode(options, script))

Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS_template.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS_template.pt	2010-10-06 10:23:52 UTC (rev 117277)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/RSS_template.pt	2010-10-06 10:34:40 UTC (rev 117278)
@@ -1,40 +1,27 @@
 <?xml version="1.0"?>
-<rdf:RDF
-    xmlns:tal="http://xml.zope.org/namespaces/tal"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
-    xmlns="http://purl.org/rss/1.0/">
-  <channel rdf:about="URL"
-      tal:define="channel_info options/channel_info"
-      tal:attributes="rdf:about channel_info/url">
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
+     xmlns:tal="http://xml.zope.org/namespaces/tal"
+     xmlns:dc="http://purl.org/dc/elements/1.1/">
+  <channel tal:define="channel_info options/channel_info">
     <title tal:content="channel_info/title">TITLE</title>
     <link tal:content="channel_info/url">URL</link>
     <description
         tal:content="channel_info/description">DESCRIPTION</description>
-    <image rdf:resource="logo.png" />
-    <sy:updatePeriod
-        tal:content="channel_info/period">PERIOD</sy:updatePeriod>
-    <sy:updateFrequency
-        tal:content="channel_info/frequency">N</sy:updateFrequency>
-    <sy:updateBase
-        tal:content="channel_info/base">YYYY-MM-DDTHH:MM:SSZ</sy:updateBase>
-    <items>
-      <rdf:Seq>
-        <rdf:li resource="URL"
-            tal:repeat="item_info options/listItemInfos"
-            tal:attributes="resource item_info/url" />
-      </rdf:Seq>
-    </items>
-  </channel>
-  <item rdf:about="URL"
-      tal:repeat="item_info options/listItemInfos"
-      tal:attributes="rdf:about item_info/url">
+    <image>
+      <url tal:content="string:${channel_info/portal_url}/logo.png"></url>
+      <title tal:content="channel_info/title"></title>
+      <link tal:content="channel_info/url">URL</link>
+    </image>
+    <ttl tal:content="channel_info/ttl"></ttl>
+    <atom:link tal:attributes="href request/URL"
+                rel="self" type="application/rss+xml" />
+
+  <item tal:repeat="item_info options/listItemInfos">
     <title tal:content="item_info/title">TITLE</title>
-    <link tal:content="item_info/url">URL</link>
-    <description
-        tal:condition="item_info/description"
-        tal:content="item_info/description">DESCRIPTION</description>
+    <description tal:content="item_info/description"></description>
+    <link tal:content="item_info/url"></link>
+    <guid tal:condition="item_info/uid" tal:content="item/uid" ></guid>
+    <pubDate tal:content="item_info/date"></pubDate>
     <dc:publisher
         tal:condition="item_info/publisher"
         tal:content="item_info/publisher">PUBLISHER</dc:publisher>
@@ -47,6 +34,7 @@
     <dc:subject
         tal:repeat="subject item_info/listSubjects"
         tal:content="subject">SUBJECT</dc:subject>
-    <dc:date tal:content="item_info/date">YYYY-MM-DDTHH:MM:SSZ</dc:date>
   </item>
-</rdf:RDF>
+  
+  </channel>
+</rss>



More information about the checkins mailing list