Yii Framework v1.1.10 绫诲弬鑰

CJuiDatePicker

zii.widgets.jui
缁ф壙 class CJuiDatePicker » CJuiInputWidget » CJuiWidget » CWidget » CBaseController » CComponent
婧愯嚜 1.1
鐗堟湰 $Id: CJuiDatePicker.php 3539 2012-01-15 18:55:01Z mdomba $
婧愮爜 framework/zii/widgets/jui/CJuiDatePicker.php
CJuiDatePicker鏄剧ず涓涓棩鏈熼夋嫨鍣ㄣ

CJuiDatePicker灏佽浜JUI datepicker鎻掍欢銆

浣跨敤杩欎釜閮ㄤ欢锛屼綘鍙互鍦ㄨ鍥鹃噷闈㈡彃鍏ヤ互涓嬩唬鐮侊細
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
    'name'=>'publishDate',
    // additional javascript options for the date picker plugin
    'options'=>array(
        'showAnim'=>'fold',
    ),
    'htmlOptions'=>array(
        'style'=>'height:20px;'
    ),
));


閫氳繃閰嶇疆options灞炴э紝 浣犲彲浠ユ寚瀹氶渶瑕佷紶閫掔粰JUI datepicker鎻掍欢鐨勯夐」銆 濡傛灉闇瑕侀夋嫨锛坣ame-value pairs锛夛紝 璇峰弬闃JUI datepicker璇存槑銆

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
actionPrefix string actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 CWidget
attribute string 鍜岃繖涓皬鐗╀欢鐩稿叧鐨勫睘鎬с 杩欎釜鍚嶇О鍙兘鍖呭惈涓嫭鍙凤紙渚嬪鈥榥ame[1]鈥欙級锛岀敤浜庢悳闆嗚〃鏍煎紡鐨勬暟鎹緭鍏ャ CJuiInputWidget
controller CController 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
cssFile mixed 涓婚鐨凜SS鏂囦欢鍚嶃傞粯璁ゆ槸鈥榡query-ui. CJuiWidget
defaultOptions array 榛樿閫夋嫨灏辨槸涓涓椂闂存鐨勬瘡涓姹傘傛閫夐」灏嗘敼鍙橀〉闈腑鐨勬瘡涓叾浠朇JuiDatePicker瀹炰緥銆 瀹冨繀椤诲湪绗竴娆¤皟鐢ㄨ姹侰JuiDatePicker閮ㄤ欢璁剧疆銆 CJuiDatePicker
flat boolean 濡傛灉涓簍rue锛屾樉绀轰负鍐呭祵鏃ュ巻鐨勯儴浠跺拰涓涓緭鍏ラ殣钘忓瓧娈点備娇鐢╫nSelect浜嬩欢锛屼互鏇存柊鐨勯殣钘忓瓧娈 CJuiDatePicker
htmlOptions array JUI缁勪欢涓璈TML鏍囩鐨勫睘鎬ц缃 CJuiWidget
i18nScriptFile string i18n Jquery UI鐨勮剼鏈枃浠躲傚畠浣跨敤scriptUrl灞炴т负base url銆 CJuiDatePicker
id string 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
language string 瑕佷娇鐢ㄧ殑鏃ユ湡閫夋嫨鍣ㄧ殑璇█鍖哄煙璁剧疆ID锛堝鈥樻硶璇欙紝鈥樺痉璇欙級銆 濡傛灉鏈缃灞炴э紝I18N灏嗕笉鍙備笌銆傚氨鏄锛屾棩鏈熼夋嫨鍣ㄥ皢鏄剧ず涓鸿嫳鏂囥 浣犲彲浠ュ己鍒惰缃嫳鏂囪瑷灞炴ц缃负鈥樷欙紙绌哄瓧绗︼級 CJuiDatePicker
model CModel 涓庤繖涓皬鐗╀欢鐩稿叧鐨勬暟鎹ā鍨 CJuiInputWidget
name string 杈撳叆妗嗗悕绉般傚鏋model娌℃湁璁剧疆锛岃繖涓繀椤昏缃 CJuiInputWidget
options array the 鍒濆鐨凧avaScript闇瑕佷紶閫掔粰JUI鎻掍欢鐨勯夐」銆 CJuiWidget
owner CBaseController 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
scriptFile mixed 涓昏JUI鐨凧avaScript鐨勬枃浠跺悕銆傞粯璁ゆ槸鈥榡query-ui. CJuiWidget
scriptUrl string 鍖呭惈鎵鏈塉UI JavaScript鏂囦欢鐨勬牴鐩綍銆 濡傛灉娌℃湁璁剧疆杩欎釜灞炴э紙榛樿锛夛紝Yii will publish the JUI package included in the zii release and use that to infer the root script URL. CJuiWidget
skin mixed 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 CWidget
theme string JUI涓婚鐨勫悕瀛椼傞粯璁ゆ槸鈥榖ase鈥欍傜‘淇濆湪themeUrl涓嬫湁杩欐牱涓涓洰褰曪紝 鍏跺悕绉版槸杩欎釜灞炴х殑鍊肩浉鍚岋紙鍖哄垎澶у皬鍐欙級銆 CJuiWidget
themeUrl string 鍖呭惈鎵鏈塉UI鐨勪富棰樻枃浠跺す鐨勬牴鐩綍銆 濡傛灉娌℃湁璁剧疆杩欎釜灞炴э紙榛樿锛夛紝 Yii will publish the JUI package included in the zii release and use that to infer the root theme URL. CJuiWidget
value string 杈撳叆妗嗙殑鍊 CJuiInputWidget
viewPath string 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲櫒銆 CWidget
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
actions() 杩斿洖姝idget浣跨敤鐨勫姩浣滅殑鍒楄〃銆 CWidget
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
beginCache() Begins fragment caching. CBaseController
beginClip() Begins recording a clip. CBaseController
beginContent() Begins the rendering of content that is to be decorated by the specified view. CBaseController
beginWidget() Creates a widget and executes it. CBaseController
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
createWidget() Creates a widget and initializes it. CBaseController
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
endCache() Ends fragment caching. CBaseController
endClip() Ends recording a clip. CBaseController
endContent() Ends the rendering of content. CBaseController
endWidget() Ends the execution of the named widget. CBaseController
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getController() 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getId() 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
getOwner() 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
getViewFile() 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 CWidget
getViewPath() 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栬繖涓粍浠躲 CJuiWidget
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
render() 娓叉煋涓涓鍥俱 CWidget
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
run() 杩愯杩欎釜閮ㄤ欢銆 CJuiDatePicker
setId() 璁剧疆姝ゅ井浠剁殑ID銆 CWidget
widget() Creates a widget and executes it. CBaseController

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
hasModel() 纭畾鏄惁杩欎釜灏忕墿浠朵笌涓涓暟鎹ā鍨嬬浉鍏炽 CJuiInputWidget
registerCoreScripts() 娉ㄥ唽鏍稿績鐨勮剼鏈枃浠躲 CJuiWidget
registerScriptFile() 娉ㄥ唽涓涓狫avaScript鏂囦欢鍦scriptUrl涓嬨 CJuiWidget
resolveNameID() CJuiInputWidget
resolvePackagePath() 纭畾JUI鍖呭畨瑁呰矾寰勩 CJuiWidget

