Inhaltsbereiche collapsible - wie geht es?

Beliebige Inhalts- oder Textbereiche collapsible gestalten. Dafür gibt es ein Modul. Nicht bei allen Anwendungsaufgaben wird dieses Modul benötigt oder kann man es einsetzen.
Für collapsible Inhaltsbereiche hat Drupal bereits mit dem Core eine Lösung parat. Man kann also collapsible Inhaltsbereiche, wie man so sagt, mit Bordmitteln realisieren.

Das Bordmittel

Es ist die Funktion theme_fieldset($element) .

Aber wie wendet man nun diese Funktion konkret an? Was ist mit der Variable $element und wie muss man sie aufbauen?

Die Lösung ist einfach. Was man benötigt ist variabilisierter Inhalt. Dieser variabilisierte Inhalt enthält den Inhalt der im collapsiblen Bereich angezeigt werden soll.

Beispielsweise:

<?php
$foobar = '<div class="collapsi-content"></div>';
?>

Und hier das Ganze in der kompletten Anwendung der Funktion theme_fieldset($element):

<?php
$fieldset = array(
  '#title' => 'mehr Infos',
  '#collapsible' => TRUE,
  '#collapsed' => TRUE,
  '#value' => $foobar,
);
$output .= theme('fieldset', $fieldset);
print $output;
?>

Hiermit wird ein standardmässig zugeklappter Inhaltsbereich angezeigt. Soll der Bereich standardmässig aufgeklappt sein setzt man #collapsed auf FALSE.

Das ist schon alles.

Hinweis

Der variabilisierte Inhalt muss von einem HTML-Element umgeben sein sonst gibt es Anzeigeprobleme.

Anwendungsfall

Wenn man mit Views den Inhalt eines CCK-Nodetypes feldweise ausgibt kann man nur Felder ansprechen.
Hat man aber im Nodetype eine collapsible Feldgruppe definiert steht man vor der Frage wie man diese mit dem View angezeigt bekommt.

Die Lösung ist den View mit einem zu Template erstellen.

Als Template-Typ verwendet man "Anzeige des Zeilendesign". Im Template kann man die Funktion theme_fieldset() verwenden um die gewünschten Felder in einem collapsiblen Bereich anzugeben.

Powered by Drupal. Created with ZenWalk.