joomla_test/components/com_content/views/featured/view.feed.php

95 lines
3.0 KiB
PHP
Raw Permalink Normal View History

2020-01-02 22:20:31 +07:00
<?php
/**
* @package Joomla.Site
* @subpackage com_content
*
* @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;
/**
* Frontpage View class
*
* @package Joomla.Site
* @subpackage com_content
* @since 1.5
*/
class ContentViewFeatured extends JViewLegacy
{
public function display($tpl = null)
{
// Parameters
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$params = $app->getParams();
$feedEmail = $app->getCfg('feed_email', 'author');
$siteEmail = $app->getCfg('mailfrom');
$doc->link = JRoute::_('index.php?option=com_content&view=featured');
// Get some data from the model
$app->input->set('limit', $app->getCfg('feed_limit'));
$categories = JCategories::getInstance('Content');
$rows = $this->get('Items');
foreach ($rows as $row)
{
// strip html from feed item title
$title = $this->escape($row->title);
$title = html_entity_decode($title, ENT_COMPAT, 'UTF-8');
// Compute the article slug
$row->slug = $row->alias ? ($row->id . ':' . $row->alias) : $row->id;
// Url link to article
$link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid));
// Get row fulltext
$db = JFactory::getDbo();
$query = 'SELECT' .$db->quoteName('fulltext'). 'FROM #__content WHERE id ='.$row->id;
$db->setQuery($query);
$row->fulltext = $db->loadResult();
$description = ($params->get('feed_summary', 0) ? $row->introtext.$row->fulltext : $row->introtext);
$author = $row->created_by_alias ? $row->created_by_alias : $row->author;
// Load individual item creator class
$item = new JFeedItem;
$item->title = $title;
$item->link = $link;
$item->date = $row->publish_up;
$item->category = array();
$item->category[] = JText::_('JFEATURED'); // All featured articles are categorized as "Featured"
for ($item_category = $categories->get($row->catid); $item_category !== null; $item_category = $item_category->getParent())
{
if ($item_category->id > 1) { // Only add non-root categories
$item->category[] = $item_category->title;
}
}
$item->author = $author;
if ($feedEmail == 'site')
{
$item->authorEmail = $siteEmail;
}
elseif ($feedEmail === 'author')
{
$item->authorEmail = $row->author_email;
}
// Add readmore link to description if introtext is shown, show_readmore is true and fulltext exists
if (!$params->get('feed_summary', 0) && $params->get('feed_show_readmore', 0) && $row->fulltext)
{
$description .= '<p class="feed-readmore"><a target="_blank" href ="' . $item->link . '">' . JText::_('COM_CONTENT_FEED_READMORE') . '</a></p>';
}
// Load item description and add div
$item->description = '<div class="feed-description">'.$description.'</div>';
// Loads item info into rss array
$doc->addItem($item);
}
}
}