/** * Tests stripping images. * * @return void * * @since 11.3 */ public function testStripImages() { $this->assertEquals( 'Hello I am waving at you.', $this->object->stripImages('Hello <img src="wave.jpg"> I am waving at you.'), 'Should remove img tags' ); }
?> <h5 class="feed-link"><?php echo $feed[$i]->title; ?> </h5> <?php } ?> <?php if ($params->get('rssitemdesc') && !empty($text)) { ?> <div class="feed-item-description"> <?php // Strip the images. $text = JFilterOutput::stripImages($text); $text = JHtml::_('string.truncate', $text, $params->get('word_count')); echo str_replace(''', "'", $text); ?> </div> <?php } ?> </li> <?php } ?> </ul> <?php } ?>
/** * 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 } ?> <?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 } ?> <?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 } ?> <?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 } ?> <?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 } ?> </li> <?php } ?> </ul> </div> <?php } } }
public function getRssFeed($url, $id) { $response = new JAXResponse(); $version = new JVersion(); $joomla_ver = $version->getHelpVersion(); $rss = array(); if ($joomla_ver <= '0.30') { $rssData = $this->getRSS($url, $id); foreach ($rssData->items as $item) { $data = new stdClass(); preg_match_all('#(<[/]?img.*>)#U', $item->get_content(), $matches); $imgSrc = ''; if (isset($matches[0][0])) { $imgSrc = explode('src="', $matches[0][0]); $imgSrc = explode('" ', $imgSrc[1]); $imgSrc = $imgSrc[0]; } $data->title = $item->get_title(); $data->url = $item->get_link(); $data->img = $imgSrc; $data->published = strtolower($item->get_date('l , d F Y')); $data->content = strip_tags(JFilterOutput::stripImages($item->get_description())); $rss[] = $data; } } else { try { $feed = new JFeedFactory(); $rssDoc = $feed->getFeed($url); } catch (InvalidArgumentException $e) { return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED'); } catch (RunTimeException $e) { return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED'); } catch (LogicException $e) { return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED'); } if (empty($rssDoc)) { return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED'); } if ($rssDoc) { for ($i = 0; $i < 5; $i++) { $date = $rssDoc[$i]->publishedDate; $data = new stdClass(); preg_match_all('#(<[/]?img.*>)#U', $rssDoc[$i]->content, $matches); $imgSrc = ''; if (isset($matches[0][0])) { $imgSrc = explode('src="', $matches[0][0]); $imgSrc = explode('" ', $imgSrc[1]); $imgSrc = $imgSrc[0]; } $data->title = $rssDoc[$i]->title; $data->url = $rssDoc[$i]->uri; $data->img = $imgSrc; $data->published = strtolower($date->format('l , d F Y')); $data->content = strip_tags(JFilterOutput::stripImages($rssDoc[$i]->content)); $rss[] = $data; } } } $html = ''; foreach ($rss as $data) { //var_dump($data->img); $html .= '<div class="media clearfix">'; $html .= '<div class="media-body">'; $html .= '<h4 class="media-heading reset-gap"><a href="' . $data->url . '" target="_blank">' . $data->title . '</a></h4>'; $html .= '<p class="orange">' . $data->published . '</p>'; if ($data->img) { $html .= '<a class="pull-left thumbnail" href="' . $data->url . '" target="_blank">'; $html .= '<img class="media-object" src="' . $data->img . '" width="100px" />'; $html .= '</a>'; } $html .= JHTML::_('string.truncate', $data->content, 200); $html .= '</div>'; $html .= '</div>'; } $response->addScriptCall('joms.jQuery("#' . $id . '").html', $html); return $response->sendResponse(); }
/** * Helper wrapper method for stripImages * * @param string $string Sting to be cleaned. * * @return string Cleaned string. * * @see JFilterOutput::stripImages() * @since 3.4 */ public function stripImages($string) { return JFilterOutput::stripImages($string); }