Интересно почитать… Блог в котором есть много интересной информации…

19 октября 2011

Как вытащить изображения из HTML

Категория: программирование — Метки: — dmitriano @ 14:56

Для вытаскивания img тэга из HTML можно использовать очень простой код на PHP:

$html = $value['introtext'];

preg_match('/<img[^>]+>/i', $html, $matches);

if (count($matches) > 0)
{
    $value['image'] = $matches[0];
    
    //print $value['image'];
}

тут у нас ‘introtext’ это поле в таблице jos_content, таком образом этот код можно использовать, чтобы вытащить первую картинку из материала в Joomla.

Затем эту картинку можно вставить в компонент JMatrix, для этого в файле components/com_jmatrix/views/section/tmpl/default.php надо добавить следующую строчку:

if ($this->list[$index][article])
{
    $class = "";
    if (in_array($this->list[$index][id], $emph1)) $class = ' class="jm_em1"';
    if (in_array($this->list[$index][id], $emph2)) $class = ' class="jm_em2"';
    echo "  <td".$class.">";
    if ($this->show_date) echo "<span class=\"jm_date\">".JHTML::date($this->list[$index][date], "%d %b %y")."</span>";
    if ($this->show_category) echo "<span class=\"jm_cat\">".$this->list[$index][category]."</span>";
    if ($this->link_type) $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->list[$index][slug], $this->list[$index][catslug], $this->list[$index][sectionid]));
    else $link    = JRoute::_('index.php?view=article&catid='.$this->list[$index][catslug].'&id='.$this->list[$index][slug]);
    echo "<a href=".$link.">".$this->list[$index][article]."</a>";            
    if ($this->show_author) echo "<span class=\"jm_auth\">"."by ".$this->list[$index][author]."</span>";
    if ($this->show_hits) echo "<span class=\"jm_hits\">"."hits: ".$this->list[$index][hits]."</span>";
    echo "<a href=".$link.">". $this->list[$index][image] ."</a>";
    echo "</td>\n";
}

Основным недостатком компонента JMatrix является то, что он не дружит, например, с FrontPage, т. е. на FrontPage ссылки на материалы будут такого вида: mysite.ru/component/content/article/<category-alias>/<article-alias>, вместо mysite.ru/<menu-item-alias>/<category-alias>/<article-alias>. При том, что в настройках компонента JMatrix можно выбирать любой из этих двух вариантов:

image

Видимо то, какой вариант ссылки получится на FrontPage зависит от того, включает ли FrontPage в ссылку такой параметр как идентификатор меню – ItemId. В обычном рутере это делается таким образом:

$menus = &JSite::getMenu();
$myMenuItem  = $menus->getActive();
$vars['Itemid'] = (int)$myMenuItem->id;

ну а FrontPage, видимо, ищет в базе меню типа content, и если находит, то добавляет его идентификатор.

Если вам тут ничего не понятно, то закройте эту страницу и почитайте статью Бытовой разум.

Линии 3D/Шарики 3D

Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

SlogPost.ru