Ejemplo n.º 1
0
 public function actionEdit($id)
 {
     $model = Products::findOne(['id' => $id]);
     $all_cats = ModArendaTree::find()->asArray()->all();
     if ($model->load(Yii::$app->request->post())) {
         $model->imageFile = UploadedFile::getInstance($model, 'imageFile');
         if ($model->validate()) {
             if (!empty($model->imageFile)) {
                 $model->upload();
                 $model->image = md5($model->imageFile->baseName . date("Y-m-d-H-i-s")) . '.' . $model->imageFile->extension;
             }
             if ($model->save()) {
                 $last_id = $_GET['id'];
                 foreach (Yii::$app->request->post('character') as $key => $value) {
                     $model1 = CharacteristicsProducts::findOne(['product_id' => $last_id, 'character_id' => $key]);
                     if (!$model1) {
                         $model1 = new CharacteristicsProducts();
                         $model1->product_id = $last_id;
                     }
                     $model1->character_id = $key;
                     $model1->value = empty($value) ? 'none' : $value;
                     $model1->save();
                 }
             }
             // form inputs are valid, do something here
         }
     }
     $result = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS characteristic_name'])->where(['cat_id' => $model->cat_id])->leftJoin('characteristics', 'characteristics_for_cats.character_id=characteristics.id')->leftJoin('characteristics_products', 'characteristics_for_cats.character_id=characteristics_products.character_id')->asArray()->all();
     if (empty($result)) {
         $cat = ModArendaTree::findOne(['id' => $model->cat_id]);
         while ($cat->parent_id != 0) {
             $result = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS characteristic_name', 'characteristics_products.value AS VALUE'])->where(['cat_id' => $cat->parent_id])->leftJoin('characteristics', 'characteristics_for_cats.character_id=characteristics.id')->leftJoin('characteristics_products', 'characteristics_for_cats.character_id=characteristics_products.character_id AND characteristics_products.product_id="' . $_GET['id'] . '"')->asArray()->all();
             if (!empty($result)) {
                 break;
             }
             $cat = ModArendaTree::findOne(['id' => $cat->parent_id]);
         }
     } else {
     }
     $html = '';
     if (!empty($result)) {
         foreach ($result as $key => $value) {
             $VAL = !empty($value['VALUE']) ? $value['VALUE'] : '';
             $html .= '
             <div class="form-group">
                 <label><p>' . $value['characteristic_name'] . '</p>
                 <input value="' . $VAL . '" type="text" class="form-control" name="character[' . $value['character_id'] . ']" >
                 </label>
             </div>
             ';
         }
     }
     return $this->render('edit', ['model' => $model, 'all_cats' => $all_cats, 'html' => $html]);
 }
Ejemplo n.º 2
0
 public function actionViewcharact($id)
 {
     @session_start();
     $_SESSION['menu'] = 3;
     $model = new Characteristics();
     $model_data = new CharacteristicsData();
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             if ($model->save()) {
                 return $this->redirect('charact');
             }
         }
     }
     if (Yii::$app->request->post('delete_character_data')) {
         $del_items = Yii::$app->request->post('delete_character_data');
         foreach ($del_items as $key => $value) {
             $character_data = CharacteristicsData::findOne(['id' => $key]);
             $character_data->delete();
         }
     }
     if (Yii::$app->request->post('delete_character')) {
         $del_items = Yii::$app->request->post('delete_character');
         foreach ($del_items as $key => $value) {
             $character = Characteristics::findOne(['id' => $key]);
             $character->delete();
         }
         return $this->redirect('/tree/admin/charact');
     }
     if (!empty($model_data->load(Yii::$app->request->post()))) {
         $data = Yii::$app->request->post();
         if (!empty($data['CharacteristicsData']['name'])) {
             foreach ($data['CharacteristicsData']['name'] as $key => $value) {
                 $model_data = new CharacteristicsData();
                 $model_data->name = $data['CharacteristicsData']['name'][$key];
                 if (empty($model_data->name)) {
                     continue;
                 }
                 $model_data->parent_id = $data['CharacteristicsData']['parent_id'][$key];
                 if ($model_data->save()) {
                     $session = Yii::$app->session;
                     $session->setFlash('char_data', '<div class="alert alert-success">Вы успешно добавили данные.</div>');
                     $idd = Yii::$app->db->getLastInsertID();
                     $model1 = new ModArendaTree();
                     $result = $model1->find()->all();
                     $batchmas = [];
                     foreach ($result as $key => $value) {
                         $batchmas[] = ['character_data_id' => $idd, 'cat_id' => $value->id];
                     }
                     //Yii :: $app -> db -> createCommand ()-> batchInsert ( 'characteristics_data_for_cats' ,  [  'character_data_id' ,  'cat_id' ],$batchmas)-> execute ();
                 }
             }
         }
     }
     if (Yii::$app->request->post()) {
         $char_id = key(Yii::$app->request->post('CharacteristicsData')['parent_id']);
         CharacteristicsForCats::deleteAll(['character_id' => $char_id]);
         if (Yii::$app->request->post('cats')) {
             foreach (Yii::$app->request->post('cats') as $key3 => $value3) {
                 $char_for_cats = new CharacteristicsForCats();
                 $char_for_cats->character_id = $char_id;
                 $char_for_cats->cat_id = $key3;
                 $char_for_cats->save();
             }
         }
     }
     //получаем список характеристик
     $characters = $model->find()->where(['id' => $id])->asArray()->all();
     foreach ($characters as $key => $value) {
         $characters_data = new CharacteristicsData();
         $characters_list = $characters_data->find()->where(['parent_id' => $value['id']])->asArray()->orderBy(['name' => SORT_ASC])->all();
         $characters[$key]['characters_data'] = $characters_list;
     }
     //Получаем активные категории
     $active_cats = CharacteristicsForCats::find()->where(['character_id' => $id])->asArray()->all();
     //получаем категории и подкатегории
     $cats_model = new ModArendaTree();
     $cats = $cats_model->view_cat_for_characters($cats_model->get_cat(), 0, $active_cats);
     return $this->render('view_charact', ['model' => $model, 'data' => $characters, 'characteristics_data' => $model_data, 'tree' => $cats]);
 }
