Пример #1
0
 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]);
 }
Пример #2
0
 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();
 }
Пример #3
0
 public function init()
 {
     parent::init();
     $this->_owner = Instance::ensure($this->_owner, Params::className());
 }