protected static function normalizeTabs($tabs, &$panes, $i = 0)
{
$menuItems = array();
foreach ($tabs as $tabOptions) {
if (isset($tabOptions['visible']) && $tabOptions['visible'] === false) {
continue;
}
$menuItem = array();
$menuItem['icon'] = TbArray::popValue('icon', $tabOptions);
$menuItem['label'] = TbArray::popValue('label', $tabOptions, '');
$menuItem['active'] = TbArray::getValue('active', $tabOptions, false);
$menuItem['disabled'] = TbArray::popValue('disabled', $tabOptions, false);
$menuItem['linkOptions'] = TbArray::popValue('linkOptions', $tabOptions, array());
$menuItem['htmlOptions'] = TbArray::popValue('htmlOptions', $tabOptions, array());
$items = TbArray::popValue('items', $tabOptions, array());
if (!empty($items)) {
$menuItem['linkOptions']['data-toggle'] = 'dropdown';
$menuItem['items'] = self::normalizeTabs($items, $panes, $i);
} else {
$paneOptions = TbArray::popValue('paneOptions', $tabOptions, array());
$id = $paneOptions['id'] = TbArray::popValue('id', $tabOptions, 'tab_' . ++$i);
$menuItem['linkOptions']['data-toggle'] = 'tab';
$menuItem['url'] = '#' . $id;
self::addCssClass('tab-pane', $paneOptions);
if (TbArray::popValue('fade', $tabOptions, true)) {
self::addCssClass('fade', $paneOptions);
}
if (TbArray::popValue('active', $tabOptions, false)) {
self::addCssClass('active in', $paneOptions);
}
$paneContent = TbArray::popValue('content', $tabOptions, '');
$panes[] = self::tag('div', $paneOptions, $paneContent);
}
$menuItems[] = $menuItem;
}
return $menuItems;
}