灞炴ц缁

defaultOptions 灞炴
public array $defaultOptions;

榛樿閫夋嫨灏辨槸涓涓椂闂存鐨勬瘡涓姹傘傛閫夐」灏嗘敼鍙橀〉闈腑鐨勬瘡涓叾浠朇JuiDatePicker瀹炰緥銆 瀹冨繀椤诲湪绗竴娆¤皟鐢ㄨ姹侰JuiDatePicker閮ㄤ欢璁剧疆銆

flat 灞炴
public boolean $flat;

濡傛灉涓簍rue锛屾樉绀轰负鍐呭祵鏃ュ巻鐨勯儴浠跺拰涓涓緭鍏ラ殣钘忓瓧娈点備娇鐢╫nSelect浜嬩欢锛屼互鏇存柊鐨勯殣钘忓瓧娈

i18nScriptFile 灞炴
public string $i18nScriptFile;

i18n Jquery UI鐨勮剼鏈枃浠躲傚畠浣跨敤scriptUrl灞炴т负base url銆

language 灞炴
public string $language;

瑕佷娇鐢ㄧ殑鏃ユ湡閫夋嫨鍣ㄧ殑璇█鍖哄煙璁剧疆ID锛堝鈥樻硶璇欙紝鈥樺痉璇欙級銆 濡傛灉鏈缃灞炴э紝I18N灏嗕笉鍙備笌銆傚氨鏄锛屾棩鏈熼夋嫨鍣ㄥ皢鏄剧ず涓鸿嫳鏂囥 浣犲彲浠ュ己鍒惰缃嫳鏂囪瑷灞炴ц缃负鈥樷欙紙绌哄瓧绗︼級

