it-swarm.com.de

So zeigen Sie markierte Elemente im Kategorie-Blog-Layout an

Ich möchte ein Menüelement für ein Tag erstellen, das die Artikel wie im Kategorie-Blog-Layout anzeigt. Ich habe es mit den folgenden Menüelementtypen versucht: "Kompakte Liste der markierten Elemente", "Liste aller Tags" und "Markierte Elemente", aber ohne Erfolg.

Laut offizielle Dokumentation von Content-Tags scheint dies möglich zu sein.

Sobald Sie Tags und einige markierte Elemente haben, können Sie diese auf verschiedene Arten im Frontend anzeigen.

Standardmäßig ist Joomla! zeigt Tags an, die in jedem Element eingebettet sind, das markiert wurde. Sie können diese Anzeige durch Ändern der Parameter ausschalten. Sie können die Position dieser Anzeige mit Layoutüberschreibungen und alternativen Layouts steuern und sie mit Ihrem CSS gestalten.

Sie können einen Menülink erstellen, der eine Liste von Tags mit Links zu den markierten Elementen für jedes Tag anzeigt.

> Sie können einen Menülink erstellen, der eine Liste der mit Tags versehenen Elemente für ein bestimmtes Tag anzeigt und entweder als Liste oder als Blogstil anzeigt.

Sie können eines der Tag-Module verwenden. Beliebte Tags zeigen eine verknüpfte Liste der Tags mit den meisten Tags an. Ähnliche Tags zeigen eine Liste von Elementen an, die ähnliche Tags wie das aktuell angezeigte Element aufweisen (beachten Sie, dass dieses Modul nicht auf Seiten angezeigt wird, auf denen keine Inhaltselemente angezeigt werden).

8
Alfredo Osorio

Da dieses Problem anscheinend bereits mehrmals gestellt wurde und es immer noch keine gute Antwort darauf gibt, möchte ich versuchen, meine Lösung von der Seite zum Überschreiben von Vorlagen bereitzustellen. Die Schritte sind recht komplex, sollten aber einfach sein.

Hinweis: Ich verwende Joomla 3.4.4 und Template Protostar beim Erstellen dieses Tutorials

Kopieren Sie zuerst diese Dateien:

[root]/components/com_tags/views/tag/tmpl/default.php
[root]/components/com_tags/views/tag/tmpl/default.xml
[root]/components/com_tags/views/tag/tmpl/default_items.php

zu

[root]/templates/your_template_name/html/com_tags/tag/default.php
[root]/templates/your_template_name/html/com_tags/tag/default.xml
[root]/templates/your_template_name/html/com_tags/tag/default_items.php

ersetzen Sie die Dateinamen durch etwas, das Ihnen gefällt, zum Beispiel 'taggedblog'.

[root]/templates/your_template_name/html/com_tags/tag/taggedblog.php
[root]/templates/your_template_name/html/com_tags/tag/taggedblog.xml
[root]/templates/your_template_name/html/com_tags/tag/taggedblog_items.php

Öffnen Sie die Datei [root] /templates/Ihr_Vorlagenname/html/com_tags/tag/taggedblog.xml . Am Anfang der Datei sehen Sie den folgenden Code:

<layout title="com_tags_tag_view_default_title" option="com_tags_tag_view_default_option">

ändere das auf

<layout title="Tagged Blog" option="taggedblog">

Zu diesem Zeitpunkt sollte ein neuer Menüelementtyp namens Tagged Blog angezeigt werden, wenn Sie ein neues Menüelement in Ihrem Menü-Manager erstellen. Siehe dieses Bild unten

New Tagged Blog Menu Item

Öffnen Sie nun die Datei [root] /templates/your_template_name/html/com_tags/tag/taggedblog_items.php

in den Zeilen 62 löschen Sie diesen Code:

<ul class="category list-striped">

und es ist </ul> das schließende Tag in den Zeilen 90

löschen Sie dann in derselben Datei die in Zeile 64 gestarteten Codes:

