/** * 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); } }