* (bug 153) Adjust thumbnail size calculations to match consistently;
[lhc/web/wiklou.git] / includes / Feed.php
index a798ce4..f8a0784 100644 (file)
@@ -152,7 +152,7 @@ class ChannelFeed extends FeedItem {
                global $wgServer, $wgStylePath;
                
                $this->httpHeaders();
-               echo '<?xml version="1.0" encoding="utf-8"?' . ">\n";
+               echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
                echo '<?xml-stylesheet type="text/css" href="' .
                        htmlspecialchars( "$wgServer$wgStylePath/common/feed.css" ) . '"?' . ">\n";
        }
@@ -240,16 +240,41 @@ class AtomFeed extends ChannelFeed {
                global $wgVersion, $wgOut;
                
                $this->outXmlHeader();
-               ?><feed version="0.3" xml:lang="<?php print $this->getLanguage() ?>">   
+               ?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="<?php print $this->getLanguage() ?>">     
+               <id><?php print $this->getFeedId() ?></id>
                <title><?php print $this->getTitle() ?></title>
+               <link rel="self" type="application/atom+xml" href="<?php print $this->getSelfUrl() ?>"/>
                <link rel="alternate" type="text/html" href="<?php print $this->getUrl() ?>"/>
-               <modified><?php print $this->formatTime( wfTimestampNow() ) ?>Z</modified>
-               <tagline><?php print $this->getDescription() ?></tagline>
+               <updated><?php print $this->formatTime( wfTimestampNow() ) ?>Z</updated>
+               <subtitle><?php print $this->getDescription() ?></subtitle>
                <generator>MediaWiki <?php print $wgVersion ?></generator>
                
 <?php
        }
        
+       /**
+        * Atom 1.0 requires a unique, opaque IRI as a unique indentifier
+        * for every feed we create. For now just use the URL, but who
+        * can tell if that's right? If we put options on the feed, do we
+        * have to change the id? Maybe? Maybe not.
+        *
+        * @return string
+        * @access private
+        */
+       function getFeedId() {
+               return $this->getSelfUrl();
+       }
+       
+       /**
+        * Atom 1.0 requests a self-reference to the feed.
+        * @return string
+        * @access private
+        */
+       function getSelfUrl() {
+               global $wgRequest;
+               return htmlspecialchars( $wgRequest->getFullRequestURL() );
+       }
+       
        /**
         * @todo document
         */
@@ -257,16 +282,15 @@ class AtomFeed extends ChannelFeed {
                global $wgMimeType;
        ?>
        <entry>
+               <id><?php print $item->getUrl() ?></id>
                <title><?php print $item->getTitle() ?></title>
                <link rel="alternate" type="<?php print $wgMimeType ?>" href="<?php print $item->getUrl() ?>"/>
                <?php if( $item->getDate() ) { ?>
-               <modified><?php print $this->formatTime( $item->getDate() ) ?>Z</modified>
-               <issued><?php print $this->formatTime( $item->getDate() ) ?></issued>
-               <created><?php print $this->formatTime( $item->getDate() ) ?>Z</created><?php } ?>
+               <updated><?php print $this->formatTime( $item->getDate() ) ?>Z</updated>
+               <?php } ?>
        
-               <summary type="text/plain"><?php print $item->getDescription() ?></summary>
-               <?php if( $item->getAuthor() ) { ?><author><name><?php print $item->getAuthor() ?></name><!-- <url></url><email></email> --></author><?php }?>
-               <comment>foobar</comment>
+               <summary type="html"><?php print $item->getDescription() ?></summary>
+               <?php if( $item->getAuthor() ) { ?><author><name><?php print $item->getAuthor() ?></name></author><?php }?>
        </entry>
 
 <?php /* FIXME need to add comments