Kategoriebild aus der Darstellung der Beiträge entfernen (ohne Blogmenü)

  • !! Es geht nicht um das Entfernen des Kategoriebildes im backend im Blog-Menü, sondern im Programmcode.


    Frage: Gibt es eine Möglichkeit, das Kategoriebild in der Darstellung der Beiträge, welche einer untergeordneten Kategorie zugeordnet sind, zu unterdrücken.


    Beispiel: Angelegt sind

    • Kategorie: zzKurs
      (Oberste Kategorieebene)
    • Kategorie: zzkurs 01 - mehrere Beiträge - ohne Menü (k)
      (Untergeordnete Kategorieebene)
    • Beiträge (2)
      (welche der untergeordneten Kategorie zugeordnet sind)
    • Ein Menü (Menüeintragstyp: Alle Kategorien auflisten): zur Kategorie zzKurs

    Eine Lösung besteht darin, dass man ein zweites, untergeordnetes Menü (Menüeintragstyp: Kategorieblog) im backend anlegt und dort einstellt: Kategoriebild: [Verbergen].


    Ich suche nach einer einfacheren Lösung, da es um mehrere Kurse, weitere Unterkategorien und eine Menge Beiträge geht - und nicht nur darum. Ich habe (nach entsprechendem override) in /html/com_content/category/ ...php allerdings nicht die Stelle für eine mögliche Änderung gefunden.


    Zur Anschauung:

    1) Ansicht oberste Kategorieebene


    2) Ansicht untergeordnete Kategorieebene (Darstellung der Beiträge)


  • Ich habe selbst eine mögliche Lösung gefunden:


    Nach Erstellen eines overrides wird dort der Codeschnipsel zur Anzeige entfernt / oder still gestellt in:

    /html/com_content/category/blog.php


    PHP
    <?php /** Verhindert die Anzeige des Kategoriebildes (der übergeordneten Kategorie) in der Darstellung der Beiträge der Unterkategorie --- 
    <?php if ($this->params->get('show_description_image') &&   $this->category->getParams()->get('image')) : ?>
    <img src="<?php echo $this->category->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($this->category->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>"/>
    <?php endif; ?>
    --- */ ?>

    Nachteil: Das Kategoriebild wird auch dann nicht angezeigt, wenn es beim Verwenden eines Kategorie-Blog-Menüs auf [Anzeigen] gestellt ist.

    Vielleicht gibt es ja noch eine bessere Lösung?

  • Zumindest als Ansatz. An den Anfang der blog.php

    Code
    if ($this->menu->query['view'] === 'categories')
    {
        $this->params->set('show_description_image', 0);
    }

    Kann dir allerdings nicht versprechen, dass

    Code
    $this->menu

    immer im Joomla-Core verfügbar ist. Meine Testseite ist schon ziemlich verbaut.

    Dann musst das aktuelle Menü eben selbst abfragen. Gibt es in Joomla ja genug Abspick-Stellen.


    Weitere Möglichkeit. Mit

    Code
    $this->menu->query['id']

    filtern, was dann die id der obersten Kategorie wäre. wie im Menü eingestellt. EDIT: Zusätzlich sollte man aber weitere Filter haben, je nach weiteren Menüs und Einstellungen.


    Oder sich halt im MenuItem Object

    Code
    $this->menu

    andere Eigenschaften raussuchen, die für Filterung geeigneter.