鏂规硶璇︾粏

run() 鏂规硶
public void run()
婧愮爜锛 framework/zii/widgets/jui/CJuiDatePicker.php#72 (鏄剧ず)
public function run()
{

    list(
$name,$id)=$this->resolveNameID();

    if(isset(
$this->htmlOptions['id']))
        
$id=$this->htmlOptions['id'];
    else
        
$this->htmlOptions['id']=$id;
    if(isset(
$this->htmlOptions['name']))
        
$name=$this->htmlOptions['name'];

    if (
$this->flat===false)
    {
        if(
$this->hasModel())
            echo 
CHtml::activeTextField($this->model,$this->attribute,$this->htmlOptions);
        else
            echo 
CHtml::textField($name,$this->value,$this->htmlOptions);
    }
    else
    {
        if(
$this->hasModel())
        {
            echo 
CHtml::activeHiddenField($this->model,$this->attribute,$this->htmlOptions);
            
$attribute $this->attribute;
            
$this->options['defaultDate'] = $this->model->$attribute;
        }
        else
        {
            echo 
CHtml::hiddenField($name,$this->value,$this->htmlOptions);
            
$this->options['defaultDate'] = $this->value;
        }

        if (!isset(
$this->options['onSelect']))
            
$this->options['onSelect']="js:function( selectedDate ) { jQuery('#{$id}').val(selectedDate);}";

        
$id $this->htmlOptions['id'] = $id.'_container';
        
$this->htmlOptions['name'] = $name.'_container';

        echo 
CHtml::tag('div'$this->htmlOptions'');
    }

    
$options=CJavaScript::encode($this->options);
    
$js "jQuery('#{$id}').datepicker($options);";

    if (
$this->language!='' && $this->language!='en')
    {
        
$this->registerScriptFile($this->i18nScriptFile);
        
$js "jQuery('#{$id}').datepicker(jQuery.extend({showMonthAfterYear:false}, jQuery.datepicker.regional['{$this->language}'], {$options}));";
    }

    
$cs Yii::app()->getClientScript();

    if (isset(
$this->defaultOptions))
    {
        
$this->registerScriptFile($this->i18nScriptFile);
        
$cs->registerScript(__CLASS__,     $this->defaultOptions!==null?'jQuery.datepicker.setDefaults('.CJavaScript::encode($this->defaultOptions).');':'');
    }
    
$cs->registerScript(__CLASS__.'#'.$id$js);

}

杩愯杩欎釜閮ㄤ欢銆 杩欎釜鏂规硶娉ㄥ唽蹇呰鐨刯avascript骞舵覆鏌撶浉搴旂殑HTML浠g爜銆

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.