<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Peter's Blog - Nodes for atom</title>
    <link>http://www.petersblog.org/</link>
    <description>Nodes containing the tag atom</description>
    <item>
      <title>Atom module on Drupal 4.6</title>
      <link>http://www.petersblog.org/node/view/770</link>
      <description>&lt;p&gt;
Noticed from access log that I had forgotten to supply an atom module when I upgraded to &lt;a href="http://www.drupal.org"&gt;Drupal&lt;/a&gt; 4.6.0. There isn't one on the drupal download site and a grep through the source for 'atom' gave nothing so I copied my &lt;a href="/node/517"&gt;4.5.x version&lt;/a&gt; and it Just Worked (&lt;a href="atom.xml"&gt;e.g&lt;/a&gt;). I'm not sure who it is that is downloading the atom feed it but I'd hate to disappoint them. 
&lt;/p&gt;&lt;p&gt;Related Posts: &lt;a href="/tag/atom"&gt;atom&lt;/a&gt; &lt;a href="/tag/drupal"&gt;drupal&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.petersblog.org/node/view/770</guid>
      <category domain="http://www.technorati.com/tag">atom</category>
      <category domain="http://www.technorati.com/tag">drupal</category>
    </item>
    <item>
      <title>Updated atom module to Drupal 4.5.0</title>
      <link>http://www.petersblog.org/node/view/517</link>
      <description>&lt;p&gt;
