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]); }
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]); }
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'; } }
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]); }