/** * 设置带icon的文本或者密码输入框 * @param $options * @param bool|false $isPassword * @return array [html内容,样式] */ private function textInputIcon(&$options, $isPassword = false) { if (isset($options['typehead'])) { unset($options['typehead']); //针对想使用typehead样式的特殊处理 $spanClassOption = []; Html::addCssClass($spanClassOption, 'input-group-addon'); if (isset($options['icon-align']) && $options['icon-align'] === 'right') { if (strpos($options['class'], 'input-circle') !== false) { Html::addCssClass($spanClassOption, 'input-circle-right'); } $content = $isPassword ? Html::activePasswordInput($this->model, $this->attribute, $options) : Html::activeTextInput($this->model, $this->attribute, $options); if (isset($options['icon-link'])) { $content .= Html::tag('span', Html::tag('a', Html::tag('i', '', ['class' => $options['icon']]), ['target' => '_blank', 'href' => $options['icon-link']]), $spanClassOption); unset($options['icon-link']); } else { $content .= Html::tag('span', Html::tag('i', '', ['class' => $options['icon']]), $spanClassOption); } } else { if (strpos($options['class'], 'input-circle') !== false) { Html::addCssClass($spanClassOption, 'input-circle-left'); } if (isset($options['icon-link'])) { $content = Html::tag('span', Html::tag('a', Html::tag('i', '', ['class' => $options['icon']]), ['target' => '_blank', 'href' => $options['icon-link']]), $spanClassOption); unset($options['icon-link']); } else { $content = Html::tag('span', Html::tag('i', '', ['class' => $options['icon']]), $spanClassOption); } unset($options['icon']); $content .= $isPassword ? Html::activePasswordInput($this->model, $this->attribute, $options) : Html::activeTextInput($this->model, $this->attribute, $options); } $class = 'input-group'; } else { if (isset($options['icon-link'])) { $content = Html::tag('a', Html::tag('i', '', ['class' => $options['icon']]), ['target' => '_blank', 'href' => $options['icon-link']]); unset($options['icon-link']); } else { $content = Html::tag('i', '', ['class' => $options['icon']]); } unset($options['icon']); $content .= $isPassword ? Html::activePasswordInput($this->model, $this->attribute, $options) : Html::activeTextInput($this->model, $this->attribute, $options); $class = 'input-icon'; if (isset($options['icon-align']) && $options['icon-align'] === 'right') { $class .= ' right'; } } return [$content, $class]; }