May I suggest a little bit different?
/**
* Return a themed list of items.
*
* @param $items
* An array of items to be displayed in the list.
* @param $title
* The (optional) title of the list.
* @return
* A string containing the list output.
*/
function theme_item_list($items = array(), $title = NULL, $type =
'unordered list') {
$class = '';
$output = '';
if (isset($items)) {
switch($type) {
case 'unordered list':
case 'ul':
$list .= '<ul>';
foreach ($items as $item) {
$list .= '<li>'. $item .'</li>';
}
$list .= '</ul>';
$class = 'unordered-list';
break;
case 'ordered list':
case 'ol':
$list .= '<ol>';
foreach ($items as $item) {
$list .= '<li>'. $item .'</li>';
}
$list .= '</ol>';
$class = 'ordered-list';
break;
case 'definition list':
case 'dl':
$list .= '<dl>';
foreach ($items as $item) {
$list .= '<dt>'. $item .'</dt>';
}
$list .= '</dl>';
$class = 'definition-list';
break;
}
if (isset($title)) {
$output .= '<h3>'. $title .'</h3>';
}
$output .= '<div class="'. $class .'">'. $list .'</div>';
return $output;
}
Reasons:
* E_ALL Compilant
* break was missing
* good for types 'ul'-like (like I prefer) and 'ordered list'-like (like you prefer)
btw... shouldnt there be a way to changing the class name? just a tought...
Regards,
- Sergio
Op 18-okt-2005, om 16:45 heeft drupal-devel@drupal.org het volgende
geschreven:
> User: dries Branch: HEAD Date: Tue, 18 Oct 2005 14:45:09 +0000
>
> Modified files:
> /includes theme.inc
>
> Log message:
> - Patch #32573 by Moshe: added support for ordered lists to
> theme_item_list().
>
> Links:
> http://cvs.drupal.org/diff.php?path=drupal/includes/
> theme.inc&old=1.261&new=1.262
>
> --
> [ Drupal cvs list | http://list.drupal.org/ ]
>
>
I do not, and I repeat _not_ like this approach!
A nicer solution would imo be:
/**
* Return a themed list of items.
*
* @param $items
* An array of items to be displayed in the list.
* @param $title
* The (optional) title of the list.
* @return
* A string containing the list output.
*/
function theme_item_list($items = array(), $title = NULL, $type =
'unordered list') {
$class = str_replace('-', ' ', $type);
if (isset($items)) {
switch($type) {
case 'unordered list':
$list .= '<ul>';
foreach ($items as $item) {
$list .= '<li>'. $item .'</li>';
}
$list .= '</ul>';
case 'ordered list':
$list .= '<ol>';
foreach ($items as $item) {
$list .= '<li>'. $item .'</li>';
}
$list .= '</ol>';
case 'definition list':
$list .= '<dl>';
foreach ($items as $item) {
$list .= '<dt>'. $item .'</dt>';
}
$list .= '</dl>';
}
if (isset($title)) {
$output .= '<h3>'. $title .'</h3>';
}
$output .= '<div class="'. $class .'">'. $list .'</div>';
return $output;
}
Isn't something like this nicer? And, easier to use?
Steef
---
Stefan Nagtegaal
Drupal-Devel@iStyledThis.nl
Drupal Development Mailinglist