* @copyright Copyright © Christoffer Niska 2011-
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
* @package bootstrap.widgets.input
*/
Yii::import('bootstrap.widgets.input.TbInput');
/**
* Bootstrap horizontal form input widget.
* @since 0.9.8
*/
class TbInputHorizontal extends TbInput
{
/**
* Runs the widget.
*/
public function run()
{
echo CHtml::openTag('div', array('class' => 'control-group ' . $this->getContainerCssClass()));
parent::run();
echo '';
}
/**
* Returns the label for this block.
* @return string the label
*/
protected function getLabel()
{
if (isset($this->labelOptions['class']))
$this->labelOptions['class'] .= ' control-label';
else
$this->labelOptions['class'] = 'control-label';
return parent::getLabel();
}
/**
* Renders a checkbox.
* @return string the rendered content
*/
protected function checkBox()
{
$attribute = $this->attribute;
echo '
';
echo '';
echo $this->form->checkBox($this->model, $attribute, $this->htmlOptions) . PHP_EOL;
echo $this->model->getAttributeLabel($attribute);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a toogle button
* @return string the rendered content
*/
protected function toggleButton()
{
// widget configuration is set on htmlOptions['options']
$options = array(
'model' => $this->model,
'attribute' => $this->attribute
);
if(isset($this->htmlOptions['options']))
{
$options = CMap::mergeArray($options, $this->htmlOptions['options']);
unset($this->htmlOptions['options']);
}
$options['htmlOptions'] = $this->htmlOptions;
echo $this->getLabel();
echo '';
$this->widget('bootstrap.widgets.TbToggleButton', $options);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a list of checkboxes.
* @return string the rendered content
*/
protected function checkBoxList()
{
echo $this->getLabel();
echo '';
echo $this->form->checkBoxList($this->model, $this->attribute, $this->data, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a list of inline checkboxes.
* @return string the rendered content
*/
protected function checkBoxListInline()
{
$this->htmlOptions['inline'] = true;
$this->checkBoxList();
}
/**
* Renders a drop down list (select).
* @return string the rendered content
*/
protected function dropDownList()
{
echo $this->getLabel();
echo '';
echo $this->form->dropDownList($this->model, $this->attribute, $this->data, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a file field.
* @return string the rendered content
*/
protected function fileField()
{
echo $this->getLabel();
echo '';
echo $this->form->fileField($this->model, $this->attribute, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a password field.
* @return string the rendered content
*/
protected function passwordField()
{
echo $this->getLabel();
echo '';
echo $this->getPrepend();
echo $this->form->passwordField($this->model, $this->attribute, $this->htmlOptions);
echo $this->getAppend();
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a radio button.
* @return string the rendered content
*/
protected function radioButton()
{
$attribute = $this->attribute;
echo '';
echo '';
echo $this->form->radioButton($this->model, $attribute, $this->htmlOptions) . PHP_EOL;
echo $this->model->getAttributeLabel($attribute);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a list of radio buttons.
* @return string the rendered content
*/
protected function radioButtonList()
{
echo $this->getLabel();
echo '';
echo $this->form->radioButtonList($this->model, $this->attribute, $this->data, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a list of inline radio buttons.
* @return string the rendered content
*/
protected function radioButtonListInline()
{
$this->htmlOptions['inline'] = true;
$this->radioButtonList();
}
/**
* Renders a textarea.
* @return string the rendered content
*/
protected function textArea()
{
echo $this->getLabel();
echo '';
echo $this->form->textArea($this->model, $this->attribute, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a text field.
* @return string the rendered content
*/
protected function textField()
{
echo $this->getLabel();
echo '';
echo $this->getPrepend();
echo $this->form->textField($this->model, $this->attribute, $this->htmlOptions);
echo $this->getAppend();
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a CAPTCHA.
* @return string the rendered content
*/
protected function captcha()
{
echo $this->getLabel();
echo '';
echo '
' . $this->widget('CCaptcha', $this->captchaOptions, true) . '
';
echo $this->form->textField($this->model, $this->attribute, $this->htmlOptions);
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders an uneditable field.
* @return string the rendered content
*/
protected function uneditableField()
{
echo $this->getLabel();
echo '';
echo CHtml::tag('span', $this->htmlOptions, $this->model->{$this->attribute});
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a datepicker field.
* @return string the rendered content
* @author antonio ramirez
*/
protected function datepickerField()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($this->htmlOptions['events']))
{
$events = $this->htmlOptions['events'];
unset($this->htmlOptions['events']);
}
echo $this->getLabel();
echo '';
echo $this->getPrepend();
$this->widget('ext.jui.EJuiDateTimePicker',array(
'model' => $this->model,
'attribute' => $this->attribute,
'mode' => 'date',
'options' => isset($options) ? $options : array(),
//'htmlOptions' => $this->htmlOptions,
));
// $this->widget('bootstrap.widgets.TbDatePicker', array(
// 'model' => $this->model,
// 'attribute' => $this->attribute,
// 'options' => isset($options) ? $options : array(),
// 'events' => isset($events) ? $events : array(),
// 'htmlOptions' => $this->htmlOptions,
// ));
echo $this->getAppend();
echo $this->getError() . $this->getHint();
echo '
';
}
protected function datetimepickerField()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($this->htmlOptions['events']))
{
$events = $this->htmlOptions['events'];
unset($this->htmlOptions['events']);
}
echo $this->getLabel();
echo '';
echo $this->getPrepend();
$this->widget('ext.jui.EJuiDateTimePicker',array(
'model' => $this->model,
'attribute' => $this->attribute,
'mode' => 'datetime',
'options' => isset($options) ? $options : array(),
//'htmlOptions' => $this->htmlOptions,
));
echo $this->getAppend();
echo $this->getError() . $this->getHint();
echo '
';
}
protected function timepickerField()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($this->htmlOptions['events']))
{
$events = $this->htmlOptions['events'];
unset($this->htmlOptions['events']);
}
echo $this->getLabel();
echo '';
echo $this->getPrepend();
$this->widget('ext.jui.EJuiDateTimePicker',array(
'model' => $this->model,
'attribute' => $this->attribute,
'mode' => 'time',
'options' => isset($options) ? $options : array(),
//'htmlOptions' => $this->htmlOptions,
));
echo $this->getAppend();
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a redactor.
* @return string the rendered content
*/
protected function redactorJs()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($this->htmlOptions['width']))
{
$width = $this->htmlOptions['width'];
unset($this->htmlOptions['width']);
}
if (isset($this->htmlOptions['height']))
{
$height = $this->htmlOptions['height'];
unset($this->htmlOptions['height']);
}
echo $this->getLabel();
echo '';
$this->widget('bootstrap.widgets.TbRedactorJs', array(
'model' => $this->model,
'attribute' => $this->attribute,
'editorOptions' => isset($options) ? $options : array(),
'width' => isset($width) ? $width : '100%',
'height' => isset($height) ? $height : '400px',
'htmlOptions' => $this->htmlOptions
));
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders Bootstrap wysihtml5 editor.
* @return mixed|void
*/
protected function html5Editor()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($this->htmlOptions['width']))
{
$width = $this->htmlOptions['width'];
unset($this->htmlOptions['width']);
}
if (isset($this->htmlOptions['height']))
{
$height = $this->htmlOptions['height'];
unset($this->htmlOptions['height']);
}
echo $this->getLabel();
echo '';
$this->widget('bootstrap.widgets.TbHtml5Editor', array(
'model' => $this->model,
'attribute' => $this->attribute,
'editorOptions' => isset($options) ? $options : array(),
'width' => isset($width) ? $width : '100%',
'height' => isset($height) ? $height : '400px',
'htmlOptions' => $this->htmlOptions
));
echo $this->getError() . $this->getHint();
echo '
';
}
/**
* Renders a daterange field.
* @return string the rendered content
* @author antonio ramirez
*/
protected function dateRangeField()
{
if (isset($this->htmlOptions['options']))
{
$options = $this->htmlOptions['options'];
unset($this->htmlOptions['options']);
}
if (isset($options['callback']))
{
$callback = $options['callback'];
unset($options['callback']);
}
echo $this->getLabel();
echo '';
echo $this->getPrepend();
$this->widget('bootstrap.widgets.TbDateRangePicker', array(
'model' => $this->model,
'attribute' => $this->attribute,
'options' => isset($options) ? $options : array(),
'callback' => isset($callback) ? $callback : array(),
'htmlOptions' => $this->htmlOptions,
));
echo $this->getError() . $this->getHint();
echo '
';
}
}