ti-enxame.com

Substituições de layout: Link de imagem introdutória

Procurei em toda parte por esta resposta, mas não a encontro.

Eu realmente gosto das novas substituições de layout no Joomla 3, mas quero poder adicionar um link ao arquivo intro_image.php para que, quando um usuário clicar em uma imagem de introdução, ele seja levado ao artigo completo.

A maioria das respostas que encontrei sugerem remover a substituição e colocar o php diretamente na substituição do modelo, mas este é realmente um passo para trás.

Eu realmente gostaria de manter a substituição do meu layout, mas adicionar um link a ele. Parece simples, mas não consigo descobrir.

3
DesignSubway

A imagem de introdução é gerada no JLayout layouts/joomla/content/intro_image.php.

Você pode substituir isso em seu próprio modelo em /templates/your_template/html/layouts/joomla/content/intro_image.php.

Basta copiar o arquivo para lá e ajustar conforme necessário. Eu acho que você deve ser capaz de gerar um link lá.

Para gerar o link, você pode usar JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid));.

4
Bakual

Introdução Imagem com link para o artigo: Substituição de modelo

Seguindo a resposta de Bakual em onde colocar a substituição da imagem de introdução , aqui está um código de exemplo para uma substituição de modelo no layout da imagem de introdução, que vincula para o artigo. Ele verifica se o usuário tem acesso de visualização para ler o artigo completo e, em seguida, gera o link adequadamente (o mesmo que a geração do título do artigo).

defined('_JEXEC') or die;

$params  = $displayData->params;
if ($params->get('access-view')) :
    $link = JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid));
else :
    $menu = JFactory::getApplication()->getMenu();
    $active = $menu->getActive();
    $itemId = $active->id;
    $link1 = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $itemId);
    $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($displayData->item->slug, $displayData->item->catid));
    $link = new JUri($link1);
    $link->setVar('return', base64_encode($returnURL));
endif; ?>

<?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 $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); ?>" itemprop="thumbnailUrl"/>
        </a>
     </div>
<?php endif; ?>



Referências adicionais:

0
FFrewin