У меня после обновления Жумлы до версии 3.2 фид блога категории потерял вменяемый вид: ссылка на материал стала черт знает какая, категория показывалась только текущая, игнорировав потомки и пропали даты материалов. Заглянул в libraries/legacy/view/categoryfeed.php , а там какие-то нововведенные "глупости". Пришлось ковырять до полного исцеления. Вот моя поправленная версия этого класса, кому надо:
/** * @package Joomla.Legacy * @subpackage View * * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Base feed View class for a category * * @package Joomla.Legacy * @subpackage View * @since 3.2 */ class JViewCategoryfeed extends JViewLegacy { /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise a Error object. * * @since 3.2 */ public function display($tpl = null) { $app = JFactory::getApplication(); $document = JFactory::getDocument(); $extension = $app->input->getString('option'); $document->link = JRoute::_(JHelperRoute::getCategoryRoute($app->input->getInt('id'), $language = 0, $extension)); $app->input->set('limit', $app->get('feed_limit')); $siteEmail = $app->get('mailfrom'); $fromName = $app->get('fromname'); $feedEmail = $app->get('feed_email', 'author'); $document->editor = $fromName; if ($feedEmail != 'none') { $document->editorEmail = $siteEmail; } // Get some data from the model $items = $this->get('Items'); $category = $this->get('Category'); foreach ($items as $item) { $this->reconcileNames($item); // Strip html from feed item title $title = $this->escape($item->title); $title = html_entity_decode($title, ENT_COMPAT, 'UTF-8'); $item->slug = $item->alias ? ($item->id.':'.$item->alias) : $item->id; $item->catslug = $item->category_alias ? ($item->catid.':'.$item->category_alias) : $item->catid; // URL link to article $router = new JHelperRoute; $link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); // Strip HTML from feed item description text. $description = $item->description; $author = $item->created_by_alias ? $item->created_by_alias : $item->author; $date = isset($item->publish_up) ? date('r', strtotime($item->publish_up)) : ''; // Load individual item creator class. $feeditem = new JFeedItem; $feeditem->title = $title; $feeditem->link = $link; $feeditem->description = $description; $feeditem->date = $date; $feeditem->pubDate = $date; $feeditem->category = $item->category_title; $feeditem->author = $author; // We don't have the author email so we have to use site in both cases. if ($feedEmail == 'site') { $feeditem->authorEmail = $siteEmail; } elseif ($feedEmail === 'author') { $feeditem->authorEmail = $item->author_email; } // Loads item information into RSS array $document->addItem($feeditem); } } /** * Method to reconcile non standard names from components to usage in this class. * Typically overriden in the component feed view class. * * @param object $item The item for a feed, an element of the $items array. * * @return void * * @since 3.2 */ protected function reconcileNames($item) { if (!property_exists($item, 'title') && property_exists($item, 'name')) { $item->title = $item->name; } } }