/**
  * Creates a new OptionsList model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  *
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new OptionsList();
     $preset_id = null;
     if (Yii::$app->request->isPost) {
         $type_id = Yii::$app->request->post()['OptionsList']['type_id'];
         if ($type_id) {
             /**
              * @var $option_type OptionTypes
              * @var $preset      OptionPresets
              */
             $option_type = OptionTypes::find()->where(['id' => $type_id])->one();
             if ($option_type) {
                 $type_alias = $option_type->alias;
                 if (in_array($type_alias, ArrayHelper::merge(MyHelper::TYPES_WITH_PRESET_ARRAY, MyHelper::TYPES_WITH_MULTIPLE_PRESET_ARRAY))) {
                     $preset = new OptionPresets();
                     $preset->save();
                     $preset_id = $preset->id;
                 }
             }
         }
     }
     $appUrl = '/backend/';
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         if ($preset_id) {
             $model->preset_id = $preset_id;
             $model->save();
         }
         return $this->redirect(['update', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'appUrl' => $appUrl]);
     }
 }
 /**
  * Finds the OptionTypes model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return OptionTypes the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = OptionTypes::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Ejemplo n.º 3
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = OptionTypes::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'sort' => $this->sort]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'alias', $this->alias])->andFilterWhere(['like', 'active', $this->active]);
     return $dataProvider;
 }
Ejemplo n.º 4
0
    }
}
?>
	<div class="row">
		<div class="col-md-7">
			<div class="row">
				<div class="col-md-6">
					<?php 
echo $form->field($model, 'name')->textInput(['maxlength' => true]);
?>
				</div>
				<div class="col-md-6">

					<?php 
// получаем Типы параметров
$option_types = \porcelanosa\yii2options\models\OptionTypes::find()->all();
// формируем массив, с ключем равным полю 'id' и значением равным полю 'name'
$option_types_items = ArrayHelper::map($option_types, 'id', 'name');
?>
					<?php 
echo $form->field($model, 'type_id')->dropDownList($option_types_items, ['prompt' => 'Выберите тип поля']);
?>
					<!--<hr class="clearfix">-->
				</div>
			</div>
			<div class="row">
				<div class="col-md-6">
					<?php 
echo $form->field($model, 'alias')->textInput(['maxlength' => true]);
?>
					<?php 
Ejemplo n.º 5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getType()
 {
     return $this->hasOne(OptionTypes::className(), ['id' => 'type_id']);
 }
Ejemplo n.º 6
0
    return $ops;
    //return \yii\helpers\ArrayHelper::map($options, 'model', 'name');
}
?>
    <?php 
Pjax::begin();
?>
    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'pjax' => false, 'bordered' => true, 'striped' => false, 'condensed' => false, 'responsive' => true, 'hover' => true, 'export' => false, 'layout' => "{pager}\n{summary}\n{items}\n{summary}\n{pager}", 'columns' => [['attribute' => 'name'], ['attribute' => 'model', 'content' => function ($data) {
    //  формируем полное имя модели с namspace
    /*$mn = MyHelper::ADMIN_MODEL_NAMESPACE.$data->model;
      $m = new $mn();*/
    if ($data->model) {
        if (!preg_match('/\\-/', $data->model)) {
            return MyHelper::getModelFrontName($data->model);
        } else {
            return MyHelper::getComplexModelChildName($data->model);
        }
    } else {
        return Yii::t('app', 'NOT_MODEL');
    }
}, 'filter' => getModelsNameArray()], ['header' => 'Тип данных', 'attribute' => 'type_id', 'content' => function ($data) {
    $type = OptionTypes::find()->where(['id' => $data->type_id])->one();
    return $type->name;
}], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'sort', 'editableOptions' => ['header' => 'Порядок', 'inputType' => \kartik\editable\Editable::INPUT_SPIN, 'options' => ['pluginOptions' => ['min' => 0, 'max' => 5000]], 'formOptions' => ['action' => ['/options/optionslist/editsort']]], 'hAlign' => 'right', 'vAlign' => 'middle', 'width' => '100px', 'format' => ['decimal', 0]], ['class' => 'porcelanosa\\yii2togglecolumn\\ToggleColumn', 'attribute' => 'active', 'enableAjax' => true, 'header' => 'Показывать', 'contentOptions' => ['style' => 'width:120px; text-align: center;'], 'headerOptions' => ['class' => 'kartik-sheet-style']], ['class' => 'yii\\grid\\ActionColumn', 'header' => 'Действия', 'headerOptions' => ['width' => '100'], 'contentOptions' => ['style' => 'width:100px; text-align: center;'], 'template' => '{update}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{delete}']]]);
?>
    <?php 
Pjax::end();
?>
</div>