Drupal 6: Listendarstellung (item-list) mit odd / even CSS-Klassen erweitern (Zebra)
Den Listelementen wird standardmäßig die Klasse "first" bzw. "last" mitgegeben, wird nun aber eine zeilenbezogene Hintergrundanpassung gewünscht wie in der Tabelle, fehlt hier die entsprechende Funktionalität. Der nachfolgeden Code muss einfach im Theme Verzeichnis in die "template.php" kopiert werden und der Begriff "THEMENAME" entsprechend ersetzt werden.
Nach Löschen des Caches werden alle Listenelemente mit einem "odd" bzw. "even" versehen und der Zugriff ist über die CSS-Klassen möglich.
Der entsprechende Thread dazu ist auch hier zu finden: http://drupal.org/node/165456.
<?php function THEMENAME_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NULL) { static $count = 0; // added $output = '<div class="item-list">'; if (isset($title)) { $output .= '<h3>' . $title . '</h3>'; } if (!empty($items)) { $output .= "<$type" . drupal_attributes($attributes) . '>'; $num_items = count($items); foreach ($items as $i => $item) { $zebra = ($count % 2) ? 'odd' : 'even'; // added $count++; // added $attributes = array(); $children = array(); if (is_array($item)) { foreach ($item as $key => $value) { if ($key == 'data') { $data = $value; } elseif ($key == 'children') { $children = $value; } else { $attributes[$key] = $value; } } } else { $data = $item; } if (count($children) > 0) { $data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list } if ($i == 0) { $attributes['class'] = empty($attributes['class']) ? 'first' : ($attributes['class'] . ' first'); } if ($i == $num_items - 1) { $attributes['class'] = empty($attributes['class']) ? 'last' : ($attributes['class'] . ' last'); } $attributes['class'] .= ' ' . $zebra; $attributes['class'] = trim($attributes['class']); $output .= '<li' . drupal_attributes($attributes) . '>' . $data . "</li>\n"; } $output .= "</$type>"; } $output .= '</div>'; return $output; } ?>







Neuen Kommentar schreiben