web-dev-qa-db-ja.com

レイアウトの上書き:イントロ画像リンク

私はどこでもこの答えを探しましたが、見つかりません。

私はJoomla 3の新しいレイアウトオーバーライドが本当に好きですが、ユーザーがイントロ画像をクリックすると記事全体に移動できるように、intro_image.phpファイルへのリンクを追加できるようにしたいと考えています。

私が見つけた答えのほとんどは、オーバーライドを削除してphpをテンプレートのオーバーライドに直接配置することを提案していますが、これは実際には逆のステップです。

レイアウトのオーバーライドを維持したいが、リンクを追加したい。シンプルに見えますが、わかりません。

3
DesignSubway

イントロ画像はJLayout _layouts/joomla/content/intro_image.php_で生成されます。

これは、_/templates/your_template/html/layouts/joomla/content/intro_image.php_の独自のテンプレートでオーバーライドできます。

そこにファイルをコピーして、必要に応じて調整してください。そこでリンクを生成できると思います。

リンクを生成するには、JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid));を使用できます。

4
Bakual

記事へのリンクのある紹介画像:テンプレートの上書き

intro-image のオーバーライドを配置する場所に関するBakualの回答に続いて、記事にリンクしているintro-imageレイアウトのテンプレートオーバーライドのサンプルコードを次に示します。ユーザーが記事全体を読むための表示アクセス権を持っているかどうかを確認し、それに応じてリンクを生成します(記事のタイトルの生成と同じ)。

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



その他の参考資料:

0
FFrewin