it-swarm.com.de

Layout-Overrides: Intro Image Link

Ich habe überall nach dieser Antwort gesucht, aber ich kann sie nicht finden.

Ich mag die neuen Layout-Overrides in Joomla 3 sehr, aber ich möchte in der Lage sein, einen Link zur Datei intro_image.php hinzuzufügen, damit ein Benutzer, wenn er auf ein Intro-Bild klickt, zum vollständigen Artikel weitergeleitet wird.

Die meisten Antworten, die ich gefunden habe, schlagen vor, den Override zu entfernen und das PHP direkt in den Template-Override zu setzen, aber das ist wirklich ein Rückwärtsschritt.

Ich würde wirklich gerne mein Layout außer Kraft setzen, aber einen Link hinzufügen. Es scheint einfach, aber ich kann es nicht herausfinden.

3
DesignSubway

Das Intro-Image wird im JLayout erzeugt layouts/joomla/content/intro_image.php.

Sie können dies in Ihrer eigenen Vorlage in /templates/your_template/html/layouts/joomla/content/intro_image.php Überschreiben.

Kopieren Sie einfach die Datei und passen Sie sie nach Bedarf an. Ich denke, Sie sollten in der Lage sein, dort einen Link zu generieren.

Um den Link zu generieren, können Sie JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid)); verwenden.

4
Bakual

Intro Image mit Link zum Artikel: Template override

Nach Bakuals Antwort , wo die Überschreibung für das Intro-Image platziert werden soll , ist hier ein Beispielcode für eine Vorlagenüberschreibung für das Intro-Image-Layout, die Verknüpfung zum Artikel. Es wird geprüft, ob der Benutzer zum Lesen des vollständigen Artikels über Ansichtszugriff verfügt, und der Link entsprechend generiert (wie bei der Generierung des Artikeltitels).

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



Weitere Referenzen:

0
FFrewin