public function li()
{
return _class('html')->li([
'name 1',
[
'name' => 'My name 2',
],
[
'name' => 'My name 3',
'link' => url('/@object/@action/@id/3'),
],
]);
}
public function li($data = [], $extra = [])
{
$extra['id'] = ($extra['id'] ?? null) ?: __FUNCTION__ . '_' . ($this->_ids[__FUNCTION__] = ($this->_ids[__FUNCTION__] ?? 0) + 1);
$items = [];
foreach ((array) $data as $v) {
if ( ! is_array($v)) {
$body = $v;
$v = [];
} else {
$body = ($v['body'] ?? null) ?: ($v['name'] ?? null);
}
if ( ! strlen((string) $body)) {
continue;
}
$class_item = ($v['class'] ?? null) ?: ($extra['class_item'] ?? null);
$badge = ($v['badge'] ?? null) ? ' <sup class="badge badge-' . (($v['class_badge'] ?? null) ?: 'info') . '">' . ($v['badge'] ?? null) . '</sup>' : '';
$items[] = '<li class="' . ($class_item ? ' ' . $class_item : '') . '"' . (($v['id'] ?? null) ? ' id="' . ($v['id'] ?? null) . '"' : '') . '>' . $badge . (($v['link'] ?? null) ? '<a href="' . ($v['link'] ?? null) . '">' . $body . '</a>' : $body) . '</li>';
if (is_array(($v['sub'] ?? null))) {
$items[] = $this->li(($v['sub'] ?? null), $extra);
continue;
}
}
return '<ul' . _attrs($extra, ['id', 'class', 'style']) . '>' . implode(PHP_EOL, (array) $items) . '</ul>';
}