75 lines
1.8 KiB
PHP
75 lines
1.8 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* CJuiInputWidget class file.
|
||
|
|
*
|
||
|
|
* @author Sebastian Thierer <sebathi@gmail.com>
|
||
|
|
* @link http://www.yiiframework.com/
|
||
|
|
* @copyright Copyright © 2008-2011 Yii Software LLC
|
||
|
|
* @license http://www.yiiframework.com/license/
|
||
|
|
*/
|
||
|
|
|
||
|
|
Yii::import('zii.widgets.jui.CJuiWidget');
|
||
|
|
|
||
|
|
/**
|
||
|
|
* CJuiInputWidget is the base class for JUI widgets that can collect user input.
|
||
|
|
*
|
||
|
|
* @author Sebastian Thierer <sebathi@gmail.com>
|
||
|
|
* @version $Id$
|
||
|
|
* @package zii.widgets.jui
|
||
|
|
* @since 1.1
|
||
|
|
*/
|
||
|
|
abstract class CJuiInputWidget extends CJuiWidget
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @var CModel the data model associated with this widget.
|
||
|
|
*/
|
||
|
|
public $model;
|
||
|
|
/**
|
||
|
|
* @var string the attribute associated with this widget.
|
||
|
|
* The name can contain square brackets (e.g. 'name[1]') which is used to collect tabular data input.
|
||
|
|
*/
|
||
|
|
public $attribute;
|
||
|
|
/**
|
||
|
|
* @var string the input name. This must be set if {@link model} is not set.
|
||
|
|
*/
|
||
|
|
public $name;
|
||
|
|
/**
|
||
|
|
* @var string the input value
|
||
|
|
*/
|
||
|
|
public $value;
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return array the name and the ID of the input.
|
||
|
|
*/
|
||
|
|
protected function resolveNameID()
|
||
|
|
{
|
||
|
|
if($this->name!==null)
|
||
|
|
$name=$this->name;
|
||
|
|
else if(isset($this->htmlOptions['name']))
|
||
|
|
$name=$this->htmlOptions['name'];
|
||
|
|
else if($this->hasModel())
|
||
|
|
$name=CHtml::activeName($this->model,$this->attribute);
|
||
|
|
else
|
||
|
|
throw new CException(Yii::t('zii','{class} must specify "model" and "attribute" or "name" property values.',array('{class}'=>get_class($this))));
|
||
|
|
|
||
|
|
if(($id=$this->getId(false))===null)
|
||
|
|
{
|
||
|
|
if(isset($this->htmlOptions['id']))
|
||
|
|
$id=$this->htmlOptions['id'];
|
||
|
|
else
|
||
|
|
$id=CHtml::getIdByName($name);
|
||
|
|
}
|
||
|
|
|
||
|
|
return array($name,$id);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return boolean whether this widget is associated with a data model.
|
||
|
|
*/
|
||
|
|
protected function hasModel()
|
||
|
|
{
|
||
|
|
return $this->model instanceof CModel && $this->attribute!==null;
|
||
|
|
}
|
||
|
|
}
|