Die Content-Komponente kann leicht mit unterschiedlichen Layouts versehen werden, hierfür steht die Seitenklasse die im Backend unter Menüs -> Menüpunkt -> Einstellungen der Seitenanzeige zu finden und zu vergeben ist. Was aber wenn die Blogansicht ein anderes Grundlayout benötigt, das außerhalb des Contents steht? In diesem Beitrag zeige ich Euch wie dies mit 4 Zeilen php-Code funktioniert.

Es gibt eine Menge Joomla! Extensions, da verliert man schnell den Überblick was alles schon installiert wurde, ob es noch up to date ist oder sich evtl. mit einer anderen Extension nicht verträgt. Die Lösung ist einfach, schnell, und ohne Extension zu realisieren.

Seht Euch als Beispiel den Quellcode meiner Seite an, auf der Startseite (Blog) ist der Footer mit meinem Foto und den Textangaben zu sehen, wenn ihr nun diesen Artikel lest, ist der Footer aus praktikablen Gründen ausgeblendet. Einige werden schon mit einem sog. CSS Switch gearbeitet haben, dieser funktioniert hier leider nicht, da die gängigen kostenlosen Extensions CSS2Switch und Custom CSS die CSS Dateien abhängig von der Menü-ID wechseln, der Blog und der Artikel haben jedoch dieselbe Menü-ID.

JFactory/getApplication

Um dieses Problem zu lösen, fragen wir Joomla was für eine Art von Seite wir gerade ansehen und erstellen daraus eine Klasse, die wir im CSS beschreiben können. Hierfür benötigen wir einen ein paar kurze Zeilen php-Code und einen Eintrag in der index.php im Body-Tag.

<?php $app=JFactory::getApplication();
$view=$app->input->getCmd('view', '');
$bodyclass="$view"; ?>
<body class="<?php echo $bodyclass;?>">

Die Zeilen 1 – 3 schreibt ihr in den Head der index.php eures Templates und die Zeile 4 ersetzt ihr gegen den Body-Tag. Joomla holt sich nun beim Laden der Seite die Information, um welche Art von Ansicht es sich handelt. Bei Blog wäre dies "category" und bei Artikel "article" - somit werden diese beiden Ansichten unterschieden und ihr könnt mit den Klassen body.category und body.article das gesamte Layout anpassen und nicht nur den Content-Bereich.

Auf der Blog Seite wird im Body-Tag die Klasse "category" erstellt

Auf der dazugehörigen Artikelseite wird im Body-Tag die Klasse "article" erstellt

Weitere Klassenoptionen

Das oben gezeigte Beispiel ist für einen speziellen Fall ausgelegt, JFactory::getApplication () bietet noch mehr Parameter zur Individualisierung der Body-Tag Klasse.

<?php $app="JFactory::getApplication();
$option="$app-"input->getCmd('option', '');
$view=$app->input->getCmd('view', '');
$layout=$app->input->getCmd('layout', '');
$itemid=$app->input->getCmd('Itemid', '');
$bodyclass=" $option $view $layout itemid$itemid";
?>

Menüpunkt abhängige Klasse

Als Beispiel für eine Menüpunkt abhängige Klasse müsste folgendes in der index.php des Templates geändert werden.

<?php $app="JFactory::getApplication();
$itemid=$app->input->getCmd('Itemid', '');
$bodyclass="$Itemid"; ?>

Ich möchte mich noch bei ilovo von Joomlaportal.de bedanken, der mir dabei geholfen hat, den Beitrag findet ihr hier.

Diesen Beitrag teilen
FaceBook  Twitter  Mixx.mn