public function actionPreview() { // prepare file params data provider $fileParams = \Yii::$app->params->getFileParams(); $fileParamKeys = array_keys($fileParams); $fileParamsArray = array_map(function ($key) use($fileParams) { $scopeSeparatorPos = strpos($key, '.'); return ['scope' => $scopeSeparatorPos === false ? 'NULL' : substr($key, 0, $scopeSeparatorPos), 'code' => $scopeSeparatorPos === false ? $key : substr($key, $scopeSeparatorPos + 1, strlen($key)), 'value' => $fileParams[$key]]; }, $fileParamKeys); $fileParams = new \yii\data\ArrayDataProvider(['allModels' => $fileParamsArray]); // prepare db params data provider $dbParams = new \yii\data\ActiveDataProvider(['query' => Params::find()]); return $this->render('index', ['fileParams' => $fileParams, 'dbParams' => $dbParams]); }
public function run() { Pjax::begin(['enablePushState' => false, 'formSelector' => $this->getFormId()]); if (\Yii::$app->session->getFlash('yii2-params-updated')) { // TODO: review this custom alert code $closeButton = Html::button('×', ['data-dismiss' => 'alert', 'aria-hidden' => 'true', 'class' => 'close']); echo Html::tag('div', $closeButton . "Params updated successfully!", ['class' => 'alert-info alert fade in']); } /** @var \zarv1k\params\models\DynamicParam[] $models */ $models = \zarv1k\params\models\Params::getDynamicModels(); $form = ActiveForm::begin(['id' => $this->getFormId(), 'action' => \Yii::$app->getUrlManager()->createUrl("{$this->_moduleId}/manage")]); /** @var ActiveField $activeField */ $activeField = \Yii::$container->get('yii\\widgets\\ActiveField'); // TODO: review get from di foreach ($models as $model) { echo $form->field($model, "[{$model->owner->id}]{$model->owner->code}", ['labelOptions' => ArrayHelper::merge($activeField->labelOptions, ['label' => $model->owner->description, 'title' => $model->owner->name]), 'inputOptions' => ArrayHelper::merge($activeField->inputOptions, ['placeholder' => $model->owner->description, 'title' => $model->owner->name])]); } echo Html::submitButton($this->getSubmitContent(), $this->getSubmitOptions()); ActiveForm::end(); Pjax::end(); }
public function init() { parent::init(); $this->_owner = Instance::ensure($this->_owner, Params::className()); }