/** * @return array * @throws InvalidConfigException */ public function getColumns() { $columns = [['attribute' => 'id'], ['attribute' => 'message', 'format' => 'raw', 'value' => function (SourceMessage $model) { return Html::a(Html::encode($model->message), ['update', 'id' => $model->id], ['data-pjax' => 0]); }]]; /** @var \metalguardian\i18n\components\I18n $i18n */ $i18n = Yii::$app->getI18n(); if (!$i18n instanceof I18n) { throw new InvalidConfigException(Module::t('I18n component have to be instance of metalguardian\\i18n\\components\\I18n')); } foreach ($i18n->languages as $language) { $columns[] = ['attribute' => 'translation', 'label' => Module::t('Translation[{language}]', ['language' => $language]), 'value' => function (SourceMessage $data) use($language) { return isset($data->messages[$language]) ? Html::encode($data->messages[$language]->translation) : null; }, 'filter' => Html::activeTextInput($this, 'translation[' . $language . ']', ['class' => 'form-control'])]; } $columns[] = ['attribute' => 'category', 'filter' => \yii\helpers\ArrayHelper::map(SourceMessage::getCategories(), 'category', 'category'), 'options' => ['class' => 'col-sm-1']]; return $columns; }