refactored label render

This commit is contained in:
Antonio Ramirez
2013-05-29 14:13:19 +02:00
parent 3647c3f128
commit f651e72372

View File

@@ -63,6 +63,10 @@ class Button extends Widget
* @var string the button label * @var string the button label
*/ */
public $label; public $label;
/**
* @var array the HTML attributes of the button.
*/
public $buttonOptions = array();
/** /**
* @var array list of menu items in the dropdown. Each array element represents a single * @var array list of menu items in the dropdown. Each array element represents a single
* menu with the following structure: * menu with the following structure:
@@ -120,16 +124,23 @@ class Button extends Widget
protected function renderLabel() protected function renderLabel()
{ {
$label = $this->encodeLabels ? Html::encode($this->label) : $this->label; $label = $this->encodeLabels ? Html::encode($this->label) : $this->label;
$options = array('class' => 'btn dropdown-toggle', 'data-toggle' => 'dropdown'); $this->addCssClass($this->buttonOptions, 'btn');
$splitButton = '';
if ($this->split) { if ($this->split) {
$tag = 'button'; $tag = 'button';
$label .= Html::tag('button', '<span class="caret"></span>', $options); $options = $this->buttonOptions;
$options = array('class' => 'btn'); $this->buttonOptions['data-toggle'] = 'dropdown';
$this->addCssClass($this->buttonOptions, 'dropdown-toggle');
$splitButton = Html::tag('button', '<span class="caret"></span>', $this->buttonOptions);
} else { } else {
$tag = 'a'; $tag = 'a';
$options = $this->buttonOptions;
if (!isset($options['href'])) {
$options['href'] = '#'; $options['href'] = '#';
} }
return Html::tag($tag, $label, $options); $options['data-toggle'] = 'dropdown';
}
return Html::tag($tag, $label, $options) . "\n" . $splitButton;
} }
/** /**