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_attributes Variable, die in phptemplate_variables() definiert ist, würde besser sein.