1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/limesurvey_ynh.git synced 2024-09-03 19:36:32 +02:00
limesurvey_ynh/sources/application/extensions/bootstrap/widgets/TbDropdown.php

90 lines
2 KiB
PHP

<?php
/**
* TbDropdown class file.
* @author Christoffer Niska <ChristofferNiska@gmail.com>
* @copyright Copyright &copy; Christoffer Niska 2012-
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
* @package bootstrap.widgets
*/
Yii::import('bootstrap.widgets.TbBaseMenu');
/**
* Bootstrap dropdown menu.
* @see http://twitter.github.com/bootstrap/javascript.html#dropdowns
*/
class TbDropdown extends TbBaseMenu
{
/**
* Initializes the widget.
*/
public function init()
{
parent::init();
if (isset($this->htmlOptions['class']))
$this->htmlOptions['class'] .= ' dropdown-menu';
else
$this->htmlOptions['class'] = 'dropdown-menu';
}
/**
* Renders the content of a menu item.
* Note that the container and the sub-menus are not rendered here.
* @param array $item the menu item to be rendered. Please see {@link items} on what data might be in the item.
* @return string the rendered item
*/
protected function renderMenuItem($item)
{
if (isset($item['icon']))
{
if (strpos($item['icon'], 'icon') === false)
{
$pieces = explode(' ', $item['icon']);
$item['icon'] = 'icon-'.implode(' icon-', $pieces);
}
$item['label'] = '<i class="'.$item['icon'].'"></i> '.$item['label'];
}
if (!isset($item['linkOptions']))
$item['linkOptions'] = array();
if (isset($item['items']) && !empty($item['items']))
$item['url'] = '#';
$item['linkOptions']['tabindex'] = -1;
if (isset($item['url']))
return CHtml::link($item['label'], $item['url'], $item['linkOptions']);
else
return $item['label'];
}
/**
* Returns the divider CSS class.
* @return string the class name
*/
public function getDividerCssClass()
{
return 'divider';
}
/**
* Returns the dropdown css class.
* @return string the class name
*/
public function getDropdownCssClass()
{
return 'dropdown-submenu';
}
/**
* Returns whether this is a vertical menu.
* @return boolean the result
*/
public function isVertical()
{
return true;
}
}