В шаблонах Joomla 2.5 и 3.x изображение для вступительно текста выводится без ссылки на материал.
Как добавить ссылку..
Делать это нужно в коде шаблона компонента com_content в представлениях category и featured. И чтобы изменения не затерлись обновлением Joomla нужно соответствующие папки скопировать в папку html шаблона. В результате в папке шаблона появятся следующие папки:
- html/com_content/category
- html/com_content/featured
с файлами раскладок из папок tmpl, соответствующих представлений.
Теперь находим в файле blog_item.php следующий код:
<?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> <?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?> <div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>"> <img <?php if ($images->image_intro_caption): echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; endif; ?> src="/<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> </div> <?php endif; ?>
и добавляем ссылку на материал:
<a href="/<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"></a>
После добавления ссылки код со вступительным изображением выглядит так:
<?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> <?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?> <div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>"> <a href="/<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"> <img <?php if ($images->image_intro_caption): echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; endif; ?> src="/<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> </a> </div> <?php endif; ?>
Этот код также действителен и для Joomla 3.1.
Блок с превьюшным изображением в Joomla 3.1 сейчас выводится так:
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>
Этот код можно закомментировать и добавить код, который используется для Joomla 2.5
Но можно сделать, как предложил Сергей777 в комментарии к этому посту - не убирать JLayoutHelper::render... , а изменить содержание файла для вступительных картинок intro_image.php, который находится в папке
- layouts/joomla/content :
<?php $images = json_decode($displayData->images); ?> <?php if (isset($images->image_intro) && !empty($images->image_intro)) : ?> <?php $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; ?> <div class="pull-<?php echo htmlspecialchars($imgfloat); ?> item-image"> <a href="/<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid)); ?>"> <img <?php if ($images->image_intro_caption): echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption) .'"'; endif; ?> src="/<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/> </a></div> <?php endif; ?>
Чтобы изменения не затерлись при обновлении Joomla, переписываем папку layouts/joomla/content в html папку шаблона. Получается такой путь:
- шаблон/html/layouts/joomla/content