/**
	 * 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'
		);
	}
示例#2
0
                    ?>
						<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('&apos;', "'", $text);
                    ?>
						</div>
					<?php 
                }
                ?>
				</li>
		<?php 
            }
            ?>
		</ul>
	<?php 
        }
        ?>
示例#3
0
    /**
     * 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('&', '&amp;', $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('&apos;', "'", $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('&', '&amp;', $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('&apos;', "'", $text);
                        ?>
									</div>
								<?php 
                    }
                    ?>
							</li>
						<?php 
                }
                ?>
					</ul>
				</div>
			<?php 
            }
        }
    }
示例#4
0
 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();
 }
示例#5
0
文件: output.php 项目: adjaika/J3Base
 /**
  * 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);
 }