CHtml
鍖 | system.web.helpers |
---|---|
缁ф壙 | class CHtml |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CHtml.php 3515 2011-12-28 12:29:24Z mdomba $ |
婧愮爜 | framework/web/helpers/CHtml.php |
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
afterRequiredLabel | string | 鍔犲湪蹇呭~椤规爣绛惧悗闈㈢殑HTML浠g爜銆 | CHtml |
beforeRequiredLabel | string | 鍔犲湪蹇呭~椤规爣绛惧墠闈㈢殑HTML浠g爜銆 | CHtml |
count | integer | 浜х敓鑷姩杈撳叆鏍忎綅鍚嶇О鐨勮鏁板櫒銆 | CHtml |
errorCss | string | 楂樹寒閿欒杈撳嚭鐨凜SS绫汇 濡傛灉鏈夐敊璇緭鍏ョ殑璇濓紝琛ㄥ崟杈撳叆鎺т欢灏嗛檮鍔犱笂杩欎釜CSS绫汇 | CHtml |
errorMessageCss | string | 鏄剧ず閿欒娑堟伅鐨凜SS绫汇(璇峰弬闃 error). | CHtml |
errorSummaryCss | string | 鏄剧ず閿欒鎽樿鐨凜SS绫汇(璇峰弬闃 errorSummary). | CHtml |
liveEvents | 璁剧疆闄勫姞jQuery鐨勪簨浠跺鐞嗙▼搴忕殑榛樿鏍峰紡銆 | CHtml | |
requiredCss | string | 蹇呭~椤规爣绛剧殑CSS绫汇傞粯璁や负'required'銆 | CHtml |
鍏叡鏂规硶
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
activeCheckBox() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓閫夋銆 | CHtml |
activeCheckBoxList() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓閫夋鍒楄〃銆 | CHtml |
activeDropDownList() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓笅鎷夊垪琛ㄣ | CHtml |
activeFileField() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓枃浠惰緭鍏ユ銆 | CHtml |
activeHiddenField() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓殣钘忓煙銆 | CHtml |
activeId() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓緭鍏ユ爮鐨処D銆 | CHtml |
activeLabel() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓猯abel鏍囩銆 | CHtml |
activeLabelEx() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓猯abel鏍囩銆 | CHtml |
activeListBox() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓垪琛ㄦ銆 | CHtml |
activeName() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愯緭鍏ユ爮鍚嶇О銆 | CHtml |
activePasswordField() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓瘑鐮佽緭鍏ユ銆 | CHtml |
activeRadioButton() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓崟閫夋寜閽 | CHtml |
activeRadioButtonList() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓崟閫夋寜閽垪琛ㄣ | CHtml |
activeTextArea() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓枃鏈銆 | CHtml |
activeTextField() | 涓烘ā鍨嬪睘鎬х敓鎴愪竴涓枃鏈銆 | CHtml |
ajax() | 鐢熸垚鍚姩AJAX璇锋眰鐨凧avaScript銆 | CHtml |
ajaxButton() | 鐢熸垚涓涓彲浠ュ彂璧稟JAX璇锋眰鐨勬寜閽 | CHtml |
ajaxLink() | 鐢熸垚涓涓彲浠ュ彂璧稟JAX璇锋眰鐨勯摼鎺ャ | CHtml |
ajaxSubmitButton() | 鐢熸垚涓涓彲浠ョ敤POST鏂规硶鎻愪氦褰撳墠琛ㄥ崟鐨勬寜閽 | CHtml |
asset() | 鐢熸垚鍏叡璧勬簮鐨刄RL銆 | CHtml |
beginForm() | 鐢熸垚涓涓〃鍗曠殑寮濮嬫爣绛俱 | CHtml |
button() | 鐢熸垚涓涓寜閽 | CHtml |
cdata() | 灏嗕竴涓粰瀹氱殑瀛楃涓插瘑灏佽繘涓涓狢DATA鏍囩涓 | CHtml |
checkBox() | 鐢熸垚涓涓閫夋銆 | CHtml |
checkBoxList() | 鐢熸垚涓涓閫夋鍒楄〃銆 | CHtml |
closeTag() | 鐢熸垚涓涓狧TML鍏冪礌鐨勭粨鏉熸爣璁 | CHtml |
css() | 灏嗙粰瀹氱殑CSS鍐呭瀵嗗皝鍒颁竴涓狢SS鏍囩涓 | CHtml |
cssFile() | 鐗瑰畾鐨凜SS鏂囦欢鐨勯摼鎺ャ | CHtml |
decode() | 鎶婄壒娈婄殑HTML瀹炰綋瑙g爜涓虹浉瀵瑰簲鐨勫瓧绗︺ | CHtml |
dropDownList() | 鐢熸垚涓涓笅鎷夊垪琛ㄣ | CHtml |
encode() | 鎶婄壒娈婄殑瀛楃缂栫爜涓篐TML瀹炰綋銆 | CHtml |
encodeArray() | 鎶婁竴涓瓧绗︿覆鏁扮粍涓殑鐗规畩瀛楃缂栫爜涓篐TML瀹炰綋銆 | CHtml |
endForm() | 鐢熸垚涓涓〃鍗曠殑缁撴潫鏍囩銆 | CHtml |
error() | 鏄剧ず涓涓ā鍨嬪睘鎬х殑绗竴涓湁鏁堢殑閿欒銆 | CHtml |
errorSummary() | 鏄剧ず涓涓垨澶氫釜妯″瀷鐨勬湁鏁堥敊璇殑鎽樿銆 | CHtml |
fileField() | 鐢熸垚涓涓枃浠惰緭鍏ユ銆 | CHtml |
form() | 鐢熸垚涓涓〃鍗曠殑寮濮嬫爣绛俱 | CHtml |
getIdByName() | 鏍规嵁鍚嶇О鏉ョ敓鎴愪竴涓湁鏁堢殑HTML ID銆 | CHtml |
htmlButton() | 鐢熸垚涓涓娇鐢℉TML鎸夐挳鏍囩鐨勬寜閽 | CHtml |
image() | 鐢熸垚涓涓浘鐗囨爣绛俱 | CHtml |
imageButton() | 鐢熸垚涓涓浘鐗囨彁浜ゆ寜閽 | CHtml |
label() | 鐢熸垚涓涓猯abel鏍囩 | CHtml |
link() | 鐢熸垚涓涓秴閾炬帴銆 | CHtml |
linkButton() | 鐢熸垚涓涓摼鎺ユ彁浜ゆ寜閽 | CHtml |
linkTag() | 鐢熸垚涓涓猯ink鏍囩锛屽彲浠ユ彃鍏ュ埌HTML椤甸潰鐨勫ご閮ㄩ儴鍒嗐 | CHtml |
listBox() | 鐢熸垚涓涓垪琛ㄦ銆 | CHtml |
listData() | 涓哄垪琛ㄥ瀷HTML鍏冪礌鐢熸垚閫傚綋鐨勬暟鎹 | CHtml |
listOptions() | 鐢熸垚涓涓垪琛ㄩ夐」銆 | CHtml |
mailto() | 鍒涘缓涓涓數瀛愰偖浠堕摼鎺ャ | CHtml |
metaTag() | 鐢熸垚涓涓猰eta鏍囩锛屽彲浠ユ彃鍏ュ埌HTML椤甸潰鐨勫ご閮ㄩ儴鍒嗐 | CHtml |
normalizeUrl() | 閫氳繃鏍囧噯鐨勮緭鍏ユ潵鐢熸垚涓涓湁鏁堢殑URL銆 | CHtml |
openTag() | 鐢熸垚涓涓狧TML鍏冪礌鐨勫紑濮嬫爣绛俱 | CHtml |
pageStateField() | 鐢熸垚涓涓敤浜庡瓨鍌ㄩ〉闈㈡寔涔呯姸鎬佺殑闅愯棌鍩熴 | CHtml |
passwordField() | 鐢熸垚涓涓瘑鐮佽緭鍏ユ銆 | CHtml |
radioButton() | 鐢熸垚涓涓崟閫夋寜閽 | CHtml |
radioButtonList() | 鐢熸垚涓涓崟閫夋寜閽垪琛ㄣ | CHtml |
refresh() | 娉ㄥ唽涓涓滃埛鏂扳漨eta鏍囩銆 | CHtml |
renderAttributes() | 娓叉煋HTML鏍囩灞炴с | CHtml |
resetButton() | 鐢熸垚涓涓噸缃寜閽 | CHtml |
resolveName() | 鐢熸垚涓涓ā鍨嬪睘鎬х殑杈撳叆鍚嶇О | CHtml |
resolveNameID() | 鐢熸垚涓涓ā鍨嬪睘鎬х殑杈撳叆妗嗗悕绉板拰ID銆 | CHtml |
resolveValue() | 璇勪及妯″瀷鐨勫睘鎬у笺 | CHtml |
script() | 灏嗙粰瀹氱殑Javascript瀵嗗皝鍒颁竴涓猻cript鏍囩涓 | CHtml |
scriptFile() | 鍖呭惈涓涓狫avascript鏂囦欢銆 | CHtml |
statefulForm() | 鐢熸垚涓涓湁鐘舵佺殑琛ㄥ崟鏍囩銆 | CHtml |
submitButton() | 鐢熸垚涓涓彁浜ゆ寜閽 | CHtml |
tag() | 鐢熸垚涓涓狧TML鍏冪礌銆 | CHtml |
textArea() | 鐢熸垚涓涓枃鏈銆 | CHtml |
textField() | 鐢熸垚涓涓枃鏈緭鍏ユ銆 | CHtml |
value() | 璇勪及缁欏畾鐨勬ā鍨嬩腑鎸囧畾灞炴х殑鍊笺 | CHtml |
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
activeInputField() | 涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓緭鍏ユ爣绛俱 | CHtml |
addErrorCss() | 娣诲姞errorCss鍒'class'灞炴с | CHtml |
clientChange() | 鐢熸垚JavaScript涓庢寚瀹氱殑瀹㈡埛绔彉鍖栥 | CHtml |
inputField() | 鐢熸垚涓涓猧nput鏍囩銆 | CHtml |
灞炴ц缁
鍔犲湪蹇呭~椤规爣绛惧悗闈㈢殑HTML浠g爜銆
鍙傝
鍔犲湪蹇呭~椤规爣绛惧墠闈㈢殑HTML浠g爜銆
鍙傝
浜х敓鑷姩杈撳叆鏍忎綅鍚嶇О鐨勮鏁板櫒銆
楂樹寒閿欒杈撳嚭鐨凜SS绫汇 濡傛灉鏈夐敊璇緭鍏ョ殑璇濓紝琛ㄥ崟杈撳叆鎺т欢灏嗛檮鍔犱笂杩欎釜CSS绫汇
鏄剧ず閿欒娑堟伅鐨凜SS绫汇(璇峰弬闃 error).
鏄剧ず閿欒鎽樿鐨凜SS绫汇(璇峰弬闃 errorSummary).
璁剧疆闄勫姞jQuery鐨勪簨浠跺鐞嗙▼搴忕殑榛樿鏍峰紡銆
濡傛灉璁剧疆涓簍rue锛堥粯璁わ級锛屽垯浣跨敤live/delegated鏍峰紡銆
浜嬩欢澶勭悊绋嬪簭琚檮鍔犲埌body鍚庨潰锛
鏉ュ鐞嗗湪绋嶅悗鐨勬椂闂存坊鍔犲埌body鐨勫瓙鍏冪礌涓婄殑浜嬩欢銆
濡傛灉璁剧疆涓篺alse锛屽垯浣跨敤鐩存帴鐨勬柟寮忋
浜嬩欢澶勭悊绋嬪簭鐩存帴闄勫姞鍒癉OM鍏冪礌涓婇潰锛屽厓绱犲繀椤绘槸宸茬粡鍦ㄩ〉闈笂瀛樺湪鐨勩
鍦ㄦ櫄浜涙椂闂存敞鍏ュ埌椤甸潰鐨勫厓绱犱笉琚鐞嗐
浣犲彲浠ヤ负鏌愪釜鐗瑰畾鐨勫厓绱犺缃甴tmlOption涓璴ive灞炴ф潵瑕嗙洊杩欎釜璁剧疆銆
(璇峰弬闃 clientChange).
鏇村鍏充簬闄勫姞jQuery浜嬩欢澶勭悊绋嬪簭鐨勪俊鎭紝璇峰弬闃http://api.jquery.com/on/
鍙傝
蹇呭~椤规爣绛剧殑CSS绫汇傞粯璁や负'required'銆
鍙傝
鏂规硶璇︾粏
public static string activeCheckBox(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) 涓涓悕涓'uncheckValue'鐨勯夐」鏄彲鐢ㄧ殑锛 褰撳閫夋娌℃湁琚変腑鏃跺彲浠ヨ繑鍥炶繖涓夐」鐨勫笺傝繖涓奸粯璁や负0銆 鍦ㄥ唴閮紝涓涓殣钘忓煙浼氳娓叉煋锛屼互渚垮綋澶嶉夋娌℃湁琚変腑鏃讹紝 鎴戜滑浠嶇劧鑳借幏鍙栧埌鏈変腑鐨勫笺 濡傛灉'uncheckValue'琚缃负NULL锛岄殣钘忓煙灏嗕笉浼氳娓叉煋銆 |
{return} | string | 鐢熸垚鐨勫閫夋 |
public static function activeCheckBox($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
if(!isset($htmlOptions['value']))
$htmlOptions['value']=1;
if(!isset($htmlOptions['checked']) && self::resolveValue($model,$attribute)==$htmlOptions['value'])
$htmlOptions['checked']='checked';
self::clientChange('click',$htmlOptions);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck='0';
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';
return $hidden . self::activeInputField('checkbox',$model,$attribute,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓閫夋銆 灞炴ц鍋囧畾鏄痶rue鎴杅alse銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
public static string activeCheckBoxList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚澶嶉夋鍒楄〃鐨勫-鏍囩瀵广 娉ㄦ剰锛屽间細琚嚜鍔℉TML缂栫爜锛岃屾爣绛句笉浼氥 |
$htmlOptions | array | 闄勫姞鐨凥TML閫夐」銆
閫夐」灏嗕細搴旂敤浜庢瘡涓閫夋銆備笅闈㈡寚瀹氱殑閫夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨勫閫夋鍒楄〃 |
public static function activeCheckBoxList($model,$attribute,$data,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
$selection=self::resolveValue($model,$attribute);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
$name=$htmlOptions['name'];
unset($htmlOptions['name']);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck='';
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';
return $hidden . self::checkBoxList($name,$selection,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓閫夋鍒楄〃銆 妯″瀷鐨勫睘鎬у肩敤鏉ヤ綔涓洪夐」銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆 娉ㄦ剰涓涓閫夋鍒楄〃鍏佽澶氶夈傚氨鍍listBox. 缁撴灉锛岀浉搴旂殑POST鍊兼槸涓涓暟缁勩 涓囦竴娌℃湁閫夋嫨鐨勮瘽锛岀浉搴旂殑POST鍊兼槸涓涓┖瀛楃涓层
鍙傝
public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢熸垚鍒楄〃閫夐」鐨勬暟鎹(鍊=>鏄剧ず) 浣犲彲浠ヤ娇鐢listData鏉ョ敓鎴愯繖涓暟鎹 璇峰弬闃listOptions鏉ヤ簡瑙h繖涓暟鎹浣曠敓鎴愬垪琛ㄦ暟鎹 娉ㄦ剰锛岃繖閲岀殑鍊间釜鏍囩浼氳嚜鍔ㄨ杩欎釜鏂规硶杩涜HTML缂栫爜銆 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛
涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭)
姝ゅ锛屼笅闈㈢殑杩欏睘鎬т篃琚敮鎸侊細
|
{return} | string | 鐢熸垚鐨勪笅鎷夊垪琛 |
public static function activeDropDownList($model,$attribute,$data,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
$selection=self::resolveValue($model,$attribute);
$options="\n".self::listOptions($selection,$data,$htmlOptions);
self::clientChange('change',$htmlOptions);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
if(isset($htmlOptions['multiple']))
{
if(substr($htmlOptions['name'],-2)!=='[]')
$htmlOptions['name'].='[]';
}
return self::tag('select',$htmlOptions,$options);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓笅鎷夊垪琛ㄣ 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
鍙傝
public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 棰濆鐨凥TML灞炴(璇峰弬闃tag). |
{return} | string | 鐢熸垚鐨勬枃浠惰緭鍏ユ |
public static function activeFileField($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
// 娣诲姞涓涓殣钘忓煙锛屼互渚垮綋涓涓ā鍨嬪彧鏈変竴涓枃浠惰緭鍏ユ鏃讹紝
// 鎴戜滑浠嶅彲浠ヤ娇鐢╥sset($_POST[$modelClass])鏉ュ彂鐜版槸鍚︽湁杈撳叆鎻愪氦
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
return self::hiddenField($htmlOptions['name'],'',$hiddenOptions)
. self::activeInputField('file',$model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓枃浠惰緭鍏ユ銆 娉ㄦ剰锛屼綘蹇呴』璁剧疆琛ㄥ崟鐨勨榚nctype鈥欏睘鎬т负鈥榤ultipart/form-data鈥欍 琛ㄥ崟琚彁浜ゅ悗锛屼笂浼犵殑鏂囦欢淇℃伅鍙互閫氳繃$_FILES[$name]鏉ヨ幏寰 (璇峰弬闃 PHP documentation).
鍙傝
public static string activeHiddenField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 棰濆鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勯殣钘忓煙 |
public static function activeHiddenField($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
return self::activeInputField('hidden',$model,$attribute,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓殣钘忓煙銆
鍙傝
public static string activeId(CModel $model, string $attribute)
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
{return} | string | 鐢熸垚鐨勮緭鍏ユ爮鐨処D |
public static function activeId($model,$attribute)
{
return self::getIdByName(self::activeName($model,$attribute));
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓緭鍏ユ爮鐨処D銆
protected static string activeInputField(string $type, CModel $model, string $attribute, array $htmlOptions)
| ||
$type | string | 杈撳叆绫诲瀷(渚嬪'text', 'radio') |
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 杈撳叆鏍囩鐨勯澶栫殑HTML灞炴 |
{return} | string | 鐢熸垚鐨勮緭鍏ユ爣绛 |
protected static function activeInputField($type,$model,$attribute,$htmlOptions)
{
$htmlOptions['type']=$type;
if($type==='text' || $type==='password')
{
if(!isset($htmlOptions['maxlength']))
{
foreach($model->getValidators($attribute) as $validator)
{
if($validator instanceof CStringValidator && $validator->max!==null)
{
$htmlOptions['maxlength']=$validator->max;
break;
}
}
}
else if($htmlOptions['maxlength']===false)
unset($htmlOptions['maxlength']);
}
if($type==='file')
unset($htmlOptions['value']);
else if(!isset($htmlOptions['value']))
$htmlOptions['value']=self::resolveValue($model,$attribute);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
return self::tag('input',$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓緭鍏ユ爣绛俱 杩欎釜鏂规硶浼氫緷鎹粰瀹氱殑鏁版嵁妯″瀷鍜屽睘鎬ф潵鐢熸垚涓涓緭鍏ユ爣绛俱 濡傛灉灞炴ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫诲皢琚檮鍔犱笂errorCss銆 杩欎釜鍙互楂樹寒閿欒鐨勮緭鍏ャ
public static string activeLabel(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 棰濆鐨凥TML灞炴с備笅闈㈡寚瀹氶夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨刲abel鏍囩 |
public static function activeLabel($model,$attribute,$htmlOptions=array())
{
if(isset($htmlOptions['for']))
{
$for=$htmlOptions['for'];
unset($htmlOptions['for']);
}
else
$for=self::getIdByName(self::resolveName($model,$attribute));
if(isset($htmlOptions['label']))
{
if(($label=$htmlOptions['label'])===false)
return '';
unset($htmlOptions['label']);
}
else
$label=$model->getAttributeLabel($attribute);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
return self::label($label,$for,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓猯abel鏍囩銆 鏍囩鐨勬枃鏈槸妯″瀷灞炴х殑鏍囩锛 鏍囩鍜宨nput鐨勫睘鎬ф湁鍏(璇峰弬闃CModel::getAttributeLabel銆 濡傛灉灞炴ф湁杈撳叆閿欒锛屾爣绛剧殑CSS绫讳細闄勫姞涓errorCss.
public static string activeLabelEx(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 棰濆鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨刲abel鏍囩 |
public static function activeLabelEx($model,$attribute,$htmlOptions=array())
{
$realAttribute=$attribute;
self::resolveName($model,$attribute); // strip off square brackets if any
$htmlOptions['required']=$model->isAttributeRequired($attribute);
return self::activeLabel($model,$realAttribute,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓猯abel鏍囩銆 杩欐槸涓涓姞寮虹増鐨activeLabel銆 褰撳睘鎬ф槸蹇呭~鐨勬椂鍊欙紝瀹冨皢娓叉煋棰濆鐨凜SS绫讳釜鏍囪銆 鐗瑰埆鐨勶紝瀹冭皟鐢CModel::isAttributeRequired鏉ュ喅瀹 灞炴ф槸鍚︿负蹇呭~鐨勩 濡傛灉鏄紝瀹冨皢娣诲姞涓涓狢SS绫CHtml::requiredCss鍒版爣绛句笂锛 鐢CHtml::beforeRequiredLabel鍜CHtml::afterRequiredLabel 鏉ヨ楗版爣绛俱
public static string activeListBox(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢熸垚鍒楄〃閫夐」鐨勬暟鎹(鍊=>鏄剧ず) 浣犲彲浠ヤ娇鐢listData鏉ョ敓鎴愯繖涓暟鎹 璇峰弬闃listOptions鏉ヤ簡瑙h繖涓暟鎹浣曠敓鎴愬垪琛ㄦ暟鎹 娉ㄦ剰锛岃繖閲岀殑鍊间釜鏍囩浼氳嚜鍔ㄨ杩欎釜鏂规硶杩涜HTML缂栫爜銆 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛
涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭)
姝ゅ锛屼笅闈㈢殑杩欏睘鎬т篃琚敮鎸侊細
|
{return} | string | 鐢熸垚鐨勫垪琛ㄦ |
public static function activeListBox($model,$attribute,$data,$htmlOptions=array())
{
if(!isset($htmlOptions['size']))
$htmlOptions['size']=4;
return self::activeDropDownList($model,$attribute,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓垪琛ㄦ銆 妯″瀷鐨勫睘鎬у肩敤鏉ヤ綔涓洪夐」銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
鍙傝
public static string activeName(CModel $model, string $attribute)
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
{return} | string | 鐢熸垚鐨勮緭鍏ユ爮鍚嶇О |
public static function activeName($model,$attribute)
{
$a=$attribute; // because the attribute name may be changed by resolveName
return self::resolveName($model,$a);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愯緭鍏ユ爮鍚嶇О銆 涓嶅悓浜resolveName锛岃繖涓柟娉曚笉鐢ㄤ慨鏀瑰睘鎬у悕銆
public static string activePasswordField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勫瘑鐮佽緭鍏ユ |
public static function activePasswordField($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
self::clientChange('change',$htmlOptions);
return self::activeInputField('password',$model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓瘑鐮佽緭鍏ユ銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫诲皢浼氳闄勫姞涓errorCss銆
public static string activeRadioButton(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) 涓涓悕涓'uncheckValue'鐨勯夐」鏄彲鐢ㄧ殑锛 褰撳崟閫夋寜閽病鏈夎閫変腑鏃跺彲浠ヨ繑鍥炶繖涓夐」鐨勫笺傝繖涓奸粯璁や负0銆 鍦ㄥ唴閮紝涓涓殣钘忓煙浼氳娓叉煋锛屼互渚垮綋鍗曢夋寜閽病鏈夎閫変腑鏃讹紝 鎴戜滑浠嶇劧鑳借幏鍙栧埌鏈変腑鐨勫笺 濡傛灉'uncheckValue'琚缃负NULL锛岄殣钘忓煙灏嗕笉浼氳娓叉煋銆 |
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽 |
public static function activeRadioButton($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
if(!isset($htmlOptions['value']))
$htmlOptions['value']=1;
if(!isset($htmlOptions['checked']) && self::resolveValue($model,$attribute)==$htmlOptions['value'])
$htmlOptions['checked']='checked';
self::clientChange('click',$htmlOptions);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck='0';
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';
// add a hidden field so that if the radio button is not selected, it still submits a value
return $hidden . self::activeInputField('radio',$model,$attribute,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓崟閫夋寜閽 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
public static string activeRadioButtonList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚鍗曢夋寜閽垪琛ㄧ殑鍊-鏍囩瀵广 娉ㄦ剰锛屽间細琚嚜鍔℉TML缂栫爜锛岃屾爣绛句笉浼氥 |
$htmlOptions | array | 闄勫姞鐨凥TML閫夐」銆
閫夐」灏嗕細搴旂敤浜庢瘡涓崟閫夋寜閽備笅闈㈡寚瀹氱殑閫夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽垪琛 |
public static function activeRadioButtonList($model,$attribute,$data,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
$selection=self::resolveValue($model,$attribute);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
$name=$htmlOptions['name'];
unset($htmlOptions['name']);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck='';
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';
return $hidden . self::radioButtonList($name,$selection,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓崟閫夋寜閽垪琛ㄣ 妯″瀷鐨勫睘鎬у肩敤鏉ヤ綔涓洪夐」銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
鍙傝
public static string activeTextArea(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬枃鏈 |
public static function activeTextArea($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
self::clientChange('change',$htmlOptions);
if($model->hasErrors($attribute))
self::addErrorCss($htmlOptions);
$text=self::resolveValue($model,$attribute);
return self::tag('textarea',$htmlOptions,isset($htmlOptions['encode']) && !$htmlOptions['encode'] ? $text : self::encode($text));
}
涓轰竴涓ā鍨嬪睘鎬х敓鎴愪竴涓枃鏈銆 濡傛灉璇ュ睘鎬ф湁杈撳叆閿欒锛 杈撳叆鏍忕殑CSS绫讳細琚檮鍔犱笂errorCss銆
鍙傝
public static string activeTextField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬枃鏈 |
public static function activeTextField($model,$attribute,$htmlOptions=array())
{
self::resolveNameID($model,$attribute,$htmlOptions);
self::clientChange('change',$htmlOptions);
return self::activeInputField('text',$model,$attribute,$htmlOptions);
}
涓烘ā鍨嬪睘鎬х敓鎴愪竴涓枃鏈銆 濡傛灉灞炴ф湁杈撳叆閿欒锛 杈撳叆妗嗙殑CSS绫诲皢浼氶檮鍔犱笂errorCss.
protected static void addErrorCss(array &$htmlOptions)
| ||
$htmlOptions | array | 瑕佽淇敼鐨凥TML閫夐」 |
protected static function addErrorCss(&$htmlOptions)
{
if(isset($htmlOptions['class']))
$htmlOptions['class'].=' '.self::$errorCss;
else
$htmlOptions['class']=self::$errorCss;
}
娣诲姞errorCss鍒'class'灞炴с
public static string ajax(array $options)
| ||
$options | array | AJAX閫夐」銆俲Query鐨凙JAX鏂囨。涓寚瀹氫簡鏈夋晥鐨勯夐」銆
涓轰簡鏂逛究璧疯锛屼笅闈㈡寚瀹氱殑閫夐」琚坊鍔狅細
|
{return} | string | 鐢熸垚鐨凧avaScript |
public static function ajax($options)
{
Yii::app()->getClientScript()->registerCoreScript('jquery');
if(!isset($options['url']))
$options['url']='js:location.href';
else
$options['url']=self::normalizeUrl($options['url']);
if(!isset($options['cache']))
$options['cache']=false;
if(!isset($options['data']) && isset($options['type']))
$options['data']='js:jQuery(this).parents("form").serialize()';
foreach(array('beforeSend','complete','error','success') as $name)
{
if(isset($options[$name]) && strpos($options[$name],'js:')!==0)
$options[$name]='js:'.$options[$name];
}
if(isset($options['update']))
{
if(!isset($options['success']))
$options['success']='js:function(html){jQuery("'.$options['update'].'").html(html)}';
unset($options['update']);
}
if(isset($options['replace']))
{
if(!isset($options['success']))
$options['success']='js:function(html){jQuery("'.$options['replace'].'").replaceWith(html)}';
unset($options['replace']);
}
return 'jQuery.ajax('.CJavaScript::encode($options).');';
}
鐢熸垚鍚姩AJAX璇锋眰鐨凧avaScript銆
public static string ajaxButton(string $label, mixed $url, array $ajaxOptions=array (
), array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$url | mixed | AJAX璇锋眰鐨刄RL銆傚鏋滄槸绌猴紝閭e氨鍋囧畾涓哄綋鍓嶇殑URL銆傛洿澶氳缁嗘儏鍐佃鍙傝normalizeUrl銆 |
$ajaxOptions | array | AJAX options (see ajax) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽 |
public static function ajaxButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
{
$ajaxOptions['url']=$url;
$htmlOptions['ajax']=$ajaxOptions;
return self::button($label,$htmlOptions);
}
鐢熸垚涓涓彲浠ュ彂璧稟JAX璇锋眰鐨勬寜閽
public static string ajaxLink(string $text, mixed $url, array $ajaxOptions=array (
), array $htmlOptions=array (
))
| ||
$text | string | 閾炬帴涓讳綋锛堜笉浼氳HTML缂栫爜锛 |
$url | mixed | AJAX璇锋眰鐨刄RL銆傚鏋滄槸绌猴紝閭e氨鍋囧畾涓哄綋鍓嶇殑URL銆傛洿澶氳缁嗕俊鎭鍙傝normalizeUrl銆 |
$ajaxOptions | array | AJAX閫夐」 (璇峰弬闃ajax) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勯摼鎺 |
public static function ajaxLink($text,$url,$ajaxOptions=array(),$htmlOptions=array())
{
if(!isset($htmlOptions['href']))
$htmlOptions['href']='#';
$ajaxOptions['url']=$url;
$htmlOptions['ajax']=$ajaxOptions;
self::clientChange('click',$htmlOptions);
return self::tag('a',$htmlOptions,$text);
}
鐢熸垚涓涓彲浠ュ彂璧稟JAX璇锋眰鐨勯摼鎺ャ
鍙傝
public static string ajaxSubmitButton(string $label, mixed $url, array $ajaxOptions=array (
), array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$url | mixed | AJAX璇锋眰鐨刄RL銆傚鏋滄槸绌猴紝閭e氨鍋囧畾涓哄綋鍓嶇殑URL銆傛洿澶氳缁嗕俊鎭鍙傝normalizeUrl銆 |
$ajaxOptions | array | AJAX閫夐」(璇峰弬闃ajax) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽 |
public static function ajaxSubmitButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
{
$ajaxOptions['type']='POST';
$htmlOptions['type']='submit';
return self::ajaxButton($label,$url,$ajaxOptions,$htmlOptions);
}
鐢熸垚涓涓彲浠ョ敤POST鏂规硶鎻愪氦褰撳墠琛ㄥ崟鐨勬寜閽
public static string asset(string $path, boolean $hashByName=false)
| ||
$path | string | 鍙戝竷鐨勮祫婧愯矾寰 |
$hashByName | boolean | 鍏竷鐨勭洰褰曟槸鍚﹀簲璇ヨ鍛藉悕涓哄搱甯屾枃妗e悕銆 濡傛灉涓篺alse锛岃鍚嶇О灏嗘槸鍙戝竷璺緞鐨勫搱甯岀洰褰曞悕銆 榛樿涓篺alse銆 濡傛灉鎯冲湪涓嶅悓鎵╁睍涔嬮棿鍏变韩鍙戝竷璺緞锛岄偅涔堝氨璁剧疆涓簍rue銆 |
{return} | string | 鍏叡璧勬簮鐨刄RL |
public static function asset($path,$hashByName=false)
{
return Yii::app()->getAssetManager()->publish($path,$hashByName);
}
鐢熸垚鍏叡璧勬簮鐨刄RL銆
public static string beginForm(mixed $action='', string $method='post', array $htmlOptions=array (
))
| ||
$action | mixed | 琛ㄥ崟鐨刟ction閾炬帴(鍏充簬杩欎釜鍙傛暟璇﹁normalizeUrl銆) |
$method | string | 琛ㄥ崟鏂规硶(渚嬪 post, get) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag)銆 |
{return} | string | 鐢熸垚鐨勮〃鍗曟爣绛俱 |
public static function beginForm($action='',$method='post',$htmlOptions=array())
{
$htmlOptions['action']=$url=self::normalizeUrl($action);
$htmlOptions['method']=$method;
$form=self::tag('form',$htmlOptions,false,false);
$hiddens=array();
if(!strcasecmp($method,'get') && ($pos=strpos($url,'?'))!==false)
{
foreach(explode('&',substr($url,$pos+1)) as $pair)
{
if(($pos=strpos($pair,'='))!==false)
$hiddens[]=self::hiddenField(urldecode(substr($pair,0,$pos)),urldecode(substr($pair,$pos+1)),array('id'=>false));
}
}
$request=Yii::app()->request;
if($request->enableCsrfValidation && !strcasecmp($method,'post'))
$hiddens[]=self::hiddenField($request->csrfTokenName,$request->getCsrfToken(),array('id'=>false));
if($hiddens!==array())
$form.="\n".self::tag('div',array('style'=>'display:none'),implode("\n",$hiddens));
return $form;
}
鐢熸垚涓涓〃鍗曠殑寮濮嬫爣绛俱 娉ㄦ剰锛屼粎鐢熸垚琛ㄥ崟鐨勫紑濮嬫爣绛俱 闂悎鐨勬爣绛惧簲璇ュ湪琛ㄥ崟鏈熬鎵嬪姩娣诲姞銆
鍙傝
public static string button(string $label='button', array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function button($label='button',$htmlOptions=array())
{
if(!isset($htmlOptions['name']))
{
if(!array_key_exists('name',$htmlOptions))
$htmlOptions['name']=self::ID_PREFIX.self::$count++;
}
if(!isset($htmlOptions['type']))
$htmlOptions['type']='button';
if(!isset($htmlOptions['value']))
$htmlOptions['value']=$label;
self::clientChange('click',$htmlOptions);
return self::tag('input',$htmlOptions);
}
鐢熸垚涓涓寜閽
鍙傝
public static string cdata(string $text)
| ||
$text | string | 瑕佽瀵嗗皝鐨勫瓧绗︿覆 |
{return} | string | 鍚湁瀵嗗皝鍐呭鐨凜DATA鏍囩銆 |
public static function cdata($text)
{
return '<![CDATA[' . $text . ']]>';
}
灏嗕竴涓粰瀹氱殑瀛楃涓插瘑灏佽繘涓涓狢DATA鏍囩涓
public static string checkBox(string $name, boolean $checked=false, array $htmlOptions=array (
))
| ||
$name | string | 澶嶉夋鐨勫悕绉 |
$checked | boolean | 澶嶉夋鏄惁涓鸿閫変腑鐘舵 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) 鑷1.1.2鐗堣捣锛屼竴涓悕绉颁负鈥榰ncheckValue鈥欑殑鐗规畩閫夐」鍙互琚娇鐢紝 杩欎釜鐗规畩閫夐」鐨勫煎湪褰撳閫夋娌¤閫変腑鏃惰繑鍥炪 濡傛灉璁剧疆浜嗚繖涓壒娈婇夐」鍊硷紝閭d箞涓涓殣钘忓煙浼氳娓叉煋锛屼互渚垮綋澶嶉夋娌℃湁琚変腑鏃讹紝鎴戜滑浠嶇劧鍙互鑾峰緱涓涓湭閫変腑鏃剁殑鍊笺 濡傛灉鈥榰ncheckValue鈥欐病鏈夎璁剧疆鎴栬缃负NULL锛岄殣钘忓煙灏嗕笉浼氳娓叉煋銆 |
{return} | string | 鐢熸垚鐨勫閫夋 |
public static function checkBox($name,$checked=false,$htmlOptions=array())
{
if($checked)
$htmlOptions['checked']='checked';
else
unset($htmlOptions['checked']);
$value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
self::clientChange('click',$htmlOptions);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck=null;
if($uncheck!==null)
{
// 娣诲姞涓涓殣钘忓煙锛屼互渚垮綋澶嶉夋娌℃湁琚変腑鏃讹紝浠嶇劧浼氭彁浜や竴涓
if(isset($htmlOptions['id']) && $htmlOptions['id']!==false)
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
else
$uncheckOptions=array('id'=>false);
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
}
else
$hidden='';
// 娣诲姞涓涓殣钘忓煙锛屼互渚垮綋澶嶉夋娌℃湁琚変腑鏃讹紝浠嶇劧浼氭彁浜や竴涓
return $hidden . self::inputField('checkbox',$name,$value,$htmlOptions);
}
鐢熸垚涓涓閫夋銆
public static string checkBoxList(string $name, mixed $select, array $data, array $htmlOptions=array (
))
| ||
$name | string | 澶嶉夋鍒楄〃鐨勫悕绉般 涓鏃﹁〃鍗曡鎻愪氦锛屼綘鍙互灏辫繖涓悕绉版潵鑾峰彇閫変腑鐨勫笺 |
$select | mixed | 澶嶉夋鍒楄〃鐨勯変腑椤广 杩欎釜鍙互鏄竴涓崟鐙殑琚変腑椤圭殑瀛楃涓诧紝涔熷彲浠ユ槸澶氫釜閫変腑椤圭殑鏁扮粍銆 |
$data | array | 鐢ㄤ簬鐢熸垚澶嶉夋鍒楄〃鐨勫-鏍囩瀵广 娉ㄦ剰锛屽煎皢鑷姩琚獺TML缂栫爜锛岀劧鑰屾爣绛句笉浼氥 |
$htmlOptions | array | 闄勫姞鐨凥TML閫夐」銆
閫夐」灏嗕細搴旂敤浜庢瘡涓閫夋涓婏紝涓嬮潰杩欎簺鐗瑰畾鐨勯夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨勫閫夋鍒楄〃 |
public static function checkBoxList($name,$select,$data,$htmlOptions=array())
{
$template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
$separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:"<br/>\n";
unset($htmlOptions['template'],$htmlOptions['separator']);
if(substr($name,-2)!=='[]')
$name.='[]';
if(isset($htmlOptions['checkAll']))
{
$checkAllLabel=$htmlOptions['checkAll'];
$checkAllLast=isset($htmlOptions['checkAllLast']) && $htmlOptions['checkAllLast'];
}
unset($htmlOptions['checkAll'],$htmlOptions['checkAllLast']);
$labelOptions=isset($htmlOptions['labelOptions'])?$htmlOptions['labelOptions']:array();
unset($htmlOptions['labelOptions']);
$items=array();
$baseID=self::getIdByName($name);
$id=0;
$checkAll=true;
foreach($data as $value=>$label)
{
$checked=!is_array($select) && !strcmp($value,$select) || is_array($select) && in_array($value,$select);
$checkAll=$checkAll && $checked;
$htmlOptions['value']=$value;
$htmlOptions['id']=$baseID.'_'.$id++;
$option=self::checkBox($name,$checked,$htmlOptions);
$label=self::label($label,$htmlOptions['id'],$labelOptions);
$items[]=strtr($template,array('{input}'=>$option,'{label}'=>$label));
}
if(isset($checkAllLabel))
{
$htmlOptions['value']=1;
$htmlOptions['id']=$id=$baseID.'_all';
$option=self::checkBox($id,$checkAll,$htmlOptions);
$label=self::label($checkAllLabel,$id,$labelOptions);
$item=strtr($template,array('{input}'=>$option,'{label}'=>$label));
if($checkAllLast)
$items[]=$item;
else
array_unshift($items,$item);
$name=strtr($name,array('['=>'\\[',']'=>'\\]'));
$js=<<<EOD
$('#$id').click(function() {
$("input[name='$name']").prop('checked', this.checked);
});
$("input[name='$name']").click(function() {
$('#$id').prop('checked', !$("input[name='$name']:not(:checked)").length);
});
$('#$id').prop('checked', !$("input[name='$name']:not(:checked)").length);
EOD;
$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
$cs->registerScript($id,$js);
}
return self::tag('span',array('id'=>$baseID),implode($separator,$items));
}
鐢熸垚涓涓閫夋鍒楄〃銆 涓涓厑璁稿閫夌殑澶嶉夋鍒楄〃锛屾瘮濡listBox. 浣滀负涓涓粨鏋滐紝鐩稿鐨凱OST鍊兼槸涓涓暟缁勩
protected static void clientChange(string $event, array &$htmlOptions)
| ||
$event | string | 浜嬩欢鍚(涓嶅甫'on') |
$htmlOptions | array | HTML灞炴э紝鍙兘鍖呭惈浠ヤ笅
鐗规畩灞炴ф潵鎸囧畾瀹㈡埛绔敼鍙樿涓猴細
|
protected static function clientChange($event,&$htmlOptions)
{
if(!isset($htmlOptions['submit']) && !isset($htmlOptions['confirm']) && !isset($htmlOptions['ajax']))
return;
if(isset($htmlOptions['live']))
{
$live=$htmlOptions['live'];
unset($htmlOptions['live']);
}
else
$live = self::$liveEvents;
if(isset($htmlOptions['return']) && $htmlOptions['return'])
$return='return true';
else
$return='return false';
if(isset($htmlOptions['on'.$event]))
{
$handler=trim($htmlOptions['on'.$event],';').';';
unset($htmlOptions['on'.$event]);
}
else
$handler='';
if(isset($htmlOptions['id']))
$id=$htmlOptions['id'];
else
$id=$htmlOptions['id']=isset($htmlOptions['name'])?$htmlOptions['name']:self::ID_PREFIX.self::$count++;
$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
if(isset($htmlOptions['submit']))
{
$cs->registerCoreScript('yii');
$request=Yii::app()->getRequest();
if($request->enableCsrfValidation && isset($htmlOptions['csrf']) && $htmlOptions['csrf'])
$htmlOptions['params'][$request->csrfTokenName]=$request->getCsrfToken();
if(isset($htmlOptions['params']))
$params=CJavaScript::encode($htmlOptions['params']);
else
$params='{}';
if($htmlOptions['submit']!=='')
$url=CJavaScript::quote(self::normalizeUrl($htmlOptions['submit']));
else
$url='';
$handler.="jQuery.yii.submitForm(this,'$url',$params);{$return};";
}
if(isset($htmlOptions['ajax']))
$handler.=self::ajax($htmlOptions['ajax'])."{$return};";
if(isset($htmlOptions['confirm']))
{
$confirm='confirm(\''.CJavaScript::quote($htmlOptions['confirm']).'\')';
if($handler!=='')
$handler="if($confirm) {".$handler."} else return false;";
else
$handler="return $confirm;";
}
if($live)
$cs->registerScript('Yii.CHtml.#' . $id, "$('body').on('$event','#$id',function(){{$handler}});");
else
$cs->registerScript('Yii.CHtml.#' . $id, "$('#$id').on('$event', function(){{$handler}});");
unset($htmlOptions['params'],$htmlOptions['submit'],$htmlOptions['ajax'],$htmlOptions['confirm'],$htmlOptions['return'],$htmlOptions['csrf']);
}
鐢熸垚JavaScript涓庢寚瀹氱殑瀹㈡埛绔彉鍖栥
public static string closeTag(string $tag)
| ||
$tag | string | 鏍囩鍚 |
{return} | string | 鐢熸垚鐨凥TML鍏冪礌鏍囩 |
public static function closeTag($tag)
{
return '</'.$tag.'>';
}
鐢熸垚涓涓狧TML鍏冪礌鐨勭粨鏉熸爣璁
public static string css(string $text, string $media='')
| ||
$text | string | CSS鍐呭 |
$media | string | 杩欎釜CSS閫傜敤浜庣殑media銆 |
{return} | string | 瀵嗗皝濂界殑CSS |
public static function css($text,$media='')
{
if($media!=='')
$media=' media="'.$media.'"';
return "<style type=\"text/css\"{$media}>\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n</style>";
}
灏嗙粰瀹氱殑CSS鍐呭瀵嗗皝鍒颁竴涓狢SS鏍囩涓
public static string cssFile(string $url, string $media='')
| ||
$url | string | CSS鐨刄RL |
$media | string | CSS搴旂敤鐨刴edia銆 |
{return} | string | CSS閾炬帴 |
public static function cssFile($url,$media='')
{
if($media!=='')
$media=' media="'.$media.'"';
return '<link rel="stylesheet" type="text/css" href="'.self::encode($url).'"'.$media.' />';
}
鐗瑰畾鐨凜SS鏂囦欢鐨勯摼鎺ャ
public static string decode(string $text)
| ||
$text | string | 瑕佽瑙g爜鐨勬暟鎹 |
{return} | string | 瑙g爜鍚庣殑鏁版嵁 |
public static function decode($text)
{
return htmlspecialchars_decode($text,ENT_QUOTES);
}
鎶婄壒娈婄殑HTML瀹炰綋瑙g爜涓虹浉瀵瑰簲鐨勫瓧绗︺ 杩欎釜鍜encode()鏄浉鍙嶇殑鍔熻兘銆
public static string dropDownList(string $name, string $select, array $data, array $htmlOptions=array (
))
| ||
$name | string | 涓嬫媺鍒楄〃鐨勫悕绉 |
$select | string | 琚変腑鐨勫 |
$data | array | 鐢ㄦ潵鐢熸垚鍒楄〃閫夐」鐨勬暟鎹(鍊=>鏄剧ず). 浣犲彲浠ヤ娇鐢listData鏉ョ敓杩欎釜鏁版嵁銆 璇峰弬鑰listOptions鏉ヤ簡瑙h繖涓暟鎹浣曠敓鎴愬垪琛ㄩ夐」銆 娉ㄦ剰锛岃繖涓柟娉曚細鑷姩鐨勫皢鍊煎拰鏍囩HTML缂栫爜銆 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛
涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭)
姝ゅ锛屼笅闈㈣繖浜涢夐」涔熻涓嬫媺鍒楄〃鎵鏀寔锛
|
{return} | string | 鐢熸垚鐨勪笅鎷夊垪琛 |
public static function dropDownList($name,$select,$data,$htmlOptions=array())
{
$htmlOptions['name']=$name;
if(!isset($htmlOptions['id']))
$htmlOptions['id']=self::getIdByName($name);
else if($htmlOptions['id']===false)
unset($htmlOptions['id']);
self::clientChange('change',$htmlOptions);
$options="\n".self::listOptions($select,$data,$htmlOptions);
return self::tag('select',$htmlOptions,$options);
}
鐢熸垚涓涓笅鎷夊垪琛ㄣ
public static string encode(string $text)
| ||
$text | string | 瑕佽缂栫爜鐨勬暟鎹 |
{return} | string | 缂栫爜鍚庣殑鏁版嵁 |
public static function encode($text)
{
return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
}
鎶婄壒娈婄殑瀛楃缂栫爜涓篐TML瀹炰綋銆 application charset灏嗚鐢ㄤ簬缂栫爜銆
public static array encodeArray(array $data)
| ||
$data | array | 瑕佽缂栫爜鐨勬暟鎹 |
{return} | array | 缂栫爜鍚庣殑鏁版嵁 |
public static function encodeArray($data)
{
$d=array();
foreach($data as $key=>$value)
{
if(is_string($key))
$key=htmlspecialchars($key,ENT_QUOTES,Yii::app()->charset);
if(is_string($value))
$value=htmlspecialchars($value,ENT_QUOTES,Yii::app()->charset);
else if(is_array($value))
$value=self::encodeArray($value);
$d[$key]=$value;
}
return $d;
}
鎶婁竴涓瓧绗︿覆鏁扮粍涓殑鐗规畩瀛楃缂栫爜涓篐TML瀹炰綋銆 濡傛灉闇瑕佺殑璇濓紝鏁扮粍鐨勯敭鍚嶅拰閿奸兘灏嗚缂栫爜銆 濡傛灉閿兼槸涓涓暟缁勶紝杩欎釜鏂规硶涔熷皢閫掑綊鐨勫皢瀹冪紪鐮 application charset灏嗚鐢ㄤ簬缂栫爜銆
public static string endForm()
| ||
{return} | string | 鐢熸垚鐨勬爣绛 |
鐢熸垚涓涓〃鍗曠殑缁撴潫鏍囩銆
鍙傝
public static 鏁版嵁鏄剧ず瀛楃涓层傚鏋滄病鏈夊彂鐜伴敊璇垯涓虹┖銆 error(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴у悕 |
$htmlOptions | array | 棰濆鐨勮娓叉煋鍒癲iv瀹瑰櫒鐨凥TML灞炴с |
{return} | 鏁版嵁鏄剧ず瀛楃涓层傚鏋滄病鏈夊彂鐜伴敊璇垯涓虹┖銆 |
public static function error($model,$attribute,$htmlOptions=array())
{
self::resolveName($model,$attribute); // turn [a][b]attr into attr
$error=$model->getError($attribute);
if($error!='')
{
if(!isset($htmlOptions['class']))
$htmlOptions['class']=self::$errorMessageCss;
return self::tag('div',$htmlOptions,$error);
}
else
return '';
}
鏄剧ず涓涓ā鍨嬪睘鎬х殑绗竴涓湁鏁堢殑閿欒銆
public static string errorSummary(mixed $model, string $header=NULL, string $footer=NULL, array $htmlOptions=array (
))
| ||
$model | mixed | 杈撳叆閿欒瑕佽鏄剧ず鐨勬ā鍨嬨 鍙互鏄竴涓崟鐙殑妯″瀷锛屼篃鍙互鏄竴涓ā鍨嬬殑鏁扮粍銆 |
$header | string | 鍑虹幇鍦ㄩ敊璇墠闈㈢殑涓娈礖TML浠g爜 |
$footer | string | 鍑虹幇鍦ㄩ敊璇悗闈㈢殑涓娈礖TML浠g爜 |
$htmlOptions | array | 棰濆鐨勮娓叉煋鍒癲iv瀹瑰櫒鐨凥TML灞炴с 涓涓悕涓'firstError'鐨勫睘鎬ф槸琚鍙殑锛屽綋璁剧疆涓簍rue锛 灏嗗彧鏄剧ず姣忎釜灞炴х殑绗竴涓敊璇俊鎭 濡傛灉涓嶈缃垨璁剧疆涓篺alse锛屾墍鏈夌殑閿欒淇℃伅閮藉皢浼氭樉绀恒 杩欎釜閫夐」鑷1.1.3鐗堝彲鐢ㄣ |
{return} | string | 閿欒鎽樿銆傚鏋滄病鏈夐敊璇鎵惧埌鍒欎负绌恒 |
public static function errorSummary($model,$header=null,$footer=null,$htmlOptions=array())
{
$content='';
if(!is_array($model))
$model=array($model);
if(isset($htmlOptions['firstError']))
{
$firstError=$htmlOptions['firstError'];
unset($htmlOptions['firstError']);
}
else
$firstError=false;
foreach($model as $m)
{
foreach($m->getErrors() as $errors)
{
foreach($errors as $error)
{
if($error!='')
$content.="<li>$error</li>\n";
if($firstError)
break;
}
}
}
if($content!=='')
{
if($header===null)
$header='<p>'.Yii::t('yii','Please fix the following input errors:').'</p>';
if(!isset($htmlOptions['class']))
$htmlOptions['class']=self::$errorSummaryCss;
return self::tag('div',$htmlOptions,$header."\n<ul>\n$content</ul>".$footer);
}
else
return '';
}
鏄剧ず涓涓垨澶氫釜妯″瀷鐨勬湁鏁堥敊璇殑鎽樿銆
public static string fileField(string $name, string $value='', array $htmlOptions=array (
))
| ||
$name | string | 杈撳叆妗嗙殑鍚嶇О |
$value | string | 杈撳叆妗嗙殑鍊 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag). |
{return} | string | 鐢熸垚鐨勬枃浠惰緭鍏ユ |
public static function fileField($name,$value='',$htmlOptions=array())
{
return self::inputField('file',$name,$value,$htmlOptions);
}
鐢熸垚涓涓枃浠惰緭鍏ユ銆 娉ㄦ剰锛屼綘蹇呴』璁剧疆琛ㄥ崟鐨勨榚nctype鈥欏睘鎬т负鈥榤ultipart/form-data鈥欍 琛ㄥ崟琚彁浜ゅ悗锛屼笂浼犵殑鏂囦欢淇℃伅鍙互閫氳繃$_FILES[$name]鏉ヨ幏寰 (璇峰弬闃 PHP documentation).
鍙傝
public static string form(mixed $action='', string $method='post', array $htmlOptions=array (
))
| ||
$action | mixed | 琛ㄥ崟鐨刟ction閾炬帴(鍏充簬杩欎釜鍙傛暟璇﹁normalizeUrl銆) |
$method | string | 琛ㄥ崟鏂规硶(渚嬪 post, get) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag)銆 |
{return} | string | 鐢熸垚鐨勮〃鍗曟爣绛俱 |
public static function form($action='',$method='post',$htmlOptions=array())
{
return self::beginForm($action,$method,$htmlOptions);
}
鐢熸垚涓涓〃鍗曠殑寮濮嬫爣绛俱 杩欐槸beginForm鐨勪竴涓嵎寰勩
public static string getIdByName(string $name)
| ||
$name | string | 鐢ㄦ潵鐢熸垚HTML ID鐨勫悕绉 |
{return} | string | 鏍规嵁鍚嶇О鐢熸垚鐨処D銆 |
public static function getIdByName($name)
{
return str_replace(array('[]', '][', '[', ']'), array('', '_', '_', ''), $name);
}
鏍规嵁鍚嶇О鏉ョ敓鎴愪竴涓湁鏁堢殑HTML ID銆
public static string hiddenField(string $name, string $value='', array $htmlOptions=array (
))
| ||
$name | string | 杈撳叆妗嗙殑鍚嶇О |
$value | string | 杈撳叆妗嗙殑鍊 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag). |
{return} | string | 鐢熸垚鐨勯殣钘忚緭鍏ユ |
public static function hiddenField($name,$value='',$htmlOptions=array())
{
return self::inputField('hidden',$name,$value,$htmlOptions);
}
鐢熸垚涓涓殣钘忕殑杈撳叆妗
鍙傝
public static string htmlButton(string $label='button', array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛俱 娉ㄦ剰锛岃繖涓煎皢浼氱洿鎺ョ殑鎻掑叆鍒版寜閽厓绱犱腑锛屼笉缁忚繃缂栫爜澶勭悊銆 |
$htmlOptions | array | additional 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function htmlButton($label='button',$htmlOptions=array())
{
if(!isset($htmlOptions['name']))
$htmlOptions['name']=self::ID_PREFIX.self::$count++;
if(!isset($htmlOptions['type']))
$htmlOptions['type']='button';
self::clientChange('click',$htmlOptions);
return self::tag('button',$htmlOptions,$label);
}
鐢熸垚涓涓娇鐢℉TML鎸夐挳鏍囩鐨勬寜閽 杩欎釜鏂规硶绫讳技浜button锛 鍙槸瀹冪敓鎴愪竴涓寜閽爣绛炬潵鏇夸唬input鏍囩銆
鍙傝
public static string image(string $src, string $alt='', array $htmlOptions=array (
))
| ||
$src | string | 鍥剧墖鐨刄RL |
$alt | string | 鏇夸唬鐨勬枃瀛楁樉绀 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag). |
{return} | string | 鐢熸垚鐨勫浘鐗囨爣绛 |
public static function image($src,$alt='',$htmlOptions=array())
{
$htmlOptions['src']=$src;
$htmlOptions['alt']=$alt;
return self::tag('img',$htmlOptions);
}
鐢熸垚涓涓浘鐗囨爣绛俱
public static string imageButton(string $src, array $htmlOptions=array (
))
| ||
$src | string | 鍥剧墖鐨刄RL |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function imageButton($src,$htmlOptions=array())
{
$htmlOptions['src']=$src;
$htmlOptions['type']='image';
return self::button('submit',$htmlOptions);
}
鐢熸垚涓涓浘鐗囨彁浜ゆ寜閽
鍙傝
protected static string inputField(string $type, string $name, string $value, array $htmlOptions)
| ||
$type | string | input鏍囩绫诲瀷(渚嬪 'text', 'radio') |
$name | string | input鏍囩鍚嶇О |
$value | string | input鏍囩鍊 |
$htmlOptions | array | 棰濆鐨凥TML鏍囩鐨勫睘鎬(璇峰弬闃tag). |
{return} | string | 鐢熸垚鐨刬nput鏍囩 |
protected static function inputField($type,$name,$value,$htmlOptions)
{
$htmlOptions['type']=$type;
$htmlOptions['value']=$value;
$htmlOptions['name']=$name;
if(!isset($htmlOptions['id']))
$htmlOptions['id']=self::getIdByName($name);
else if($htmlOptions['id']===false)
unset($htmlOptions['id']);
return self::tag('input',$htmlOptions);
}
鐢熸垚涓涓猧nput鏍囩銆 杩欎釜鏂规硶鍩轰簬缁欏畾鐨勫悕绉板拰鍊兼潵鐢熸垚涓涓猧nput鏍囩銆
public static string label(string $label, string $for, array $htmlOptions=array (
))
| ||
$label | string | 鏍囩鏂囨湰銆傛敞鎰忥紝濡傛灉闇瑕佺殑璇濓紝浣犲簲璇ユ妸鏂囨湰HTML缂栫爜銆 |
$for | string | 鍜岃繖涓爣绛炬湁鍏崇殑HTML鍏冪礌鐨処D銆 濡傛灉鏄痜alse锛屾爣绛剧殑鈥榝or鈥欏睘鎬у皢涓嶄細琚覆鏌撱 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с
涓嬮潰鐨凥TML閫夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨刲abel鏍囩 |
public static function label($label,$for,$htmlOptions=array())
{
if($for===false)
unset($htmlOptions['for']);
else
$htmlOptions['for']=$for;
if(isset($htmlOptions['required']))
{
if($htmlOptions['required'])
{
if(isset($htmlOptions['class']))
$htmlOptions['class'].=' '.self::$requiredCss;
else
$htmlOptions['class']=self::$requiredCss;
$label=self::$beforeRequiredLabel.$label.self::$afterRequiredLabel;
}
unset($htmlOptions['required']);
}
return self::tag('label',$htmlOptions,$label);
}
鐢熸垚涓涓猯abel鏍囩
public static string link(string $text, mixed $url='#', array $htmlOptions=array (
))
| ||
$text | string | 閾炬帴涓讳綋銆傚畠涓嶄細琚紪鐮併傚洜姝わ紝濡傚浘鍍忔爣绛鹃偅鏍风殑HTML浠g爜涔熶細琚氳繃銆 |
$url | mixed | 涓涓猆RL鎴栦竴涓矾鐢卞姩浣滐紝鐢ㄤ簬鍒涘缓涓涓猆RL銆 鍏充簬濡備綍鎸囧畾杩欎釜鍙傛暟鐨勬洿澶氳缁嗘儏鍐佃鍙傞槄normalizeUrl銆 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勮秴閾炬帴 |
public static function link($text,$url='#',$htmlOptions=array())
{
if($url!=='')
$htmlOptions['href']=self::normalizeUrl($url);
self::clientChange('click',$htmlOptions);
return self::tag('a',$htmlOptions,$text);
}
鐢熸垚涓涓秴閾炬帴銆
public static string linkButton(string $label='submit', array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function linkButton($label='submit',$htmlOptions=array())
{
if(!isset($htmlOptions['submit']))
$htmlOptions['submit']=isset($htmlOptions['href']) ? $htmlOptions['href'] : '';
return self::link($label,'#',$htmlOptions);
}
鐢熸垚涓涓摼鎺ユ彁浜ゆ寜閽
鍙傝
public static string linkTag(string $relation=NULL, string $type=NULL, string $href=NULL, string $media=NULL, array $options=array (
))
| ||
$relation | string | link鏍囩鐨剅el灞炴с傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴愩 |
$type | string | link鏍囩鐨則ype灞炴с傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴愩 |
$href | string | link鏍囩鐨刪ref灞炴с傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴愩 |
$media | string | link鏍囩鐨刴edia灞炴с傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴愩 |
$options | array | 鍏跺畠閫夐」鐨勫悕绉-鍊煎 |
{return} | string | 鐢熸垚鐨刲ink鏍囩 |
public static function linkTag($relation=null,$type=null,$href=null,$media=null,$options=array())
{
if($relation!==null)
$options['rel']=$relation;
if($type!==null)
$options['type']=$type;
if($href!==null)
$options['href']=$href;
if($media!==null)
$options['media']=$media;
return self::tag('link',$options);
}
鐢熸垚涓涓猯ink鏍囩锛屽彲浠ユ彃鍏ュ埌HTML椤甸潰鐨勫ご閮ㄩ儴鍒嗐 涓嶈鎶婅繖涓柟娉曚笌link()鐩告贩涔憋紝鍚庤呮槸鐢熸垚涓涓秴绾ч摼鎺ャ
public static string listBox(string $name, mixed $select, array $data, array $htmlOptions=array (
))
| ||
$name | string | 鍒楄〃妗嗙殑鍚嶇О |
$select | mixed | 琚変腑鐨勫笺傝繖涓彲浠ユ槸涓涓崟鐙殑琚変腑椤圭殑瀛楃涓诧紝涔熷彲浠ユ槸澶氫釜閫変腑椤圭殑鏁扮粍銆 |
$data | array | 鐢ㄤ簬鐢熸垚鍒楄〃閫夐」鐨勬暟鎹(鍊=>鏄剧ず) 浣犲彲浠ヤ娇鐢listData鏉ョ敓杩欎釜鏁版嵁銆 璇峰弬鑰listOptions鏉ヤ簡瑙h繖涓暟鎹浣曠敓鎴愬垪琛ㄩ夐」銆 娉ㄦ剰锛岃繖涓柟娉曚細鑷姩鐨勫皢鍊煎拰鏍囩HTML缂栫爜銆 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛
涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭)
姝ゅ锛屼笅闈㈣繖浜涢夐」涔熻涓嬫媺鍒楄〃鎵鏀寔锛
|
{return} | string | 鐢熸垚鐨勫垪琛ㄦ |
public static function listBox($name,$select,$data,$htmlOptions=array())
{
if(!isset($htmlOptions['size']))
$htmlOptions['size']=4;
if(isset($htmlOptions['multiple']))
{
if(substr($name,-2)!=='[]')
$name.='[]';
}
return self::dropDownList($name,$select,$data,$htmlOptions);
}
鐢熸垚涓涓垪琛ㄦ銆
public static array listData(array $models, string $valueField, string $textField, string $groupField='')
| ||
$models | array | 妯″瀷瀵硅薄鐨勫垪琛ㄣ 杩欎釜鍙傛暟涔熷彲浠ユ槸涓涓叧鑱旂殑鏁扮粍(渚嬪CDbCommand::queryAll鐨勭粨鏋)銆 |
$valueField | string | 鍒楄〃閫夐」鍊肩殑灞炴у悕 |
$textField | string | 鍒楄〃閫夐」鏂囨湰鐨勫睘鎬у悕 |
$groupField | string | 鍒楄〃閫夐」缁勭殑灞炴у悕銆傚鏋滄槸绌猴紝灏嗕笉浼氱敓鎴愮粍銆 |
{return} | array | 鍙敤浜dropDownList, listBox绛夌殑鍒楄〃鏁版嵁銆 |
public static function listData($models,$valueField,$textField,$groupField='')
{
$listData=array();
if($groupField==='')
{
foreach($models as $model)
{
$value=self::value($model,$valueField);
$text=self::value($model,$textField);
$listData[$value]=$text;
}
}
else
{
foreach($models as $model)
{
$group=self::value($model,$groupField);
$value=self::value($model,$valueField);
$text=self::value($model,$textField);
$listData[$group][$value]=$text;
}
}
return $listData;
}
涓哄垪琛ㄥ瀷HTML鍏冪礌鐢熸垚閫傚綋鐨勬暟鎹 鐢熸垚鐨勬暟鎹彲鐢ㄤ簬dropDownList, listBox, checkBoxList, radioButtonList,鍜屽畠浠殑鍔犲己鐗(姣斿activeDropDownList). 娉ㄦ剰锛岃繖涓柟娉曚笉浼氬鐢熸垚鐨勬暟鎹瓾TML缂栫爜銆 濡傛灉闇瑕佺殑璇濅綘鍙互璋冪敤encodeArray鏉ョ粰瀹冪紪鐮併 璇峰弬闃value鏂规硶鏉ヤ簡瑙e浣曟寚瀹氬煎瓧娈碉紝鏂囨湰瀛楁浠ュ強缁勫瓧娈点
public static string listOptions(mixed $selection, array $listData, array &$htmlOptions)
| ||
$selection | mixed | 琚変腑鐨勫笺傝繖涓彲浠ユ槸涓涓崟鐙殑琚変腑椤圭殑瀛楃涓诧紝涔熷彲浠ユ槸澶氫釜閫変腑椤圭殑鏁扮粍銆 |
$listData | array | 閫夐」鏁版嵁(璇峰弬闃listData) |
$htmlOptions | array | 棰濆鐨凥TML灞炴с備笅闈袱涓壒瀹氱殑灞炴ф槸琚鍙細
|
{return} | string | 鐢熸垚鐨勫垪琛ㄩ夐」 |
public static function listOptions($selection,$listData,&$htmlOptions)
{
$raw=isset($htmlOptions['encode']) && !$htmlOptions['encode'];
$content='';
if(isset($htmlOptions['prompt']))
{
$content.='<option value="">'.strtr($htmlOptions['prompt'],array('<'=>'<', '>'=>'>'))."</option>\n";
unset($htmlOptions['prompt']);
}
if(isset($htmlOptions['empty']))
{
if(!is_array($htmlOptions['empty']))
$htmlOptions['empty']=array(''=>$htmlOptions['empty']);
foreach($htmlOptions['empty'] as $value=>$label)
$content.='<option value="'.self::encode($value).'">'.strtr($label,array('<'=>'<', '>'=>'>'))."</option>\n";
unset($htmlOptions['empty']);
}
if(isset($htmlOptions['options']))
{
$options=$htmlOptions['options'];
unset($htmlOptions['options']);
}
else
$options=array();
$key=isset($htmlOptions['key']) ? $htmlOptions['key'] : 'primaryKey';
if(is_array($selection))
{
foreach($selection as $i=>$item)
{
if(is_object($item))
$selection[$i]=$item->$key;
}
}
else if(is_object($selection))
$selection=$selection->$key;
foreach($listData as $key=>$value)
{
if(is_array($value))
{
$content.='<optgroup label="'.($raw?$key : self::encode($key))."\">\n";
$dummy=array('options'=>$options);
if(isset($htmlOptions['encode']))
$dummy['encode']=$htmlOptions['encode'];
$content.=self::listOptions($selection,$value,$dummy);
$content.='</optgroup>'."\n";
}
else
{
$attributes=array('value'=>(string)$key, 'encode'=>!$raw);
if(!is_array($selection) && !strcmp($key,$selection) || is_array($selection) && in_array($key,$selection))
$attributes['selected']='selected';
if(isset($options[$key]))
$attributes=array_merge($attributes,$options[$key]);
$content.=self::tag('option',$attributes,$raw?(string)$value : self::encode((string)$value))."\n";
}
}
unset($htmlOptions['key']);
return $content;
}
鐢熸垚涓涓垪琛ㄩ夐」銆
public static string mailto(string $text, string $email='', array $htmlOptions=array (
))
| ||
$text | string | 閾炬帴涓讳綋銆傚畠涓嶄細琚紪鐮併傚洜姝わ紝濡傚浘鍍忔爣绛鹃偅鏍风殑HTML浠g爜涔熶細琚氳繃銆 |
string | email鍦板潃銆傚鏋滄槸绌猴紝绗竴涓弬鏁帮紙閾炬帴涓讳綋锛夊皢琚綔涓篹mail鍦板潃銆 | |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | the 鐢熸垚鐨勭數瀛愰偖浠堕摼鎺 |
public static function mailto($text,$email='',$htmlOptions=array())
{
if($email==='')
$email=$text;
return self::link($text,'mailto:'.$email,$htmlOptions);
}
鍒涘缓涓涓數瀛愰偖浠堕摼鎺ャ
鍙傝
public static string metaTag(string $content, string $name=NULL, string $httpEquiv=NULL, array $options=array (
))
| ||
$content | string | meta鏍囩鐨勫唴瀹瑰睘鎬 |
$name | string | meta鏍囩鐨勫睘鎬у悕銆傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴 |
$httpEquiv | string | meta鏍囩鐨刪ttp-equiv灞炴с傚鏋滄槸null锛屽睘鎬у皢涓嶄細琚敓鎴 |
$options | array | 鍏跺畠閫夐」鐨勫悕绉-鍊煎(渚嬪 'scheme'锛 'lang') |
{return} | string | 鐢熸垚鐨刴eta鏍囩 |
public static function metaTag($content,$name=null,$httpEquiv=null,$options=array())
{
if($name!==null)
$options['name']=$name;
if($httpEquiv!==null)
$options['http-equiv']=$httpEquiv;
$options['content']=$content;
return self::tag('meta',$options);
}
鐢熸垚涓涓猰eta鏍囩锛屽彲浠ユ彃鍏ュ埌HTML椤甸潰鐨勫ご閮ㄩ儴鍒嗐
public static string normalizeUrl(mixed $url)
| ||
$url | mixed | 鐢熸垚涓涓湁鏁堢殑URL鐨勫弬鏁 |
{return} | string | 鏈夋晥鐨刄RL |
public static function normalizeUrl($url)
{
if(is_array($url))
{
if(isset($url[0]))
{
if(($c=Yii::app()->getController())!==null)
$url=$c->createUrl($url[0],array_splice($url,1));
else
$url=Yii::app()->createUrl($url[0],array_splice($url,1));
}
else
$url='';
}
return $url==='' ? Yii::app()->getRequest()->getUrl() : $url;
}
閫氳繃鏍囧噯鐨勮緭鍏ユ潵鐢熸垚涓涓湁鏁堢殑URL銆
濡傛灉杈撳叆鍙傛暟鏄竴涓┖瀛楃涓诧紝灏嗚繑鍥炲綋鍓嶈姹傜殑URL銆
濡傛灉杈撳叆鍙傛暟涓嶆槸涓涓┖瀛楃涓诧紝
瀹冭褰撲綔涓涓湁鏁堢殑URL锛屼笉浣滀换浣曟敼鍙樿杩斿洖銆
濡傛灉杈撳叆鍙傛暟鏄竴涓暟缁勶紝瀹冭瑙嗕负涓涓帶鍒跺櫒璺敱鍜屼竴涓狦ET鍙傛暟鍒楄〃锛
灏嗕細璋冪敤CController::createUrl鏂规硶鏉ュ垱寤轰竴涓猆RL銆
鏃㈢劧杩欐牱锛屾暟缁勭殑绗竴涓厓绱犳槸鎸囨帶鍒跺櫒鐨勮矾鐢憋紝
鍏跺畠鐨勯敭鍚-閿煎鎸囬澶栫殑URL鍙傛暟銆
渚嬪锛array('post/list', 'page'=>3)
鍙互鐢熸垚涓涓猆RL
/index.php?r=post/list&page=3
.
public static string openTag(string $tag, array $htmlOptions=array (
))
| ||
$tag | string | 鏍囩鍚 |
$htmlOptions | array | 鍏冪礌鐨勫睘鎬с傚睘鎬у煎皢琚encode()HTML缂栫爜銆 濡傛灉缁欎簡涓涓'encode'灞炴э紝鑰屼笖灞炴у间负false鐨勮瘽锛 鍏朵綑鐨勫睘鎬у煎皢涓嶄細琚獺TML缂栫爜銆 鑷1.1.5璧凤紝灞炴у间负null鐨勫睘鎬у皢涓嶄細琚覆鏌撱 |
{return} | string | 鐢熸垚鐨凥TML鍏冪礌鏍囩 |
public static function openTag($tag,$htmlOptions=array())
{
return '<' . $tag . self::renderAttributes($htmlOptions) . '>';
}
鐢熸垚涓涓狧TML鍏冪礌鐨勫紑濮嬫爣绛俱
public static string pageStateField(string $value)
| ||
$value | string | 搴忓垪鍖栫殑鎸佷箙鐘舵 |
{return} | string | 鐢熸垚鐨勯殣钘忓煙 |
public static function pageStateField($value)
{
return '<input type="hidden" name="'.CController::STATE_INPUT_NAME.'" value="'.$value.'" />';
}
鐢熸垚涓涓敤浜庡瓨鍌ㄩ〉闈㈡寔涔呯姸鎬佺殑闅愯棌鍩熴 杩欎釜鏂规硶鍦ㄥ唴閮ㄤ负statefulForm鎵鐢ㄣ
public static string passwordField(string $name, string $value='', array $htmlOptions=array (
))
| ||
$name | string | 杈撳叆妗嗙殑鍚嶇О |
$value | string | 杈撳叆妗嗙殑鍊 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勫瘑鐮佽緭鍏ユ |
public static function passwordField($name,$value='',$htmlOptions=array())
{
self::clientChange('change',$htmlOptions);
return self::inputField('password',$name,$value,$htmlOptions);
}
鐢熸垚涓涓瘑鐮佽緭鍏ユ銆
public static string radioButton(string $name, boolean $checked=false, array $htmlOptions=array (
))
| ||
$name | string | 鎸夐挳鐨勫悕绉 |
$checked | boolean | 鍗曢夋寜閽槸鍚﹁閫変腑鐘舵 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) 鑷1.1.2鐗堣捣锛屼竴涓悕绉颁负鈥榰ncheckValue鈥欑殑鐗规畩閫夐」鍙互琚娇鐢紝 杩欎釜鐗规畩閫夐」鐨勫煎湪褰撳崟閫夋寜閽病鏈夎閫変腑鏃惰繑鍥炪 濡傛灉璁剧疆浜嗚繖涓壒娈婇夐」鍊硷紝閭d箞涓涓殣钘忓煙浼氳娓叉煋锛屼互渚垮綋鍗曢夋寜閽病鏈夎閫変腑鏃讹紝鎴戜滑浠嶇劧鍙互鑾峰緱涓涓湭閫変腑鏃剁殑鍊笺 濡傛灉鈥榰ncheckValue鈥欐病鏈夎璁剧疆鎴栬缃负NULL锛岄殣钘忓煙灏嗕笉浼氳娓叉煋銆 |
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽 |
public static function radioButton($name,$checked=false,$htmlOptions=array())
{
if($checked)
$htmlOptions['checked']='checked';
else
unset($htmlOptions['checked']);
$value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
self::clientChange('click',$htmlOptions);
if(array_key_exists('uncheckValue',$htmlOptions))
{
$uncheck=$htmlOptions['uncheckValue'];
unset($htmlOptions['uncheckValue']);
}
else
$uncheck=null;
if($uncheck!==null)
{
// 娣诲姞涓涓殣钘忓煙锛屼互渚垮綋鍗曢夋寜閽病鏈夎閫変腑鏃讹紝浠嶇劧浼氭彁浜や竴涓
if(isset($htmlOptions['id']) && $htmlOptions['id']!==false)
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
else
$uncheckOptions=array('id'=>false);
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
}
else
$hidden='';
// 娣诲姞涓涓殣钘忓煙锛屼互渚垮綋鍗曢夋寜閽病鏈夎閫変腑鏃讹紝浠嶇劧浼氭彁浜や竴涓
return $hidden . self::inputField('radio',$name,$value,$htmlOptions);
}
鐢熸垚涓涓崟閫夋寜閽
public static string radioButtonList(string $name, string $select, array $data, array $htmlOptions=array (
))
| ||
$name | string | 鍗曢夋寜閽垪琛ㄧ殑鍚嶇О銆 涓鏃﹁〃鍗曡鎻愪氦锛屼綘鍙互浣跨敤杩欎釜鍚嶇О鏉ヨ幏鍙栬閫変腑鐨勫笺 |
$select | string | 琚変腑鐨勫崟閫夋寜閽 |
$data | array | 鐢ㄤ簬鐢熸垚鍗曢夋寜閽垪琛ㄧ殑鍊-鏍囩瀵广 娉ㄦ剰锛屽煎皢鑷姩琚獺TML缂栫爜锛岀劧鑰屾爣绛句笉浼氥 |
$htmlOptions | array | 闄勫姞鐨凥TML閫夐」銆
閫夐」灏嗕細搴旂敤浜庢瘡涓崟閫夋寜閽笂锛屼笅闈㈣繖浜涚壒瀹氱殑閫夐」鏄璁ゅ彲鐨勶細
|
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽垪琛 |
public static function radioButtonList($name,$select,$data,$htmlOptions=array())
{
$template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
$separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:"<br/>\n";
unset($htmlOptions['template'],$htmlOptions['separator']);
$labelOptions=isset($htmlOptions['labelOptions'])?$htmlOptions['labelOptions']:array();
unset($htmlOptions['labelOptions']);
$items=array();
$baseID=self::getIdByName($name);
$id=0;
foreach($data as $value=>$label)
{
$checked=!strcmp($value,$select);
$htmlOptions['value']=$value;
$htmlOptions['id']=$baseID.'_'.$id++;
$option=self::radioButton($name,$checked,$htmlOptions);
$label=self::label($label,$htmlOptions['id'],$labelOptions);
$items[]=strtr($template,array('{input}'=>$option,'{label}'=>$label));
}
return self::tag('span',array('id'=>$baseID),implode($separator,$items));
}
鐢熸垚涓涓崟閫夋寜閽垪琛ㄣ 涓涓崟閫夋寜閽垪琛ㄥ氨鍍忔槸涓涓澶嶉夋鍒楄〃锛 鍙槸瀹冩槸鍏佽閫変腑鍗曚釜銆.
public static void refresh(integer $seconds, string $url='')
| ||
$seconds | integer | 鍒锋柊椤甸潰鍓嶇瓑寰呯殑绉掓暟 |
$url | string | 瑕佽烦杞殑URL锛屽鏋滄槸绌猴紝鎰忓懗鐫褰撳墠椤点 |
public static function refresh($seconds, $url='')
{
$content="$seconds";
if($url!=='')
$content.=';'.self::normalizeUrl($url);
Yii::app()->clientScript->registerMetaTag($content,null,'refresh');
}
娉ㄥ唽涓涓滃埛鏂扳漨eta鏍囩銆 杩欎釜鏂规硶鍙互鍦ㄤ竴涓鍥剧殑浠讳綍鍦版柟琚敜璧枫 瀹冨皢鐢CClientScript鏉ユ敞鍐屼竴涓滃埛鏂扳漨eta鏍囩锛 鍙互璁╅〉闈㈠湪鐗瑰畾鐨勭鏁板悗鍒锋柊銆
public static string renderAttributes(array $htmlOptions)
| ||
$htmlOptions | array | 灏嗚娓叉煋鐨勫睘鎬 |
{return} | string | 娓叉煋缁撴灉 |
public static function renderAttributes($htmlOptions)
{
static $specialAttributes=array(
'checked'=>1,
'declare'=>1,
'defer'=>1,
'disabled'=>1,
'ismap'=>1,
'multiple'=>1,
'nohref'=>1,
'noresize'=>1,
'readonly'=>1,
'selected'=>1,
);
if($htmlOptions===array())
return '';
$html='';
if(isset($htmlOptions['encode']))
{
$raw=!$htmlOptions['encode'];
unset($htmlOptions['encode']);
}
else
$raw=false;
if($raw)
{
foreach($htmlOptions as $name=>$value)
{
if(isset($specialAttributes[$name]))
{
if($value)
$html .= ' ' . $name . '="' . $name . '"';
}
else if($value!==null)
$html .= ' ' . $name . '="' . $value . '"';
}
}
else
{
foreach($htmlOptions as $name=>$value)
{
if(isset($specialAttributes[$name]))
{
if($value)
$html .= ' ' . $name . '="' . $name . '"';
}
else if($value!==null)
$html .= ' ' . $name . '="' . self::encode($value) . '"';
}
}
return $html;
}
娓叉煋HTML鏍囩灞炴с 鑷1.1.5鐗堣捣锛屽睘鎬у间负null鐨勫睘鎬у皢涓嶄細琚覆鏌撱 鐗规畩鐨勫睘鎬э紝鍍'checked', 'disabled', 'readonly'锛 灏嗚娓叉煋涓轰负瀹冧滑鐩稿搴旂殑甯冨皵鍊笺
public static string resetButton(string $label='reset', array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function resetButton($label='reset',$htmlOptions=array())
{
$htmlOptions['type']='reset';
return self::button($label,$htmlOptions);
}
鐢熸垚涓涓噸缃寜閽
鍙傝
public static string resolveName(CModel $model, string &$attribute)
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
{return} | string | 杈撳叆鏍囩鐨勫悕绉 |
public static function resolveName($model,&$attribute)
{
if(($pos=strpos($attribute,'['))!==false)
{
if($pos!==0) // e.g. name[a][b]
return get_class($model).'['.substr($attribute,0,$pos).']'.substr($attribute,$pos);
if(($pos=strrpos($attribute,']'))!==false && $pos!==strlen($attribute)-1) // e.g. [a][b]name
{
$sub=substr($attribute,0,$pos+1);
$attribute=substr($attribute,$pos+1);
return get_class($model).$sub.'['.$attribute.']';
}
if(preg_match('/\](\w+\[.*)$/',$attribute,$matches))
{
$name=get_class($model).'['.str_replace(']','][',trim(strtr($attribute,array(']['=>']','['=>']')),']')).']';
$attribute=$matches[1];
return $name;
}
}
return get_class($model).'['.$attribute.']';
}
鐢熸垚涓涓ā鍨嬪睘鎬х殑杈撳叆鍚嶇О 娉ㄦ剰锛岃皟鐢ㄦ鏂规硶鍚庯紝濡傛灉鍚嶇О鍖呭惈鏂规嫭鍙峰墠鐨勭湡瀹炲睘鎬х殑鍚嶇О锛堜富瑕佺敤浜庤〃鏍艰緭鍏ワ級锛 灞炴х殑鍚嶇О鍙兘浼氳淇敼銆
public static void resolveNameID(CModel $model, string &$attribute, array &$htmlOptions)
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | HTML閫夐」 |
public static function resolveNameID($model,&$attribute,&$htmlOptions)
{
if(!isset($htmlOptions['name']))
$htmlOptions['name']=self::resolveName($model,$attribute);
if(!isset($htmlOptions['id']))
$htmlOptions['id']=self::getIdByName($htmlOptions['name']);
else if($htmlOptions['id']===false)
unset($htmlOptions['id']);
}
鐢熸垚涓涓ā鍨嬪睘鎬х殑杈撳叆妗嗗悕绉板拰ID銆 杩欎釜鏂规硶浼氭牴鎹缃殑'name'鍜'id'灞炴ф潵鏇存柊HTML鐨勯夐」銆 姝ゆ柟娉曚篃鍙互淇敼灞炴х殑鍚嶇О锛 濡傛灉鍚嶇О涓寘鍚柟鎷彿鐨勮瘽锛堜富瑕佺敤浜庤〃鏍艰緭鍏ワ級銆
public static mixed resolveValue(CModel $model, string $attribute)
| ||
$model | CModel | 鏁版嵁妯″瀷 |
$attribute | string | 灞炴у悕 |
{return} | mixed | 灞炴у |
public static function resolveValue($model,$attribute)
{
if(($pos=strpos($attribute,'['))!==false)
{
if($pos===0) // [a]name[b][c], should ignore [a]
{
if(preg_match('/\](\w+)/',$attribute,$matches))
$attribute=$matches[1];
if(($pos=strpos($attribute,'['))===false)
return $model->$attribute;
}
$name=substr($attribute,0,$pos);
$value=$model->$name;
foreach(explode('][',rtrim(substr($attribute,$pos+1),']')) as $id)
{
if(is_array($value) && isset($value[$id]))
$value=$value[$id];
else
return null;
}
return $value;
}
else
return $model->$attribute;
}
璇勪及妯″瀷鐨勫睘鎬у笺 杩欎釜鏂规硶璁ゅ彲涓涓暟缁勬牸寮忕殑灞炴у悕銆 渚嬪锛屽鏋滃睘鎬у悕涓'name[a][b]', 閭d箞"$model->name['a']['b']"鐨勫煎皢琚繑鍥炪
public static string script(string $text)
| ||
$text | string | 灏嗚瀵嗗皝鐨凧avascript |
{return} | string | 瀵嗗皝濂界殑Javascript |
public static function script($text)
{
return "<script type=\"text/javascript\">\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n</script>";
}
灏嗙粰瀹氱殑Javascript瀵嗗皝鍒颁竴涓猻cript鏍囩涓
public static string scriptFile(string $url)
| ||
$url | string | JavaScript鏂囦欢鐨刄RL |
{return} | string | JavaScript鏂囦欢鏍囩 |
public static function scriptFile($url)
{
return '<script type="text/javascript" src="'.self::encode($url).'"></script>';
}
鍖呭惈涓涓狫avascript鏂囦欢銆
public static string statefulForm(mixed $action='', string $method='post', array $htmlOptions=array (
))
| ||
$action | mixed | 琛ㄥ崟鐨刟ction閾炬帴(鍏充簬杩欎釜鍙傛暟璇﹁normalizeUrl銆) |
$method | string | 琛ㄥ崟鏂规硶(渚嬪 post, get) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴(璇峰弬闃tag)銆 |
{return} | string | 鐢熸垚鐨勮〃鍗曟爣绛俱 |
public static function statefulForm($action='',$method='post',$htmlOptions=array())
{
return self::form($action,$method,$htmlOptions)."\n".
self::tag('div',array('style'=>'display:none'),self::pageStateField(''));
}
鐢熸垚涓涓湁鐘舵佺殑琛ㄥ崟鏍囩銆 涓涓湁鐘舵佺殑琛ㄥ崟鏍囩绫讳技浜form锛岄櫎杩欎互澶栵紝 瀹冭繕鍙互娓叉煋涓涓檮鍔犵殑鐢ㄤ簬鎸佷箙瀛樺偍椤甸潰鐘舵佺殑闅愯棌鍩熴 濡傛灉浣犳兂鍦ㄨ〃鍗曟彁浜ょ殑鏃跺欏彲浠ヨ闂〉闈㈡寔涔呯姸鎬侊紝閭d箞浣犲氨鍙互鐢ㄨ繖涓柟娉曠敓鎴愪竴涓〃鍗曟爣绛
public static string submitButton(string $label='submit', array $htmlOptions=array (
))
| ||
$label | string | 鎸夐挳鐨勬爣绛 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬寜閽爣绛 |
public static function submitButton($label='submit',$htmlOptions=array())
{
$htmlOptions['type']='submit';
return self::button($label,$htmlOptions);
}
鐢熸垚涓涓彁浜ゆ寜閽
鍙傝
public static string tag(string $tag, array $htmlOptions=array (
), mixed $content=false, boolean $closeTag=true)
| ||
$tag | string | 鏍囩鍚 |
$htmlOptions | array | 鍏冪礌鐨勫睘鎬с傚睘鎬у煎皢琚encode()HTML缂栫爜銆 濡傛灉缁欎簡涓涓'encode'灞炴э紝鑰屼笖灞炴у间负false鐨勮瘽锛 鍏朵綑鐨勫睘鎬у煎皢涓嶄細琚獺TML缂栫爜銆 鑷1.1.5璧凤紝灞炴у间负null鐨勫睘鎬у皢涓嶄細琚覆鏌撱 |
$content | mixed | 琚檮鍔犲湪寮鍚拰闂悎鐨勫厓绱犳爣璁颁箣闂寸殑鍐呭銆傚畠涓嶄細琚獺TML缂栫爜銆 濡傛灉鏄痜alse锛屾剰鍛崇潃娌℃湁涓讳綋鍐呭銆 |
$closeTag | boolean | 鏄惁鐢熸垚缁撴潫鏍囪銆 |
{return} | string | 鐢熸垚鐨凥TML鍏冪礌鏍囩 |
public static function tag($tag,$htmlOptions=array(),$content=false,$closeTag=true)
{
$html='<' . $tag . self::renderAttributes($htmlOptions);
if($content===false)
return $closeTag ? $html.' />' : $html.'>';
else
return $closeTag ? $html.'>'.$content.'</'.$tag.'>' : $html.'>'.$content;
}
鐢熸垚涓涓狧TML鍏冪礌銆
public static string textArea(string $name, string $value='', array $htmlOptions=array (
))
| ||
$name | string | 鏂囨湰妗嗙殑鍚嶇О |
$value | string | 鏂囨湰妗嗙殑鍊 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬枃鏈 |
public static function textArea($name,$value='',$htmlOptions=array())
{
$htmlOptions['name']=$name;
if(!isset($htmlOptions['id']))
$htmlOptions['id']=self::getIdByName($name);
else if($htmlOptions['id']===false)
unset($htmlOptions['id']);
self::clientChange('change',$htmlOptions);
return self::tag('textarea',$htmlOptions,isset($htmlOptions['encode']) && !$htmlOptions['encode'] ? $value : self::encode($value));
}
鐢熸垚涓涓枃鏈銆
public static string textField(string $name, string $value='', array $htmlOptions=array (
))
| ||
$name | string | 杈撳叆妗嗙殑鍚嶇О |
$value | string | 杈撳叆妗嗙殑鍊 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴с傞櫎浜嗘甯哥殑HTML灞炴у锛 涓浜涚壒娈婄殑灞炴т篃鏄彲浠ョ殑(璇峰弬闃clientChange鍜tag鏉ヤ簡瑙f洿澶氳缁嗕俊鎭) |
{return} | string | 鐢熸垚鐨勬枃鏈緭鍏ユ |
public static function textField($name,$value='',$htmlOptions=array())
{
self::clientChange('change',$htmlOptions);
return self::inputField('text',$name,$value,$htmlOptions);
}
鐢熸垚涓涓枃鏈緭鍏ユ銆
public static mixed value(mixed $model, string $attribute, mixed $defaultValue=NULL)
| ||
$model | mixed | 妯″瀷銆傚彲浠ユ槸涓涓璞′篃鍙互鏄竴涓暟缁勩 |
$attribute | string | 灞炴у悕(鐢ㄧ偣杩炴帴鐨勫閲嶅睘鎬) |
$defaultValue | mixed | 褰撳睘鎬т笉瀛樺湪鏃惰繑鍥炵殑榛樿鍊 |
{return} | mixed | n灞炴у |
public static function value($model,$attribute,$defaultValue=null)
{
foreach(explode('.',$attribute) as $name)
{
if(is_object($model))
$model=$model->$name;
else if(is_array($model) && isset($model[$name]))
$model=$model[$name];
else
return $defaultValue;
}
return $model;
}
璇勪及缁欏畾鐨勬ā鍨嬩腑鎸囧畾灞炴х殑鍊笺 灞炴у悕鍙互鐢ㄧ偣璇硶鐨勫舰寮忕粰鍑恒備緥濡傦紝 濡傛灉灞炴ф槸"author.firstName"锛岃繖涓柟娉曞皢杩斿洖"$model->author->firstName"鐨勫笺 濡傛灉灞炴т笉瀛樺湪鎴栬呭湪涓棿琚墦鏂紝 灏嗕細杩斿洖涓涓粯璁ゅ硷紙琚湅浣滄槸鏈鍚庝竴涓弬鏁帮級(渚嬪$model->author鏄痭ull). 妯″瀷鍙互鏄竴涓璞′篃鍙互鏄竴涓暟缁勩 濡傛灉鏄暟缁勶紝灞炴ц鐪嬩綔鏄暟缁勭殑涓涓敭鍚嶃 渚嬪"author.firstName"锛屾剰鍛崇潃鏄暟缁勫"$model['author']['firstName']"銆