public function renderRss() { $forum = $this->_params['forum']; $buggyXmlNamespace = defined('LIBXML_DOTTED_VERSION') && LIBXML_DOTTED_VERSION == '2.6.24'; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); $feed->setTitle($forum['title']); $feed->setDescription($forum['description'] ? $forum['description'] : $forum['title']); $feed->setLink(XenForo_Link::buildPublicLink('canonical:forums', $forum)); if (!$buggyXmlNamespace) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:forums.rss', $forum), 'rss'); } $feed->setDateModified(XenForo_Application::$time); $feed->setLastBuildDate(XenForo_Application::$time); if (XenForo_Application::get('options')->boardTitle) { $feed->setGenerator(XenForo_Application::get('options')->boardTitle); } foreach ($this->_params['threads'] as $thread) { // TODO: add contents of first post in future // TODO: wrap in exception handling down the line $entry = $feed->createEntry(); $entry->setTitle($thread['title']); $entry->setLink(XenForo_Link::buildPublicLink('canonical:threads', $thread)); $entry->setDateCreated(new Zend_Date($thread['post_date'], Zend_Date::TIMESTAMP)); $entry->setDateModified(new Zend_Date($thread['last_post_date'], Zend_Date::TIMESTAMP)); if (!$buggyXmlNamespace) { $entry->addAuthor(array('name' => $thread['username'], 'uri' => XenForo_Link::buildPublicLink('canonical:members', $thread))); if ($thread['reply_count']) { $entry->setCommentCount($thread['reply_count']); } } $feed->addEntry($entry); } return $feed->export('rss'); }
/** * @return string * @throws Zend_Exception * @throws Zend_Feed_Exception * * @see XenForo_ViewPublic_Forum_View::renderRss */ public function renderRss() { if (is_callable(array('parent', 'renderRss'))) { return call_user_func(array('parent', 'renderRss')); } $tag = $this->_params['tag']; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); if (!empty($tag['tinhte_xentag_title'])) { $feed->setTitle($tag['tinhte_xentag_title']); } else { $feed->setTitle($tag['tag']); } if (!empty($tag['tinhte_xentag_description'])) { $feed->setDescription($tag['tinhte_xentag_description']); } else { $feed->setDescription(strval(new XenForo_Phrase('tinhte_xentag_all_contents_tagged_x', array('board_title' => XenForo_Application::get('options')->get('boardTitle'), 'tag_text' => $tag['tag'])))); } $feed->setLink(XenForo_Link::buildPublicLink('canonical:tags', $tag)); if (!$this->_Tinhte_XenTag_isBuggyXmlNamespace()) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:tags.rss', $tag), 'rss'); } $feed->setDateModified($tag['last_use_date']); $feed->setLastBuildDate(XenForo_Application::$time); if (XenForo_Application::get('options')->boardTitle) { $feed->setGenerator(XenForo_Application::get('options')->boardTitle); } foreach ($this->_params['results']['results'] as $result) { $entry = $this->_Tinhte_XenTag_prepareRssEntry($result, $feed); if ($entry !== false) { $feed->addEntry($entry); } } return $feed->export('rss'); }
public function renderRss() { $xenOptions = XenForo_Application::getOptions(); if ($xenOptions->sonnbXG_enableRSS) { $title = new XenForo_Phrase('sonnb_xengallery'); $title = $title->render(); $description = new XenForo_Phrase('sonnb_xengallery_short_description', array('title' => $xenOptions->boardTitle)); $description = $description->render(); $buggyXmlNamespace = defined('LIBXML_DOTTED_VERSION') && LIBXML_DOTTED_VERSION == '2.6.24'; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); $feed->setTitle($title); $feed->setDescription($description); $feed->setLink(XenForo_Link::buildPublicLink('canonical:gallery')); if (!$buggyXmlNamespace) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:gallery/index.rss'), 'rss'); } $feed->setDateModified(XenForo_Application::$time); $feed->setLastBuildDate(XenForo_Application::$time); $feed->setGenerator($title); $formatter = XenForo_BbCode_Formatter_Base::create('XenForo_BbCode_Formatter_Text', array('view' => $this)); $parser = new XenForo_BbCode_Parser($formatter); foreach ($this->_params['albums'] as $album) { $albumDescription = $parser->render($album['description']); $entry = $feed->createEntry(); if (!empty($album['contents'])) { $albumDescription .= '<br /><br />'; foreach ($album['contents'] as $content) { $albumDescription .= '<a href="' . XenForo_Link::buildPublicLink('canonical:gallery/' . $content['content_type'] . 's', $content) . '"><img src="' . XenForo_Link::convertUriToAbsoluteUri($content['thumbnailUrl'], true) . '" /></a>'; } } if ($albumDescription) { $entry->setDescription($albumDescription); } $entry->setTitle($album['title'] ? $album['title'] : $album['title'] . ' '); $entry->setLink(XenForo_Link::buildPublicLink('canonical:gallery/albums', $album)); $entry->setDateCreated(new Zend_Date($album['album_date'], Zend_Date::TIMESTAMP)); $entry->setDateModified(new Zend_Date($album['album_updated_date'], Zend_Date::TIMESTAMP)); if (!$buggyXmlNamespace) { $entry->addAuthor(array('name' => $album['username'], 'uri' => XenForo_Link::buildPublicLink('canonical:gallery/authors', $album))); if ($album['comment_count']) { $entry->setCommentCount($album['comment_count']); $entry->setCommentLink(XenForo_Link::buildPublicLink('canonical:gallery/albums', $album) . '#album-' . $album['album_id']); } } $feed->addEntry($entry); } return $feed->export('rss'); } }
public function renderRss() { $options = XenForo_Application::get('options'); $title = $options->boardTitle ? $options->boardTitle : XenForo_Link::buildPublicLink('canonical:index'); $description = $options->boardDescription ? $options->boardDescription : $title; $buggyXmlNamespace = defined('LIBXML_DOTTED_VERSION') && LIBXML_DOTTED_VERSION == '2.6.24'; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); $feed->setTitle($title); $feed->setDescription($description); $feed->setLink(XenForo_Link::buildPublicLink('canonical:index')); if (!$buggyXmlNamespace) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:forums/-/index.rss'), 'rss'); } $feed->setDateModified(XenForo_Application::$time); $feed->setLastBuildDate(XenForo_Application::$time); $feed->setGenerator($title); $bbCodeSnippetParser = XenForo_BbCode_Parser::create(XenForo_BbCode_Formatter_Base::create('XenForo_BbCode_Formatter_BbCode_Clean', false)); $bbCodeParser = XenForo_BbCode_Parser::create(XenForo_BbCode_Formatter_Base::create('Base', array('view' => $this))); $rendererStates = array('disableProxying' => true); foreach ($this->_params['threads'] as $thread) { $entry = $feed->createEntry(); $entry->setTitle($thread['title'] ? $thread['title'] : $thread['title'] . ' '); $entry->setLink(XenForo_Link::buildPublicLink('canonical:threads', $thread)); $entry->setDateCreated(new Zend_Date($thread['post_date'], Zend_Date::TIMESTAMP)); $entry->setDateModified(new Zend_Date($thread['last_post_date'], Zend_Date::TIMESTAMP)); if (!empty($thread['canViewContent']) && !empty($thread['message']) && XenForo_Application::getOptions()->discussionRssContentLength) { $snippet = $bbCodeSnippetParser->render(XenForo_Helper_String::wholeWordTrim($thread['message'], XenForo_Application::getOptions()->discussionRssContentLength), $rendererStates); if ($snippet != $thread['message']) { $snippet .= "\n\n[url='" . XenForo_Link::buildPublicLink('canonical:threads', $thread) . "']" . $thread['title'] . '[/url]'; } $content = trim($bbCodeParser->render($snippet, $rendererStates)); if (strlen($content)) { $entry->setContent($content); } } if (!$buggyXmlNamespace) { $entry->addAuthor(array('name' => $thread['username'], 'email' => '*****@*****.**', 'uri' => XenForo_Link::buildPublicLink('canonical:members', $thread))); if ($thread['reply_count']) { $entry->setCommentCount($thread['reply_count']); } } $feed->addEntry($entry); } return $feed->export('rss'); }
public function renderRss() { // below lines of code are copied from XenForo_ViewPublic_Forum_View::renderRss $tag = $this->_params['tag']; $buggyXmlNamespace = defined('LIBXML_DOTTED_VERSION') && LIBXML_DOTTED_VERSION == '2.6.24'; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); $feed->setTitle($tag['tag_text']); $feed->setDescription('' . new XenForo_Phrase('tinhte_xentag_all_contents_tagged_x', array('board_title' => XenForo_Application::get('options')->get('boardTitle'), 'tag_text' => $tag['tag_text']))); $feed->setLink(XenForo_Link::buildPublicLink('canonical:tags', $tag)); if (!$buggyXmlNamespace) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:tags.rss', $tag), 'rss'); } $feed->setDateModified(XenForo_Application::$time); $feed->setLastBuildDate(XenForo_Application::$time); if (XenForo_Application::get('options')->boardTitle) { $feed->setGenerator(XenForo_Application::get('options')->boardTitle); } foreach ($this->_params['results']['results'] as $result) { if ($result[XenForo_Model_Search::CONTENT_TYPE] == 'thread') { $thread = $result['content']; $entry = $feed->createEntry(); $entry->setTitle($thread['title']); $entry->setLink(XenForo_Link::buildPublicLink('canonical:threads', $thread)); $entry->setDateCreated(new Zend_Date($thread['post_date'], Zend_Date::TIMESTAMP)); $entry->setDateModified(new Zend_Date($thread['last_post_date'], Zend_Date::TIMESTAMP)); if (!$buggyXmlNamespace) { $entry->addAuthor(array('name' => $thread['username'], 'uri' => XenForo_Link::buildPublicLink('canonical:members', $thread))); if ($thread['reply_count']) { $entry->setCommentCount($thread['reply_count']); } } } else { $entry = $this->_prepareRssEntry($result, $feed); } if ($entry !== false) { $feed->addEntry($entry); } } return $feed->export('rss'); }
public function renderRss() { $options = XenForo_Application::getOptions(); $title = new XenForo_Phrase('xengallery_media'); $description = new XenForo_Phrase('xengallery_check_out_all_media_from_x', array('board' => $options->boardTitle)); $buggyXmlNamespace = defined('LIBXML_DOTTED_VERSION') && LIBXML_DOTTED_VERSION == '2.6.24'; $feed = new Zend_Feed_Writer_Feed(); $feed->setEncoding('utf-8'); $feed->setTitle($title->render()); $feed->setDescription($description->render()); $feed->setLink(XenForo_Link::buildPublicLink('canonical:xengallery')); if (!$buggyXmlNamespace) { $feed->setFeedLink(XenForo_Link::buildPublicLink('canonical:xengallery.rss'), 'rss'); } $feed->setDateModified(XenForo_Application::$time); $feed->setLastBuildDate(XenForo_Application::$time); $feed->setGenerator($title->render()); $bbCodeParser = XenForo_BbCode_Parser::create(XenForo_BbCode_Formatter_Base::create('Base', array('view' => $this))); foreach ($this->_params['media'] as $media) { $entry = $feed->createEntry(); $entry->setTitle($media['media_title'] ? $media['media_title'] : $media['media_title'] . ' '); $entry->setLink(XenForo_Link::buildPublicLink('canonical:xengallery', $media)); $entry->setDateCreated(new Zend_Date($media['media_date'], Zend_Date::TIMESTAMP)); $entry->setDateModified(new Zend_Date($media['last_edit_date'], Zend_Date::TIMESTAMP)); if (!empty($media['media_description'])) { $entry->setDescription($media['media_description']); } XenGallery_ViewPublic_Helper_VideoHtml::addVideoHtml($media, $bbCodeParser); $content = $this->_renderer->createTemplateObject('xengallery_rss_content', array('media' => $media)); $entry->setContent($content->render()); if (!$buggyXmlNamespace) { $entry->addAuthor(array('name' => $media['username'], 'email' => '*****@*****.**', 'uri' => XenForo_Link::buildPublicLink('canonical:xengallery/users', $media))); if ($media['comment_count']) { $entry->setCommentCount($media['comment_count']); } } $feed->addEntry($entry); } return $feed->export('rss'); }
public function testSetLastBuildDateThrowsExceptionOnInvalidParameter() { $writer = new Zend_Feed_Writer_Feed(); try { $writer->setLastBuildDate('abc'); $this->fail(); } catch (Zend_Feed_Exception $e) { } }