Для вытаскивания 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 можно выбирать любой из этих двух вариантов:
Видимо то, какой вариант ссылки получится на FrontPage зависит от того, включает ли FrontPage в ссылку такой параметр как идентификатор меню – ItemId. В обычном рутере это делается таким образом:
$menus = &JSite::getMenu(); $myMenuItem = $menus->getActive(); $vars['Itemid'] = (int)$myMenuItem->id;
ну а FrontPage, видимо, ищет в базе меню типа content, и если находит, то добавляет его идентификатор.
Если вам тут ничего не понятно, то закройте эту страницу и почитайте статью Бытовой разум.