function xbbcode_list_split_items in Extensible BBCode 6
Same name and namespace in other branches
- 5 xbbcode_list/xbbcode_list.module \xbbcode_list_split_items()
1 call to xbbcode_list_split_items()
- xbbcode_list_render in xbbcode_list/
xbbcode_list.module
File
- xbbcode_list/
xbbcode_list.module, line 69
Code
function xbbcode_list_split_items($text, $level = 1) {
// Split the items of the current level, starting at [*]
$pattern = '/\\[\\*{' . $level . ',' . $level . '}\\]/';
$items = preg_split($pattern, $text);
// Trim all items for white-space
foreach ($items as $i => $item) {
$items[$i] = trim($item);
}
// For deeper levels, the first item will be the parent. At the root level, this is ignored.
if (count($items) > 1) {
$parent = array_shift($items);
}
foreach ($items as $i => $item) {
// If the list has additional levels, split it further.
if (preg_match('/\\[\\*{' . ($level + 1) . ',' . ($level + 1) . '}\\]/', $item)) {
$items[$i] = xbbcode_list_split_items($item, $level + 1);
}
}
$items['#parent'] = $parent;
return $items;
}