public function checkUniquePair($attribute, $params)
 {
     $configparameter = ConfigParameter::findOne(['ID' => $this->ID]);
     if (!isset($configparameter)) {
         $configparameter = ConfigParameter::findOne(['config_ID' => $this->config_ID, 'parameter_ID' => $this->parameter_ID]);
         if (isset($configparameter)) {
             $this->addError('parameter_ID', 'Parameter already exist in this Config-Set');
         }
     }
 }
 /**
  * @param $params
  * @return ActiveDataProvider
  */
 public function search($params, $config_id)
 {
     $query = ConfigParameter::find()->where(['config_ID' => $config_id]);
     $query->joinWith(['parameter']);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['ID' => $this->ID]);
     $query->andFilterWhere(['like', 'parameter_ID', $this->parameter_ID])->andFilterWhere(['like', 'value', $this->value])->andFilterWhere(['like', 'sys_parameter.parametername', $this->getAttribute('parameter.parametername')]);
     $dataProvider->sort->attributes['parameter.parametername'] = ['asc' => ['sys_parameter.parametername' => SORT_ASC], 'desc' => ['sys_parameter.parametername' => SORT_DESC]];
     return $dataProvider;
 }
 /** @inheritdoc */
 public function bootstrap($app)
 {
     /** @var $module Module */
     if ($app->hasModule('configmanager') && ($module = $app->getModule('configmanager')) instanceof Module) {
         $this->_modelMap = array_merge($this->_modelMap, $module->modelMap);
         foreach ($this->_modelMap as $name => $definition) {
             $class = "chd7well\\configmanager\\models\\" . $name;
             \Yii::$container->set($class, $definition);
             $modelName = is_array($definition) ? $definition['class'] : $definition;
             $module->modelMap[$name] = $modelName;
             if (in_array($name, ['Configmanager'])) {
                 \Yii::$container->set($name . 'Query', function () use($modelName) {
                     return $modelName::find();
                 });
             }
         }
     }
     $app->get('i18n')->translations['configmanager*'] = ['class' => PhpMessageSource::className(), 'basePath' => __DIR__ . '/messages'];
     //Load parameters from database
     $parameters = Parameter::find()->where(['bootstrap' => '1'])->all();
     //only on bootstrap are necessary
     foreach ($parameters as $para) {
         $this->setParameter($app, $para->parametername, $para->value);
     }
     $is_config_set = Parameter::findOne(['parametername' => 'chd7well/configmanager/config_set']);
     $is_user_config_set = Parameter::findOne(['parametername' => 'chd7well/configmanager/user_parameter']);
     if (get_class(\Yii::$app) === 'yii\\web\\Application') {
         if (isset($app->params['chd7well/configmanager/config_set']) && isset($app->params['chd7well/configmanager/user_parameter']) && $app->params['chd7well/configmanager/config_set'] == 1 && $app->params['chd7well/configmanager/user_parameter'] == 1 && isset(\Yii::$app->user->id)) {
             $configuser = ConfigUser::findOne(['user_ID' => \Yii::$app->user->id]);
             if (isset($configuser)) {
                 $config = Config::findOne(['ID' => $configuser->config_ID]);
                 $parent_parameters = ConfigParameter::find()->where(['config_ID' => $config->parent_ID])->all();
                 $user_parameters = ConfigParameter::find()->where(['config_ID' => $config->ID])->all();
                 foreach ($parent_parameters as $para) {
                     $this->setParameter($app, $para->parameter->parametername, $para->value);
                 }
                 foreach ($user_parameters as $para) {
                     $this->setParameter($app, $para->parameter->parametername, $para->value);
                 }
             }
         }
     }
 }
 /**
  * Deletes an existing Parameter model.
  * If deletion is successful, the browser will be redirected to the 'index' page.
  * @param  integer $id
  * @return mixed
  */
 public function actionDeleteconfigparameter($id)
 {
     $configparameter = ConfigParameter::findOne(['ID' => $id]);
     $configsetid = $configparameter->config_ID;
     $configparameter->delete();
     return $this->redirect(['details', 'id' => $configsetid]);
 }