Artikel-Titel-Alias als class in <body>-Element der index.php einsetzen

  • Joomla Version
    6.0.2
    PHP Version
    PHP 8.3.x
    Hoster
    Lokal

    Hallo zusammen,

    wie kann ich das Artikel-Titel-Alias als class in das <body>-Element der index.php schreiben lassen?
    Ich habe das hier gefunden und getestet, es schreibt das Alias des aktiven Menüpunkts rein (was mir nichts bringt). Könnte man den Code ensprechend modifizieren, dass statt "getMenu" das Artikeltitel-Alias verwendet wird?

    PHP
    <?php
    $active = JFactory::getApplication()->getMenu()->getActive();
    ?>
    <body class="<?php echo $active->alias; ?>

    Viele Güße
    Flo

    • Hilfreichste Antwort

    Muss es denn unbedingt der Artikel-Alias sein, weil für den müsste man eine extra Datenbankabfrage machen, vorher ermitteln, ob die aktuelle Seite überhaupt eine Artikel-Ansicht ist ... etc.

    Die Artikel-ID findet sich im $active-Dingens irgendwo. Ich glaub im $active['query']-Array. Vielleicht leichter?

    Oder andere Idee: Nimm den Beispiel-Code von https://ghsvs.de/programmierer-…n-eigener-codes. Also nur (Rest ist uninteressant für dich):

    $aktuellerSeitenPfad = \Joomla\CMS\Uri\Uri::getInstance()->getPath();

    Diese Variable kannst dann anhand der Schrägstriche zerlegen und der letzte Teil nach dem letzten Schrägstrich ist dann meist der Artikel-Alias.

  • Servus!

    Vielen Dank für den glorreichen Tipp, tatsächlich klappt das prima, den aktuellen Pfad damit einzubinden!
    Ich selektiere per CSS body[class*="schnipsel-aus-Pfad"] bestimmte Seiten, um deren Design (ungeachteter der Kategorie und v.a. ohne einen direkten Menüpunkt) zu verändern.

    Wirklich tausend Dank, das spart mir gerade unglaublich viel Zeit!!! :)

    Viele Grüße,
    Flo

  • Ich habe Artikel in mehreren Kategorien, die in mehreren Sub-Designs angezeigt werden sollen (in meinem Fall mit unterschiedlichen Farben und Logos). Wie oben beschrieben, kann ich jetzt über eine entspr. Abfrage der Klasse im body-Element alle Anpassungen machen (ggf. muss ich einem Artikel-Alias noch einen Schnipsel hinzufügen;-).
    Ich hoffe, das ist verständlich?