public static function getFeedData($params) { $rssurl = str_replace("\n", ",", JString::trim($params->get('rssurl', ''))); $feedTimeout = (int) $params->get('feedTimeout', 10); $rssdateorder = (int) $params->get('rssdateorder', 1); $dformat = $params->get('dformat', '%d %b %Y %H:%M %P'); $rssperfeed = (int) $params->get('rssperfeed', 3); $textfilter = JString::trim($params->get('textfilter', '')); $pagination = (int) $params->get('pagination', 0); $totalfeeds = (int) $params->get('rssitems', 5); $filtermode = (int) $params->get('filtermode', 0); $showfeedinfo = (int) $params->get('showfeedinfo', 1); $input_encoding = JString::trim($params->get('inputencoding', '')); $showimage = (int) $params->get('rssimage', 1); $cacheTime = (int) $params->get('feedcache', 15) * 60; //minutes $orderBy = $params->get('orderby', 'date'); $tmzone = (int) $params->get('tmzone', 0) ? true : false; $cachePath = JPATH_SITE . DS . 'cache' . DS . 'mod_we_ufeed_display'; $start = $end = 0; if ($pagination) { $pagination_items = (int) $params->get('paginationitems', 5); $current_limit = modFeedShowHelper::getPage($params->get('mid', 0)); $start = ($current_limit - 1) * $pagination_items; $end = $current_limit * $pagination_items; } #Get clean array $rss_urls = @array_filter(explode(",", $rssurl)); #If only 1 link, use totalfeeds for total limit if (count($rss_urls) == 1) { $rssperfeed = $totalfeeds; } # Intilize RSS Doc if (!class_exists('SimplePie')) { jimport('simplepie.simplepie'); } //Parser Code $simplepie = new SimplePie(); $simplepie->set_cache_location($cachePath); $simplepie->set_cache_duration($cacheTime); $simplepie->set_stupidly_fast(true); $simplepie->force_feed(true); //$simplepie->force_fsockopen(false); //gives priority to CURL if is installed $simplepie->set_timeout($feedTimeout); $simplepie->set_item_limit($rssperfeed); $simplepie->enable_order_by_date(false); if ($input_encoding) { $simplepie->set_input_encoding($input_encoding); $simplepie->set_output_encoding('UTF-8'); } $simplepie->set_feed_url($rss_urls); $simplepie->init(); $rssTotalItems = (int) $simplepie->get_item_quantity($totalfeeds); if ((int) $params->get('debug', 0)) { echo "<h3>Total RSS Items:" . $rssTotalItems . "</h3>"; echo print_r($simplepie, true); #debug } if (get_class($simplepie) != 'SimplePie' || !$rssTotalItems) { return array("rsstotalitems" => 0, 'items' => false); } $feedItems = array(); #store all feeds items $counter = 1; foreach ($simplepie->get_items($start, $end) as $key => $feed) { #Word Filter if (!empty($textfilter) && $filtermode != 0) { $filter = modFeedShowHelper::filterItems($feed, $textfilter); #Include #Exclude if ($filtermode == 1 && !$filter || $filtermode == 2 && $filter) { $rssTotalItems--; continue; #Include } } $FeedValues[$key] = new stdClass(); # channel header and link $channel = $feed->get_feed(); $FeedValues[$key]->FeedTitle = $channel->get_title(); $FeedValues[$key]->FeedLink = $channel->get_link(); if ($showfeedinfo) { $FeedValues[$key]->FeedFavicon = 'http://g.etfv.co/' . urlencode($FeedValues[$key]->FeedLink); } $FeedValues[$key]->FeedDescription = $channel->get_description(); $FeedValues[$key]->FeedLogo = $channel->get_image_url(); #Item $FeedValues[$key]->ItemTitle = $feed->get_title(); $feeDateUNIX = $feed->get_date('U'); if ($feeDateUNIX < 1) { $feeDateUNIX = strtotime(trim(str_replace(",", "", $feed->get_date('')))); } $FeedValues[$key]->ItemDate = WEJM16 ? JHTML::_('date', $feeDateUNIX, $dformat, $tmzone) : JHtml::date($feeDateUNIX, $dformat, $tmzone); $FeedValues[$key]->ItemLink = $feed->get_link(); //$feed->get_permalink(); $FeedValues[$key]->ItemText = $feed->get_description(); $FeedValues[$key]->ItemFulltext = $feed->get_content(); $FeedValues[$key]->ItemEnclosure = $feed->get_enclosure(); $FeedValues[$key]->ItemEnclosures = $feed->get_enclosures(); if ($showimage) { $FeedValues[$key]->ItemImage = ""; } //for next version if ($orderBy == 'title') { $idx = str_replace(array(':', '-', '(', ')', '+', '*', ' '), '', JString::strtolower(strip_tags($FeedValues[$key]->ItemTitle))); //ORDER BY TITLE } else { $idx = $feeDateUNIX; //Order By date } if (isset($feedItems[$idx])) { $idx .= $counter; } #unique idx $feedItems[$idx] = $FeedValues[$key]; $counter++; } if ($rssdateorder == 1) { krsort($feedItems); } elseif ($rssdateorder == 2) { ksort($feedItems); } elseif ($rssdateorder == 3) { shuffle($feedItems); } if ((int) $params->get('debug', 0)) { echo "<p>Total RSS in Array:" . count($feedItems) . "</p>"; } return array("rsstotalitems" => $rssTotalItems, 'items' => $feedItems); }
//check if feed URL is set if (!$hideerrors && ($feeddata['rsstotalitems'] == 0 || count($feeddata["items"]) == 0 || $feeddata["items"] === false)) { echo '<div>There are not feed items to display.'; echo '<ul><li>Check if RSS URL is online</li><li>Check if RSS contains items</li>'; if ($filtermode > 0) { echo '<li>Check the #Keyword Filter# parameter. Change the keywords or remove them</li>'; } echo '</ul></div>'; return; } jimport('joomla.filesystem.file'); $items = modFeedShowHelper::getRows($feeddata["items"], $params); // Get RSS News if ($pagination && $feeddata !== false) { $maxitems = $feeddata["rsstotalitems"] > $amount ? $amount : $feeddata["rsstotalitems"]; $current_page = modFeedShowHelper::getPage($module->id); $pages = (int) ceil($maxitems / $pagination_items); $amount = $pagination_items; # rows } #Auto-calculate values $tbrows = $tbcolumns == 1 ? $amount : ceil($amount / $tbcolumns); $unit = JString::strpos($tablewidth, '%') > 0 ? '%' : 'px'; if ($cwidth == 'auto' || $cwidth == 0) { $cwidth = round($tablewidth / $tbcolumns, 2) . $unit; } ?> <!-- Web-Expert.gr Ultimate Feed Display Starts here --> <?php #########Load tmpl, you can customize it, overriding to templates/template-name/html/mod_we_ufeed_display/FOLDERNAME/default.php ######### require JModuleHelper::getLayoutPath('mod_we_ufeed_display', $params->get('layout', 'default') . DS . 'default');