Yii рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CHtml рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Yii рдкрд░ рдПрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдк CHtml , CActiveForm рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдврд╛рдВрдЪреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдФрд░ рдирд╡реАрди рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореЗрд░рд╛ рдХрд╛рдо 2 рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдерд╛:


рдпрд╣рд╛рдБ рдирд┐рдореНрди рдХреЛрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рд╣реИрдмреНрд░реИрдЯ рдХреЗ рдмрд╛рдж рдХрд╛ рдХреЛрдб):

рдЫрд╡рд┐

<?php $form = $this -> beginWidget ( 'MActiveForm' , array ( <br/>
'id' => 'personal-form' , <br/>
'enableAjaxValidation' => false , <br/>
) ) ; <br/>
<br/>
?> <br/>
<?php echo $form -> errorSummary ( $model ) ; ?> <br/>
<br/>
<div class="row"><br/>
<?php echo $form -> labelEx ( $model , 'gender' ) ; ?> <br/>
<?php echo $form -> labelField ( $model , 'gender' ) ; ?> <br/>
<?php echo $form -> error ( $model , 'gender' ) ; ?> <br/>
</div><br/>
<br/>
<div class="row"><br/>
<?php echo $form -> labelEx ( $model , 'firstname' ) ; ?> <br/>
<?php echo $form -> labelField ( $model , 'firstname' ) ; ?> <br/>
<?php echo $form -> error ( $model , 'firstname' ) ; ?> <br/>
</div><br/>
<br/>
<div class="row"><br/>
<?php echo $form -> labelEx ( $model , 'secondname' ) ; ?> <br/>
<?php echo $form -> labelField ( $model , 'secondname' ) ; ?> <br/>
<?php echo $form -> error ( $model , 'secondname' ) ; ?> <br/>
</div><br/>
<br/>
<div class="row"><br/>
<?php echo $form -> labelEx ( $model , 'lastname' ) ; ?> <br/>
<?php echo $form -> labelField ( $model , 'lastname' ) ; ?> <br/>
<?php echo $form -> error ( $model , 'lastname' ) ; ?> <br/>
</div> <br/>
<? $this -> endWidget ( ) ; ?> <br/>


рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓рд╛ рдлрд╝реЙрд░реНрдо рд▓рд┐рдЦрд╛ рдерд╛, рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ yii рдореЗрдВ рдореИрдВ рдорд╛рдирдХ CActiveForm рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЕрдм рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдХреЗрд╡рд▓ MActiveForm рд╡рд┐рдЬреЗрдЯ):

<?php echo $form->labelField($model,'secondname'); ?>

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, CActiveForm CHTml рд╡рд░реНрдЧ рдХреЗ рд╕рдХреНрд░рд┐рдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╛рда рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рджрд░реНрдкрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ CHtml рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛
рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд▓реИрдмрд▓рдлрд┐рд▓реНрдб рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ (рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд▓реЗрдмрд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ)

