コード例 #1
0
 /**
  * Generate the feed fully populated. Defaults to RSS2.0
  *
  *
  *  @param string $f Optional. Name of file to save feed to
  *  @param string $type Optional. Which type of feed to generate. Supported are RSS2.0, RSS1.0, RSS0.92, ATOM1.0, ATOM03
  *  @return mixed If a filename is passed, then nothing is returned, otherwise an XML datastream
  */
 function generate($type = null, $f = null)
 {
     include_once '3rdparty/feedcreator/feedcreator.class.php';
     $ft = $type;
     $feed = new UniversalFeedCreator();
     $feed->UseCached();
     $feed->title = C_BLOGNAME;
     $feed->description = C_BLOG_DESCRIPTION;
     $feed->link = BLOGURL;
     $feed->syndicationURL = BLOGURL . basename($_SERVER['SCRIPT_NAME']);
     $posts = $this->_ph->get_posts(array('order' => 'ORDER BY posts.posttime DESC', 'num' => 20));
     foreach ($posts as $post) {
         $item = new FeedItem();
         $item->title = $post['title'];
         $item->link = $post['permalink'];
         $item->guid = $post['permalink'];
         $item->description = $post['body'];
         $item->source = $feed->link;
         $item->author = $post['author']['fullname'];
         $item->authorEmail = $post['author']['email'];
         $feed->additem($item);
     }
     if (!is_null($f)) {
         if (file_exists($f) && is_writable($f)) {
             $feed->savefeed($ft, $f);
         }
         //right here we need to generate and catch an error
     } else {
         $feed->outputfeed($ft);
     }
 }