Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 10 |
CRAP | |
0.00% |
0 / 74 |
| ActiveField | |
0.00% |
0 / 1 |
|
0.00% |
0 / 10 |
210.00 | |
0.00% |
0 / 74 |
| checkboxTree | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 20 |
|||
| dateInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| datetimeInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| emailInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| imageInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| numberInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| passwordInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| rangeInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| timeInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| urlInput | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
| <?php | |
| namespace common\widgets; | |
| use Yii; | |
| use yii\base\Component; | |
| use yii\base\ErrorHandler; | |
| use yii\helpers\ArrayHelper; | |
| use common\helpers\Html; | |
| use yii\base\Model; | |
| use yii\web\JsExpression; | |
| /** | |
| * ActiveField represents a form input field within an [[ActiveForm]]. | |
| * | |
| * @author Maciej Klemarczyk | |
| */ | |
| class ActiveField extends \yii\bootstrap\ActiveField | |
| { | |
| public function checkboxTree($items, $valueSelector, $labelSelector, $itemsSelector, $options = []) | |
| { | |
| if (!isset($options['item'])) { | |
| $itemOptions = isset($options['itemOptions']) ? $options['itemOptions'] : []; | |
| $encode = ArrayHelper::getValue($options, 'encode', true); | |
| $options['item'] = function ($index, $label, $name, $checked, $value, $level) use ($itemOptions, $encode) { | |
| $options = array_merge([ | |
| 'label' => $encode ? Html::encode($label) : $label, | |
| 'value' => $value | |
| ], $itemOptions); | |
| $margin = $level * 20; | |
| return "<div class=\"checkbox\" style=\"margin-left: {$margin}px\">" . Html::checkbox($name, $checked, $options) . '</div>'; | |
| }; | |
| } | |
| if ($this->form->validationStateOn === ActiveForm::VALIDATION_STATE_ON_INPUT) { | |
| $this->addErrorClassIfNeeded($options); | |
| } | |
| $this->addAriaAttributes($options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeCheckboxTree($this->model, $this->attribute, $items, $valueSelector, $labelSelector, $itemsSelector, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a date input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function dateInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('date', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a datetime input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function datetimeInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('datetime', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a email input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function emailInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('email', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a image input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function imageInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('image', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a number input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function numberInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('number', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a password input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function passwordInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('password', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a range input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function rangeInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('range', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a time input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function timeInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('time', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| /** | |
| * Renders a url input. | |
| * This method will generate the "name" and "value" tag attributes automatically for the model attribute | |
| * unless they are explicitly specified in `$options`. | |
| * @param array $options the tag options in terms of name-value pairs. These will be rendered as | |
| * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]]. | |
| * @return static the field object itself | |
| */ | |
| public function urlInput($options = []) | |
| { | |
| $options = array_merge($this->inputOptions, $options); | |
| $this->adjustLabelFor($options); | |
| $this->parts['{input}'] = Html::activeInput('url', $this->model, $this->attribute, $options); | |
| return $this; | |
| } | |
| } |