mirror of
https://github.com/YunoHost-Apps/limesurvey_ynh.git
synced 2024-09-03 19:36:32 +02:00
89 lines
2.2 KiB
PHP
89 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* TbFormButtonElement class file.
|
|
*
|
|
* The buttonElementClass for TbForm
|
|
*
|
|
* Support for Yii formbuilder
|
|
*
|
|
* @author Joe Blocher <yii@myticket.at>
|
|
* @copyright Copyright © Joe Blocher 2012
|
|
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
|
|
* @package bootstrap.widgets
|
|
*/
|
|
|
|
class TbFormButtonElement extends CFormElement
|
|
{
|
|
/**
|
|
* @var string the button layout: set as TbButton->type in function render()
|
|
* Valid values are 'primary', 'info', 'success', 'warning', 'danger' and 'inverse'.
|
|
*/
|
|
public $layoutType;
|
|
|
|
/**
|
|
* @var array Core button types (alias=>CHtml method name)
|
|
*/
|
|
public static $TbButtonTypes=array(
|
|
'htmlButton'=>'button',
|
|
'htmlSubmit'=>'submit',
|
|
'htmlReset'=>'reset',
|
|
'button'=>'button',
|
|
'submit'=>'submit',
|
|
'reset'=>'reset',
|
|
//'image'=>'imageButton', not supported
|
|
'link'=>'link',
|
|
|
|
//new YiiBooster types
|
|
'ajaxLink'=>'ajaxLink',
|
|
'ajaxButton'=>'ajaxButton',
|
|
'ajaxSubmit'=>'ajaxSubmit',
|
|
);
|
|
|
|
/**
|
|
* Prepare the options before running the TbButton widget
|
|
*
|
|
* Map Yii formbuilder compatible:
|
|
* $this->type => TbButton->buttonType
|
|
* $this->layoutType => TbButton->type
|
|
*
|
|
* @param $options
|
|
* @return mixed
|
|
*/
|
|
protected function prepareWidgetOptions($options)
|
|
{
|
|
//map $this->type to attribute buttonType of TbButton
|
|
$options['buttonType'] = self::$TbButtonTypes[$this->type];
|
|
unset($options['type']);
|
|
|
|
//map layoutType to attribute type of TbButton
|
|
if(isset($this->layoutType))
|
|
$options['type'] = $this->layoutType;
|
|
|
|
//move $options['name'] to htmlOptions
|
|
$options['htmlOptions']['name'] = $this->name;
|
|
unset($options['name']);
|
|
|
|
return $options;
|
|
}
|
|
|
|
/**
|
|
* Run TbButton widget
|
|
*
|
|
* @return string the rendering result
|
|
*/
|
|
public function render()
|
|
{
|
|
if(!empty(self::$TbButtonTypes[$this->type]))
|
|
{
|
|
$attributes = $this->prepareWidgetOptions($this->attributes);
|
|
|
|
ob_start();
|
|
Yii::app()->controller->widget('TbButton',$attributes);
|
|
return ob_get_clean();
|
|
}
|
|
|
|
return parent::render();
|
|
}
|
|
|
|
|
|
}
|