Body classes vom URL Alias abhängig
Diese Funktion wird aus der page.tpl.php aufgerufen:
* <body <?php print phptemplate_body_attributes;?>> zuerst wird er alias angeschaut. falls dieser nur aus einem Element besteht, dann ist es ein Hauptseite Falls der Pfad aus mehreren Elementen besteht, eine Unterseite. Also: test -> das wäre unterseite test/test1 -> das wäre hauptseite. Natürlich umgekehrt:
test -> das wäre hauptseite
test/test1 -> das wäre unterseite
Das macht natürlich nur Sinn, wenn Pathauto entsprechend konfiguriert ist, oder die Aliase von Hand gesetzt werden.
<?php
function phptemplate_body_attributes() {
$path_alias = drupal_get_path_alias(arg(0) . '/' . arg(1));
$ar_path = explode("/", $path_alias);
$body = '';
if (count($ar_path) > 1) {
$body = 'unterseite';
} else {
$body = 'hauptseite';
}
return 'class="' . $body . '"';
}
?>Kleines Scriptli für Pierre ;)



Anwender von Zen haben sowas
Anwender von Zen haben sowas schon automatisch.
Dort ist dann im Body, wenn die Site Test heißen würde folgendes vorhanden:
<body class="not-front logged-in page-node node-type-page one-sidebar sidebar-right page-test section-test">Wie man erkennen kann, ist dort z.b auch Nodetyp vorhanden.
Ingesammt lässt die Body Class von Zen das CSS Themer Herz höher schlagen.
Aber dennoch, eine interessante geschichte für Anwender des phptemplates.
Danke;)
Ja, das mag stimmen, aber ich
Ja, das mag stimmen, aber ich denke, Zen hat nicht den gesuchten spezifischen Fall. Die Seitenstruktur sieht wie folgt aus:
Seite 1- Seite 2
- Seite 3
Seite 4
- Seite 5
Die Url für Seite 2 wäre: www.example.com/seite_1/seite_2
Dieser Code Schnippsel markiert jetzt eben alle Unterseiten mit einer Klasse und alle "Hauptseiten" mit einer anderen.
*hust* test -> das wäre
*hust*
test -> das wäre unterseite test/test1 -> das wäre hauptseite
Hab ich nen knick in der optik, oder hast dich da ein bisserl verschrieben? Müsste doch genau andersrum sein, oder versteh ich die Logik dahinter nicht?
um welche Zeit habe ich das
um welche Zeit habe ich das Post geschrieben? Vielleicht erklärt es das? :D
ist natürlich so wie du meinst ;)
Das ist eine gute Methode,
Das ist eine gute Methode, aber im Prinzip soll man keine Funktionen in Template Dateien haben. Eine
$body_attributesVariable, die in phptemplate_variables() definiert ist, würde besser sein.