After upgrading my site to Drupal 4.5.0 I looked on the drupal site for an updated version of the atom module and found none. 
&lt;/p&gt;
&lt;p&gt;
So I updated it myself. The module file is &lt;a href="http://www.bisiand.me.uk/files/atom.module.gz"&gt;here&lt;/a&gt;. This is just a gzipped module file, not a tar, gzip -d it and copy to the modules directory to install. After that /atom/feed link should give you an atom feed. 
&lt;/p&gt;
&lt;p&gt;
All I have done is added the atom_menu function required by Drupal 4.5.0 and changed the help link in atom_help. 
&lt;/p&gt;
&lt;p&gt;
Here is the code: 
&lt;/p&gt;
&lt;pre class="lazy"&gt;&lt;span class="line-numbers"&gt;   1 &lt;/span&gt; // $Id: atom.module,v 1.7.2.1 2004/04/29 05:13:03 dries Exp $
&lt;span class="line-numbers"&gt;   2 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;   3 &lt;/span&gt; function atom_help($section) {
&lt;span class="line-numbers"&gt;   4 &lt;/span&gt;   $output = &amp;quot;&amp;quot;;
&lt;span class="line-numbers"&gt;   5 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;   6 &lt;/span&gt;   switch ($section) {
&lt;span class="line-numbers"&gt;   7 &lt;/span&gt;     case &amp;quot;admin/modules#description&amp;quot;:
&lt;span class="line-numbers"&gt;   8 &lt;/span&gt;     $output = t(&amp;quot;Provides an Atom 0.3 feed&amp;quot;);
&lt;span class="line-numbers"&gt;   9 &lt;/span&gt;     break;
&lt;span class="line-numbers"&gt;  10 &lt;/span&gt;   }
&lt;span class="line-numbers"&gt;  11 &lt;/span&gt;   return $output;
&lt;span class="line-numbers"&gt;  12 &lt;/span&gt; }
&lt;span class="line-numbers"&gt;  13 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  14 &lt;/span&gt; function atom_menu($may_cache) {
&lt;span class="line-numbers"&gt;  15 &lt;/span&gt;   global $user;
&lt;span class="line-numbers"&gt;  16 &lt;/span&gt;   $items = array();
&lt;span class="line-numbers"&gt;  17 &lt;/span&gt;   if ($may_cache) {
&lt;span class="line-numbers"&gt;  18 &lt;/span&gt;     $items[] = array('path' =&amp;gt; 'atom/feed', 'title' =&amp;gt; t('Atom feed'),
&lt;span class="line-numbers"&gt;  19 &lt;/span&gt;       'callback' =&amp;gt; 'atom_feed',
&lt;span class="line-numbers"&gt;  20 &lt;/span&gt;       'access' =&amp;gt; user_access('access content'),
&lt;span class="line-numbers"&gt;  21 &lt;/span&gt;       'type' =&amp;gt; MENU_CALLBACK);
&lt;span class="line-numbers"&gt;  22 &lt;/span&gt;   }
&lt;span class="line-numbers"&gt;  23 &lt;/span&gt;   return $items;
&lt;span class="line-numbers"&gt;  24 &lt;/span&gt; }
&lt;span class="line-numbers"&gt;  25 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  26 &lt;/span&gt; function atom_feed() {
&lt;span class="line-numbers"&gt;  27 &lt;/span&gt;   global $base_url;
&lt;span class="line-numbers"&gt;  28 &lt;/span&gt;   $output = &amp;quot;&amp;quot;;
&lt;span class="line-numbers"&gt;  29 &lt;/span&gt;   $last_mod = 0;
&lt;span class="line-numbers"&gt;  30 &lt;/span&gt;     $nodes = db_query_range(&amp;quot;SELECT n.nid, u.uid, u.name FROM {node} n, {users} u WHERE n.uid = u.uid AND
&lt;span class="line-numbers"&gt;  31 &lt;/span&gt;                               n.promote = '1' AND n.status = '1' ORDER BY n.created DESC&amp;quot;, 0, 15);
&lt;span class="line-numbers"&gt;  32 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  33 &lt;/span&gt;     while ($node = db_fetch_object($nodes)) {
&lt;span class="line-numbers"&gt;  34 &lt;/span&gt;       $item = node_load(array(&amp;quot;nid&amp;quot; =&amp;gt; $node-&amp;gt;nid));
&lt;span class="line-numbers"&gt;  35 &lt;/span&gt;       $link = url(&amp;quot;node/view/$node-&amp;gt;nid&amp;quot;, NULL, NULL, true);
&lt;span class="line-numbers"&gt;  36 &lt;/span&gt;       $output .= &amp;quot;  &amp;lt;entry&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  37 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;title&amp;gt;&amp;quot;. $item-&amp;gt;title .&amp;quot;&amp;lt;/title&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  38 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;link rel=\&amp;quot;alternate\&amp;quot; type=\&amp;quot;text/html\&amp;quot; href=\&amp;quot;&amp;quot;. $link .&amp;quot;\&amp;quot; /&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  39 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;id&amp;gt;$link&amp;lt;/id&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  40 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;issued&amp;gt;&amp;quot;. _atom_timestamp2w3dtf($item-&amp;gt;created) .&amp;quot;&amp;lt;/issued&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  41 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;modified&amp;gt;&amp;quot;. _atom_timestamp2w3dtf($item-&amp;gt;changed) .&amp;quot;&amp;lt;/modified&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  42 &lt;/span&gt;       $last_mod = $item-&amp;gt;changed;
&lt;span class="line-numbers"&gt;  43 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;author&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  44 &lt;/span&gt;       $output .= &amp;quot;      &amp;lt;name&amp;gt;&amp;quot;. $node-&amp;gt;name .&amp;quot;&amp;lt;/name&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  45 &lt;/span&gt;       $output .= &amp;quot;    &amp;lt;/author&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  46 &lt;/span&gt;       $output .= &amp;quot;  &amp;lt;/entry&amp;gt;\n&amp;quot;;
&lt;span class="line-numbers"&gt;  47 &lt;/span&gt;     }
&lt;span class="line-numbers"&gt;  48 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  49 &lt;/span&gt;     header(&amp;quot;Content-Type: application/xml&amp;quot;);
&lt;span class="line-numbers"&gt;  50 &lt;/span&gt;     print &amp;quot;&amp;lt;?&lt;span class="Constant"&gt;xml&lt;/span&gt; &lt;span class="Constant"&gt;version&lt;/span&gt;&lt;span class="Keyword"&gt;=&lt;/span&gt;\&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;1.0&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt; encoding=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;utf-8&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;?&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  51 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&amp;lt;feed version=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;0.3&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt; xmlns=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;http://purl.org/atom/ns#&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  52 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;  &amp;lt;title&amp;gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; variable_get(&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;site_name&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;drupal&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt;&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt; - &lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; variable_get(&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;site_slogan&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt;&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&amp;lt;/title&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  53 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;  &amp;lt;link rel=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;alternate&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt; type=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;text/html&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt; href=&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;base_url&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&lt;span class="Constant"&gt;\&amp;quot;&lt;/span&gt;/&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  54 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;  &amp;lt;modified&amp;gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; _atom_timestamp2w3dtf(&lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;last_mod&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt;&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&amp;lt;/modified&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  55 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;output&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  56 &lt;/span&gt;     &lt;span class="Support"&gt;print&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;&amp;lt;/feed&amp;gt;&lt;span class="Constant"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  57 &lt;/span&gt; }
&lt;span class="line-numbers"&gt;  58 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  59 &lt;/span&gt; &lt;span class="Keyword"&gt;function&lt;/span&gt; &lt;span class="Entity"&gt;_atom_timestamp2w3dtf&lt;/span&gt;(&lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;timestamp&lt;/span&gt;) {
&lt;span class="line-numbers"&gt;  60 &lt;/span&gt;   &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;tz&lt;/span&gt; &lt;span class="Keyword"&gt;=&lt;/span&gt; &lt;span class="Support"&gt;date&lt;/span&gt;(&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;O&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;timestamp&lt;/span&gt;);
&lt;span class="line-numbers"&gt;  61 &lt;/span&gt;   &lt;span class="Keyword"&gt;return&lt;/span&gt; &lt;span class="Support"&gt;date&lt;/span&gt;(&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;Y-m-d&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;timestamp&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt;&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;T&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="Support"&gt;date&lt;/span&gt;(&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;H:i:s&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;timestamp&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="Support"&gt;substr&lt;/span&gt;(&lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;tz&lt;/span&gt;, &lt;span class="Constant"&gt;0&lt;/span&gt;, &lt;span class="Constant"&gt;3&lt;/span&gt;) &lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;span class="String"&gt;:&lt;/span&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="Keyword"&gt;.&lt;/span&gt; &lt;span class="Support"&gt;substr&lt;/span&gt;(&lt;span class="Variable"&gt;&lt;span class="Variable"&gt;$&lt;/span&gt;tz&lt;/span&gt;, &lt;span class="Constant"&gt;3&lt;/span&gt;, &lt;span class="Constant"&gt;2&lt;/span&gt;);
&lt;span class="line-numbers"&gt;  62 &lt;/span&gt; }
&lt;/pre&gt;&lt;p&gt;Related Posts: &lt;a href="/tag/atom"&gt;atom&lt;/a&gt; &lt;a href="/tag/drupal"&gt;drupal&lt;/a&gt; &lt;a href="/tag/php"&gt;php&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.petersblog.org/node/view/517</guid>
      <category domain="http://www.technorati.com/tag">atom</category>
      <category domain="http://www.technorati.com/tag">drupal</category>
      <category domain="http://www.technorati.com/tag">php</category>
    </item>
    <item>
      <title>Added Drupal Atom feed</title>
      <link>http://www.petersblog.org/node/view/450</link>
      <description>&lt;p&gt;
Added an atom feed to keep whatever keeps trying to find one happy. I did this as follows: 
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
Installed atom module. Zero documentation. 
&lt;/li&gt;
&lt;li&gt;
Enabled module in drupal 
&lt;/li&gt;
&lt;li&gt;
Added this to .htaccess file: 
&lt;div class="verbatim-block"&gt;&lt;pre&gt;RewriteRule atom.xml atom/feed/1
&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
The link is also &lt;a href="http://bisiand.me.uk/atom.xml"&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Regarding any Atom v RSS wars, I'm probably on the RSS side as the tools I have used (Python Desktop Server, Drupal) have supported it by default and they work for me. Atom is for those Blogger.com instant boilerplate blog folk. 
&lt;/p&gt;&lt;p&gt;Related Posts: &lt;a href="/tag/atom"&gt;atom&lt;/a&gt; &lt;a href="/tag/blog"&gt;blog&lt;/a&gt; &lt;a href="/tag/drupal"&gt;drupal&lt;/a&gt; &lt;a href="/tag/htaccess"&gt;htaccess&lt;/a&gt; &lt;a href="/tag/python"&gt;python&lt;/a&gt; &lt;a href="/tag/rss"&gt;rss&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.petersblog.org/node/view/450</guid>
      <category domain="http://www.technorati.com/tag">atom</category>
      <category domain="http://www.technorati.com/tag">blog</category>
      <category domain="http://www.technorati.com/tag">drupal</category>
      <category domain="http://www.technorati.com/tag">htaccess</category>
      <category domain="http://www.technorati.com/tag">python</category>
      <category domain="http://www.technorati.com/tag">rss</category>
    </item>
  </channel>
</rss>