<?php if ($item->core_state == 0) : ?>
                <li class="system-unpublished cat-list-row<?php echo $i % 2; ?>">
            <?php else: ?>
                <li class="cat-list-row<?php echo $i % 2; ?> clearfix" >

<?php endif; ?> In den Zeilen 70 und schließendes Tag </li> In den Zeilen 85

Fügen Sie als nächstes <div class="span5"> In 64 Zeilen nach dem Code <?php foreach ($items as $i => $item) : ?> ein und fügen Sie schließend </div> Vor dem <?php endforeach; ?> Ein.

Als nächstes fügen Sie in den Zeilen 77 vor dem Code <?php if ($this->params->get('tag_list_show_item_description', 1)) : ?> diesen Code hinzu:

<?php
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('introtext')->from('#__content')->where('id=' . (int)$item->content_item_id);
    $db->setQuery($query);
    //displaying the intro image
    $images  = json_decode($item->core_images);
    if(!empty($images->image_intro)) {
        echo '<img src="'.$images->image_intro.'">';
    }
    //displaying the intro text
    $introtext = $db->loadResult();
    echo $introtext;

    ?>

Zu diesem Zeitpunkt sollten Introtext und Intro-Image auf der Website angezeigt worden sein.

Öffne nun die Datei [root] /templates/your_template_name/html/com_tags/tag/taggedblog.php , um die Zeilen 51 herum siehst du diesen Code <?php echo $this->loadTemplate('items'); ?>, ändere diese Zeile in:

<div class="row"><?php echo $this->loadTemplate('items'); ?></div>

Das ist alles.

Versuchen Sie nun, in Ihrem Joomla-Menü-Manager einen Menüeintrag mit dem Typ Tagged Blog zu erstellen und sehen Sie sich das Ergebnis an.

Zur Vereinfachung habe ich diese Dateien in hier hochgeladen. Habe Spaß!

8
webchun

Dies ist derzeit nicht möglich. Der nächstmögliche Wert ist Tagged Items. In den Joomla-Foren gibt es einen Artikel darüber, wie man das hinzufügt. http://forum.joomla.org/viewtopic.php?f=708&t=838191

Dies ist derzeit auch eine Anfrage auf ideas.joomla.org unter http://ideas.joomla.org/forums/84261-joomla-idea-pool/category/12057-content?query=category%20blog%20tagged % 20items . Sie können dafür stimmen, dass es aufgenommen wird.

2
Lucinda Cage

Im März 2019 scheint dies immer noch ein Problem zu sein. Ein anderer Ansatz könnte darin bestehen, die Umleitung Ihres Webservers (Apache/ngnix/IIS/etc) zu verwenden, um die "Standard" -Links abzufangen und zu Ihren eigenen Links umzuleiten. Die Nachteile (wie ich sie sehe) sind: - Zugriff auf die relevanten Konfigurationsdateien für den Webserver (für Apache kann dies im Verzeichnis .htaccess erfolgen, sofern mod_rewrite aktiviert ist) - Sie haben eine überschaubare Anzahl von Tags, mit denen Sie ein Zielmenüelement für jedes erstellen können (wenn Sie 200 Tags haben, können Sie könnte Menüelemente für jedes erstellen, aber wer würde sich darum kümmern?) Die von mir verwendeten Apache-Umschreibregeln dafür sind:

RewriteBase /
ReWriteRule ^component/tags/tag/([^\.]+).html$ /$1-articles [L,R=301]

Daher habe ich für jedes Tag einen Zielartikel in dem Format, auf das ein Menüelement mit dem Tag-Namen und -Artikeln zugreifen soll (z. B. Tag1-Artikel). Sicher, es ist eine Problemumgehung, aber ich habe das gewünschte Ergebnis erzielt, da ich die beiden oben genannten "Bedingungen" (Apache-Konfigurationszugriff und nicht viele Tags) erfüllen kann.

0
Mark Bradley