initArtboxButton('options', 'align-justify'); $this->initArtboxButton('seo', 'leaf'); } /** * Generate buttons for option list of current group * and link to alias update * * @param $name * @param $iconName * @param array $additionalOptions */ protected function initArtboxButton($name, $iconName, $additionalOptions = []) { if (!isset($this->buttons[$name]) && strpos($this->template, '{' . $name . '}') !== false) { $this->buttons[$name] = function ($url, $model, $key) use ($name, $iconName, $additionalOptions) { switch ($name) { case 'options': $title = Yii::t('yii', 'Options'); $link = str_replace('option-group', 'option', $url); $link = str_replace('options', 'index', $link); $link = str_replace('?id', '?group_id', $link); break; case 'seo': $title = Yii::t('yii', 'Seo'); $link = [ 'alias/view', 'id' => $model->lang->alias_id, ]; break; default: $title = ucfirst($name); $link = $url; } $options = array_merge([ 'title' => $title, 'aria-label' => $title, 'data-pjax' => '0', ], $additionalOptions, $this->buttonOptions); $icon = Html::tag('span', '', ['class' => "glyphicon glyphicon-$iconName"]); return Html::a($icon, $link, $options); }; } } }