Joomla intro image как дополнительная ссылка

Я хочу сделать intro-образ статьи joomla, чтобы вести себя как прочитанное больше, и ссылку заголовка. Таким образом, пользователь щелкает изображение, и изделие загружается.

Я не эксперт PHP, но, возможно, это код readmore links:

<a href="<?php echo $this->item->readmore_link; ?>" class="button<?php echo $this->item->params->get('pageclass_sfx'); ?>"> <?php if ($this->item->readmore_register) : echo JText::_('Register to read more...'); elseif ($readmore = $this->item->params->get('readmore')) : echo $readmore; else : echo JText::_("Read Article"); endif; ?></a> 

Это то, что я хочу делать с каждым интро-изображением на моем сайте joomla. Благодаря !

Просто решил!

ваш образ мышления помог мне. Спасибо!

вот мой код:

  <a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>"> <?php $images = json_decode($item->images); if (isset($images->image_intro) and !empty($images->image_intro)) { $imgfloat = (empty($images->float_intro)) ? $params->get('float_intro') : $images->float_intro; $class = (htmlspecialchars($imgfloat) != 'none') ? ' class="size-auto align-'.htmlspecialchars($imgfloat).'"' : ' class="size-auto"'; $title = ($images->image_intro_caption) ? ' title="'.htmlspecialchars($images->image_intro_caption).'"' : ''; echo '<img'.$class.$title.' src="'.htmlspecialchars($images->image_intro).'" alt="'.htmlspecialchars($images->image_intro_alt).'" />'; } echo $this->item->introtext; ?> </a> 

для Joomla 2.5:

в вашем переопределении для _item.php (Location: yourtemplate \ html \ mod_articles_news \ item.php) поместите следующую строку:

 <?php if ($params->get('image')) : ?> <?php $images = json_decode($item->images); ?> <?php if (isset($images->image_intro) and !empty($images->image_intro)) : ?> <a href="<?php echo $item->link;?>"><img src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/></a> <?php endif; ?> <?php endif; ?> 

Поместите его туда, где вы хотите, чтобы он появился. Например, после:

 <?php echo $item->beforeDisplayContent; ?> 

Теперь ваше вступительное изображение стало ссылкой. часть isset, гарантирует, что если зритель использует Internet Explorer, он не отображает небольшой красный квадрат.

Только для информации: в blog_item.php вы можете найти пример кода, как это показано в статье. Здесь вы также можете найти код для imagefloat и т. Д.

 <?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; ?> 

Поэтому позвольте мне начать с объяснения того, что делает код, который вы опубликовали выше. Весь блок кода генерирует одну ссылку: существует группа операторов if, которые определяются на основе некоторых настроек. Например, если вы установили, что люди должны зарегистрироваться, чтобы читать больше, в ссылке будет указано «Зарегистрируйтесь, чтобы узнать больше …»

Тем не менее, часть, которую мы здесь интересуем, поскольку мы хотим превратить изображения в ссылки, является URL-адресом, к которому мы хотим привязать изображения. Это верно в первой строке:

 <a href="<?php echo $this->item->readmore_link; ?>" 

поэтому мы знаем, что URL-адрес предоставляется динамически благодаря $item->item->readmore_link и весь этот код выполняет эхо в HTML.

Осталось только отредактировать ваш шаблон Joomla на странице, на которой у вас есть ваши изображения (вероятно, тот же файл, с которого вы взяли этот код). Похоже, что это должно быть частью большего цикла PHP, который перебирает все сообщения. Где-то выше, где вы нашли этот код, должен быть код для встроенного образа, который совпадает с этим сообщением.

Я не уверен, как это будет выглядеть, это может быть <img src="<? stuff here; ?> /> Или он может быть динамически сгенерирован. Продолжайте читать. Если вы все еще не уверены, где найти это в конце, отредактируйте свой пост с полным кодом шаблона, где вы получили вышеупомянутый отрывок. Независимо от того, как он выглядит, он называется <WHATEVER IMAGE CODE YOU FOUND ABOVE> на следующем шаге:

Вы должны обернуть это изображение тегами «a», чтобы он выглядел следующим образом:

 <a href="<?php echo $this->item->readmore_link; ?>"> <WHATEVER IMAGE CODE YOU FOUND ABOVE> </a> 

Это должно сделать это. Дайте мне знать, если у вас возникнут проблемы, я буду более чем счастлив сделать свой пост более конкретным, если вы сможете предоставить более подробную информацию, но я попытался объяснить это достаточно хорошо, чтобы вы могли понять это с помощью пара пытается.

Как вы заявили, что вы не являетесь экспертом по PHP, кажется, что лучше всего использовать расширение Joomla, которое имеет схожие функции с тем, что вы хотите.

Я считаю, что mod_minifrontpage будет работать для того, что вам нужно. Он позволяет отображать список статей, и он создает миниатюры для этих статей на основе первого изображения, на которое нужно ссылаться.

В J есть встроенные изображения статей, так как 1.7.5 и теперь в последнем 2.5.3 вам нужно изменить значения по умолчанию для component_content,

вы можете сделать это двумя способами, редактируя представления в вашем приложении / components / com_content / views /

или использовать переопределения шаблонов, сначала вам нужно знать, использует ли ваш шаблон IS переопределения, если вы редактируете представления компонентов в самом компоненте, вы не увидите изменений.

чтобы проверить это, перейдите в папку site_name / templates / template_name / html и проверьте, есть ли имя папки com_content,

если это так, как ваш шаблон использует переопределения, и любые изменения должны выполняться через не через компонент

теперь к фактическому коду

это в компонентах \ com_content \ views \ featured \ tmpl \ default_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; ?> 

все, что вам нужно сделать, это обернуть элемент вокруг тега IMG с помощью ссылки readmore

 <a href="<?php echo $this->item->readmore_link; ?>"> <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> 

НЕ забывайте, что если для com_content есть переопределение шаблона, вам нужно отредактировать featured / default_item.php внутри него

В Joomla 3.1 макет intro_image был перемещен в папку layouts / joomla / content. В моей ситуации он вызывается из com_content / views / category / tmpl / blog_item.php следующим образом:

 <?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?> 

Я переместил этот файл в свой шаблон / html / com_content / category / blog_item.php, а затем завернул вызов JLayoutHelper следующим образом:

 <?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?> <a href="<?php echo $link; ?>"> <?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?> </a> 

Если у вас установлен Gantry на Joomla 3.1, переопределения находятся в другом месте. Вам нужно будет перейти к плагинам / системе / gantry / overrides / 3.0 / 2.5 / com_content / category / blog_item.php и обернуть начальное изображение с помощью кода дополнительной ссылки.

  <?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?> <a href="<?php echo $link; ?>"><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>