<?php <br/>
<br/>
class MHtml extends CHtml<br/>
{ <br/>
static $msPublished = false ; // css js <br/>
<br/>
protected static function registerMHtmlAsset ( ) <br/>
{ <br/>
if ( ! MHtml :: $msPublished ) <br/>
{ <br/>
$path = Yii :: app ( ) -> getAssetManager ( ) -> publish ( Yii :: getPathOfAlias ( 'application.components.assets.mhtml' ) , false , - 1 , true ) ; // false, - asset ( ) <br/>
Yii :: app ( ) -> getClientScript ( ) -> registerScriptFile ( $path . '/mhtml.js' , CClientScript :: POS_END ) ; <br/>
Yii :: app ( ) -> getClientScript ( ) -> registerCssFile ( $path . '/mhtml.css' ) ; <br/>
MHtml :: $msPublished = true ; <br/>
} <br/>
} <br/>
public static function addClass ( $class , $htmlOptions = array ( ) ) <br/>
{ <br/>
if ( isset ( $htmlOptions [ "class" ] ) ) <br/>
$htmlOptions [ "class" ] .= " " . $class ; <br/>
else $htmlOptions [ "class" ] = $class ; <br/>
<br/>
return $htmlOptions ; <br/>
} <br/>
public static function labelField ( $name , $value = '' , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
return MHtml :: textField ( $name , $value , MHtml :: addClass ( "labelInput" , $htmlOptions ) ) ; <br/>
} <br/>
<br/>
public static function activeLabelField ( $model , $attribute , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
self :: resolveNameID ( $model , $attribute , $htmlOptions ) ; <br/>
self :: clientChange ( 'change' , $htmlOptions ) ; <br/>
return self :: activeInputField ( 'text' , $model , $attribute , MHtml :: addClass ( "labelInput" , $htmlOptions ) ) ; <br/>
} <br/>
<br/>
public static function textHint ( $text , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
<br/>
return MHtml :: tag ( 'div' , MHtml :: addClass ( "textHint_mh" , $htmlOptions ) , $text ) ; <br/>
} <br/>
} <br/>
?>
<?php <br/>
<br/>
class MHtml extends CHtml<br/>
{ <br/>
static $msPublished = false ; // css js <br/>
<br/>
protected static function registerMHtmlAsset ( ) <br/>
{ <br/>
if ( ! MHtml :: $msPublished ) <br/>
{ <br/>
$path = Yii :: app ( ) -> getAssetManager ( ) -> publish ( Yii :: getPathOfAlias ( 'application.components.assets.mhtml' ) , false , - 1 , true ) ; // false, - asset ( ) <br/>
Yii :: app ( ) -> getClientScript ( ) -> registerScriptFile ( $path . '/mhtml.js' , CClientScript :: POS_END ) ; <br/>
Yii :: app ( ) -> getClientScript ( ) -> registerCssFile ( $path . '/mhtml.css' ) ; <br/>
MHtml :: $msPublished = true ; <br/>
} <br/>
} <br/>
public static function addClass ( $class , $htmlOptions = array ( ) ) <br/>
{ <br/>
if ( isset ( $htmlOptions [ "class" ] ) ) <br/>
$htmlOptions [ "class" ] .= " " . $class ; <br/>
else $htmlOptions [ "class" ] = $class ; <br/>
<br/>
return $htmlOptions ; <br/>
} <br/>
public static function labelField ( $name , $value = '' , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
return MHtml :: textField ( $name , $value , MHtml :: addClass ( "labelInput" , $htmlOptions ) ) ; <br/>
} <br/>
<br/>
public static function activeLabelField ( $model , $attribute , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
self :: resolveNameID ( $model , $attribute , $htmlOptions ) ; <br/>
self :: clientChange ( 'change' , $htmlOptions ) ; <br/>
return self :: activeInputField ( 'text' , $model , $attribute , MHtml :: addClass ( "labelInput" , $htmlOptions ) ) ; <br/>
} <br/>
<br/>
public static function textHint ( $text , $htmlOptions = array ( ) ) <br/>
{ <br/>
MHtml :: registerMHtmlAsset ( ) ; <br/>
<br/>
return MHtml :: tag ( 'div' , MHtml :: addClass ( "textHint_mh" , $htmlOptions ) , $text ) ; <br/>
} <br/>
} <br/>
?>


рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рдЯреВрд▓рдЯрд┐рдк рдХреЗ рд╕рд╛рде рдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ textHint_mh рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ div рдмрдирд╛рддреЗ рд╣реИрдВред

рдФрд░ рдкрд╛рда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдмрд▓рдЗрдирдкреБрдЯ рдХреНрд▓рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ textHint_mh рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ div рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдБ рдРрд╕реА рднреНрд░рд╛рдордХ рдмрдХрд╡рд╛рд╕ рд╣реИред рдЕрдм рд╣рдореЗрдВ CActiveForm рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

<?php <br/>
<br/>
class MActiveForm extends CActiveForm<br/>
{ <br/>
public function labelField ( $model , $attribute , $htmlOptions = array ( ) ) <br/>
{ <br/>
return MHtml :: activeLabelField ( $model , $attribute , $htmlOptions ) ; <br/>
} <br/>
}
<?php <br/>
<br/>
class MActiveForm extends CActiveForm<br/>
{ <br/>
public function labelField ( $model , $attribute , $htmlOptions = array ( ) ) <br/>
{ <br/>
return MHtml :: activeLabelField ( $model , $attribute , $htmlOptions ) ; <br/>
} <br/>
}


рдПрдХ рджреЛ рд▓рд╛рдЗрдиред рдФрд░ рдлрд┐рд░ js рдФрд░ css рдкреНрд▓реЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛

рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ

Source: https://habr.com/ru/post/In143800/


All Articles