function xbbcode_list_render_recursive in Extensible BBCode 6
Same name and namespace in other branches
- 5 xbbcode_list/xbbcode_list.module \xbbcode_list_render_recursive()
1 call to xbbcode_list_render_recursive()
- xbbcode_list_render in xbbcode_list/
xbbcode_list.module
File
- xbbcode_list/
xbbcode_list.module, line 95
Code
function xbbcode_list_render_recursive($tag, $classes, $items) {
// Shift one class off the queue.
$class = array_shift($classes);
// If the levels run deeper than available classes, continue using the last one.
if (!$classes) {
$classes = array(
$class,
);
}
// Generate an ol or ul element with this class.
$out = '<' . $tag . ' class="' . $class . '">';
// The parent was added by the preceding level of recursion. Root-level parent is dumped.
unset($items['#parent']);
foreach ($items as $item) {
if (is_array($item)) {
// Render each item's sublevels, if they exist.
$item = $item['#parent'] . xbbcode_list_render_recursive($tag, $classes, $item);
}
// Print the item.
$out .= '<li>' . $item . '</li>';
}
$out .= '</' . $tag . '>';
return $out;
}