Ejemplo n.º 3
0
 public function actionGetcharacteristics($id)
 {
     $result = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS characteristic_name'])->where(['cat_id' => $id])->leftJoin('characteristics', 'characteristics_for_cats.character_id=characteristics.id')->asArray()->all();
     if (empty($result)) {
         $cat = ModArendaTree::findOne(['id' => $id]);
         while ($cat->parent_id != 0) {
             $result = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS characteristic_name'])->where(['cat_id' => $cat->parent_id])->leftJoin('characteristics', 'characteristics_for_cats.character_id=characteristics.id')->asArray()->all();
             if (!empty($result)) {
                 break;
             }
             $cat = ModArendaTree::findOne(['id' => $cat->parent_id]);
         }
     } else {
     }
     if (!empty($result)) {
         $html = '';
         foreach ($result as $key => $value) {
             $html .= '
             <div class="form-group">
                 <label><p>' . $value['characteristic_name'] . '</p>
                 <input type="text" class="form-control" name="character[' . $value['character_id'] . ']" >
                 </label>
             </div>
             ';
         }
         return $html;
     } else {
         return 'empty';
     }
 }
Ejemplo n.º 4
0
 public function actionViewcharact($id)
 {
     @session_start();
     $_SESSION['menu'] = 3;
     $model = new Characteristics();
     $model_data = new CharacteristicsData();
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             if ($model->save()) {
                 return $this->redirect('charact');
             }
         }
     }
     if (Yii::$app->request->post('delete_character')) {
         $del_items = Yii::$app->request->post('delete_character');
         foreach ($del_items as $key => $value) {
             $character = Characteristics::findOne(['id' => $key]);
             $character->delete();
         }
         return $this->redirect('/tree/admin/charact');
     }
     if (Yii::$app->request->post()) {
         $char_id = $_GET['id'];
         CharacteristicsForCats::deleteAll(['character_id' => $char_id]);
         if (Yii::$app->request->post('cats')) {
             foreach (Yii::$app->request->post('cats') as $key3 => $value3) {
                 $char_for_cats = new CharacteristicsForCats();
                 $char_for_cats->character_id = $char_id;
                 $char_for_cats->cat_id = $key3;
                 $char_for_cats->save();
             }
         }
     }
     //получаем список характеристик
     $characters = $model->find()->where(['id' => $id])->asArray()->all();
     foreach ($characters as $key => $value) {
         $characters_data = new CharacteristicsData();
         $characters_list = $characters_data->find()->where(['parent_id' => $value['id']])->asArray()->orderBy(['name' => SORT_ASC])->all();
         $characters[$key]['characters_data'] = $characters_list;
     }
     //Получаем активные категории
     $active_cats = CharacteristicsForCats::find()->where(['character_id' => $id])->asArray()->all();
     //получаем категории и подкатегории
     $cats_model = new ModArendaTree();
     $cats = $cats_model->view_cat_for_characters($cats_model->get_cat(), 0, $active_cats);
     return $this->render('view_charact', ['model' => $model, 'data' => $characters, 'characteristics_data' => $model_data, 'tree' => $cats]);
 }