rss_xml を下記のようにすることによって、カテゴリごとのRSSを出力できるように変更しました。
つまり、このブログ全体の RSS は
http://matatabi.homeip.net/blog/setomits/rss_xml
ですが、例えばmovie/drama(http://matatabi.homeip.net/blog/setomits/categorylist_html?cat_id=10)であれば
http://matatabi.homeip.net/blog/setomits/rss_xml?cat_id=10
python(http://matatabi.homeip.net/blog/setomits/categorylist_html?cat_id=2)であれば
http://matatabi.homeip.net/blog/setomits/rss_xml?cat_id=2
となるのです。それぞれのカテゴリを表示した際に、RSS Autodiscoveryでもってこれらへのリンクを入れるべきなのですが、それはまた追って。
<dtml-call "RESPONSE.setHeader('content-type', 'text/xml')">
<?xml version="1.0" encoding="<dtml-var management_page_charset>"?>
<?xml-stylesheet href="<dtml-var blog_url>/rss_xsl" type="text/xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel>
<dtml-if cat_id>
 <title>
  <dtml-var title> :
  <dtml-with "getCategory(id=cat_id)"><dtml-var name></dtml-with>
 </title>
 <link><dtml-var blogurl>/categorylist_html?cat_id=<dtml-var cat_id></link>
 <description>
  <dtml-var blog_description> :
  <dtml-with "getCategory(id=cat_id)"><dtml-var name></dtml-with>
 </description>
<dtml-else>
  <title><dtml-var title></title>
  <link><dtml-var blogurl></link>
  <description><dtml-var blog_description></description>
</dtml-if>
  <language>ja</language>
  <image>
   <title><dtml-var title></title>
   <url><dtml-var blog_url>/blog_logo_img</url>
   <link><dtml-var blog_url></link>
   <width>279</width>
   <height>73</height>
  </image>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>COREBlog on Zope</generator>
<dtml-if cat_id>
<dtml-in "category_entry_items(category_id=cat_id)">
  <item>
   <title><dtml-var title html_quote></title>
   <link><dtml-var blogurl>/<dtml-var id></link>
   <guid isPermaLink="true"><dtml-var blogurl>/<dtml-var id></guid>
   <description><dtml-var excerpt html_quote></description>
   <pubDate>
    <dtml-var "date_created().toZone('JST').strftime('%a, %d %b %Y %H:%M:%S +0900')">
   </pubDate>
   <dc:subject>
    <dtml-with "getCategory(id=cat_id)"><dtml-var name></dtml-with>
   </dc:subject>
   <dc:creator><dtml-var author missing=""></dc:creator>
   <dc:date>
    <dtml-var "date_created().toZone('JST').strftime('%Y-%m-%dT%H:%M:%S+09:00')">
   </dc:date>
  </item>
</dtml-in>
<dtml-else>
<dtml-in "rev_day_entry_items(count=top_days)">
  <item>
   <title><dtml-var title html_quote></title>
   <link><dtml-var blogurl>/<dtml-var id></link>
   <guid isPermaLink="true"><dtml-var blogurl>/<dtml-var id></guid>
   <description><dtml-var excerpt html_quote></description>
   <pubDate>
    <dtml-var "date_created().toZone('JST').strftime('%a, %d %b %Y %H:%M:%S +0900')">
   </pubDate>
   <dc:subject>
    <dtml-try>
    <dtml-in entry_category_list size=1><dtml-var name></dtml-in>
    <dtml-except>
    </dtml-try>
    </dc:subject>
   <dc:creator><dtml-var author missing=""></dc:creator>
   <dc:date>
    <dtml-var "date_created().toZone('JST').strftime('%Y-%m-%dT%H:%M:%S+09:00')">
   </dc:date>
  </item>
</dtml-in>
<dtml-in "rev_comment_items(0,module_item_count)">
  <item>
   <title>[c]<dtml-var title html_quote> by <dtml-var author></title>
   <link><dtml-var blogurl>/<dtml-var parent_id>#comment<dtml-var id></link>
   <guid isPermaLink="true">
    <dtml-var blogurl>/<dtml-var parent_id>#comment<dtml-var id>
   </guid>
   <description><dtml-var body html_quote></description>
   <pubDate>
    <dtml-var "ZopeTime(created)" fmt="%a, %d %b %Y %H:%M:%S +0900">
   </pubDate>
   <dc:creator><dtml-var author></dc:creator>   
   <dc:date>
    <dtml-var "ZopeTime(created)" fmt="%Y-%m-%dT%H:%M:%S+09:00">
   </dc:date>
  </item>
</dtml-in>
<dtml-in "rev_trackback_items(0,module_item_count)">
  <item>
   <title>
    [t]<dtml-var title html_quote> by
    <dtml-if "_.len(blog_name) > 0"><dtml-var blog_name missing="Anonymous">
    <dtml-else>ping from Anonymous Blog
    </dtml-if>
   </title>
   <link><dtml-var blogurl>/<dtml-var parent_id>#trackback<dtml-var id></link>
   <guid isPermaLink="true">
    <dtml-var blogurl>/<dtml-var parent_id>#trackback<dtml-var id>
   </guid>
   <description><dtml-var excerpt></description>
   <pubDate>
    <dtml-var "ZopeTime(created)" fmt="%a, %d %b %Y %H:%M:%S +0900">
   </pubDate>
   <dc:date>
    <dtml-var "ZopeTime(created)" fmt="%Y-%m-%dT%H:%M:%S+09:00">
   </dc:date>
  </item>
</dtml-in>
</dtml-if>
 </channel>
</rss>
Posted by setomits at 09:27 | Comments: 0
Leave a comment
Required fields are marked with *
search
calendar
Feb 2012
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
26272829   
archives
photos on flickr
www.flickr.com