%PDF- %PDF-
| Direktori : /home/lightco1/upgrade.lightco.com.au/libraries/compojoom/html/ |
| Current File : /home/lightco1/upgrade.lightco.com.au/libraries/compojoom/html/feed.php |
<?php
/**
* @package Lib_Compojoom
* @author DanielDimitrov <daniel@compojoom.com>
* @date 09.07.2014
*
* @copyright Copyright (C) 2008 - 2013 compojoom.com . All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('_JEXEC') or die('Restricted access');
/**
* Class CompojooomHtmlFeed
*
* Renders the feed from the provided url
*
* @since 1.1
*/
class CompojoomHtmlFeed
{
/**
* Renders a feed
*
* @param string $url - the feed url
*
* @return void
*/
public static function renderFeed($url)
{
$rssitems = 5;
$rssitemdesc = 1;
// Aaach, Joomla 2.5 please die faster...
if (JVERSION < '3')
{
jimport('simplepie.simplepie');
$cache = JFactory::getCache('feed_parser', 'callback');
$cache->setLifeTime(600);
$simplepie = new SimplePie(null, null, 0);
$simplepie->enable_cache(false);
$simplepie->set_feed_url($url);
$simplepie->force_feed(true);
$contents = $cache->get(array($simplepie, 'init'), null, false, false);
if ($contents)
{
$rssDoc = $simplepie;
}
else
{
return JText::_('LIB_COMPOJOOM_FEED_COULDNT_BE_FETCHED');
}
}
else
{
// Get RSS parsed object
try
{
jimport('joomla.feed.factory');
$feed = new JFeedFactory;
$rssDoc = $feed->getFeed($url);
}
catch (Exception $e)
{
return JText::_('LIB_COMPOJOOM_FEED_COULDNT_BE_FETCHED');
}
}
$feed = $rssDoc;
if (JVERSION < 3)
{
if ($rssDoc != false)
{
$filter = JFilterInput::getInstance();
// Channel header and link
$channel['title'] = $filter->clean($rssDoc->get_title());
$channel['link'] = $filter->clean($rssDoc->get_link());
$channel['description'] = $filter->clean($rssDoc->get_description());
// Items
$items = $rssDoc->get_items();
// Feed elements
$items = array_slice($items, 0, $rssitems);
?>
<div class="newsfeed">
<?php if (!is_null($channel['title'])): ?>
<h2>
<a href="<?php echo htmlspecialchars(str_replace('&', '&', $channel['link'])); ?>" target="_blank">
<?php echo htmlspecialchars($channel['title']); ?></a>
</h2>
<?php endif; ?>
<?php echo $channel['description']; ?>
<?php
$actualItems = count($items);
$setItems = $rssitems;
if ($setItems > $actualItems)
{
$totalItems = $actualItems;
}
else
{
$totalItems = $setItems;
}
?>
<ul class="newsfeed">
<?php
for ($j = 0; $j < $totalItems; $j ++)
{
$currItem = $items[$j];
?>
<li>
<?php if (!is_null($currItem->get_link())): ?>
<a href="<?php echo htmlspecialchars($currItem->get_link()); ?>" target="_child">
<?php echo htmlspecialchars($currItem->get_title()); ?></a>
<?php endif; ?>
<?php
// Item description
if ($rssitemdesc)
{
// Item description
$text = $filter->clean(html_entity_decode($currItem->get_description(), ENT_COMPAT, 'UTF-8'));
$text = str_replace(''', "'", $text);
?>
<div>
<?php echo CompojoomHtmlString::truncateComplex($text, 200); ?>
</div>
<?php
}
?>
</li>
<?php
}
?>
</ul>
</div>
<?php
}
}
else
{
if ($rssDoc != false)
{
?>
<div class="feed">
<?php if (!is_null($feed->title)): ?>
<h2>
<a href="<?php echo str_replace('&', '&', $url); ?>" target="_blank">
<?php echo $feed->title; ?></a>
</h2>
<?php endif; ?>
<?php echo $feed->description; ?>
<ul class="newsfeed">
<?php for ($i = 0; $i < $rssitems; $i++)
{
if (!$feed->offsetExists($i))
{
break;
}
?>
<?php
$uri = (!empty($feed[$i]->uri) || !is_null($feed[$i]->uri)) ? $feed[$i]->uri : $feed[$i]->guid;
$text = !empty($feed[$i]->content) || !is_null($feed[$i]->content) ? $feed[$i]->content : $feed[$i]->description;
?>
<li>
<?php if (!empty($uri)) : ?>
<h5 class="feed-link">
<a href="<?php echo $uri; ?>" target="_blank">
<?php echo $feed[$i]->title; ?></a></h5>
<?php else : ?>
<h5 class="feed-link"><?php echo $feed[$i]->title; ?></h5>
<?php endif; ?>
<?php if ($rssitemdesc && !empty($text)) : ?>
<div class="feed-item-description">
<?php
// Strip the images.
$text = JFilterOutput::stripImages($text);
$text = CompojoomHtmlString::truncateComplex( $text, 200);
echo str_replace(''', "'", $text);
?>
</div>
<?php endif; ?>
</li>
<?php } ?>
</ul>
</div>
<?php
}
}
}
}