public function upload($cat_id) { if (!empty($this->imageFile)) { if ($this->validate()) { if (!file_exists("../web/images/cats_images/" . $cat_id)) { mkdir("../web/images/cats_images/" . $cat_id, 0777); } $image_name = md5($this->imageFile->baseName) . date('His') . '.' . $this->imageFile->extension; $this->imageFile->saveAs('images/cats_images/' . $cat_id . '/' . $image_name); $model = ImagesForCats::findOne(['cat_id' => $cat_id]); if (!empty($model)) { if (file_exists("../web/images/cats_images/" . $cat_id . '/' . $model->url)) { unlink("../web/images/cats_images/" . $cat_id . '/' . $model->url); } } if (empty($model)) { $model = new ImagesForCats(); } $model->url = $image_name; $model->cat_id = $cat_id; $model->save(); return true; } else { return false; } } }
public function actionEdit($id) { $model_upload = new UploadFile1(); $translit_model = new Functions(); if (Yii::$app->request->isPost) { $model_upload->imageFile = UploadedFile::getInstance($model_upload, 'imageFile'); if ($model_upload->upload($id)) { // file is uploaded successfully } } $icon = ImagesForCats::findOne(['cat_id' => $id]); @session_start(); $_SESSION['menu'] = 1; $model = new ModArendaTree(); $item = $model->findOne(['id' => $id]); if (Yii::$app->request->post()) { CharacteristicsForCats::deleteAll(['cat_id' => $id]); if (Yii::$app->request->post('cats')) { $cats = Yii::$app->request->post('cats'); foreach ($cats as $key => $value) { $model_ch = new CharacteristicsForCats(); $model_ch->cat_id = Yii::$app->request->post('ModArendaTree')['id']; $model_ch->character_id = $key; $model_ch->save(); } } CharacteristicsDataForCats::deleteAll(['cat_id' => $id]); if (Yii::$app->request->post('add_cat_for_character_data')) { $cats = Yii::$app->request->post('add_cat_for_character_data'); // CharacteristicsForCats::deleteAll(['cat_id'=>$id]); foreach ($cats as $key => $value) { $model_ch = new CharacteristicsDataForCats(); $model_ch->cat_id = Yii::$app->request->post('ModArendaTree')['id']; $model_ch->character_data_id = $key; $model_ch->save(); $char = CharacteristicsData::findOne(['id' => $key]); $model1 = CharacteristicsForCats::findOne(['character_id' => $char->parent_id, 'cat_id' => $id]); if (empty($model1)) { $model1 = new CharacteristicsForCats(); } $model1->cat_id = $id; $model1->character_id = $char->parent_id; $model1->save(); } } ArendaTypesForCats::deleteAll(['cat_id' => $id]); if (Yii::$app->request->post('add_cat_for_arenda_type')) { $cats = Yii::$app->request->post('add_cat_for_arenda_type'); foreach ($cats as $key => $value) { $model_ch = new ArendaTypesForCats(); $model_ch->cat_id = Yii::$app->request->post('ModArendaTree')['id']; $model_ch->arenda_type_id = $key; $model_ch->save(); } } } if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { $item = $model->findOne(['id' => $id]); $item->name = $model->name; $item->url = $item->url == $model->url ? $translit_model->translit($model->name) : $model->url; $item->parent_id = empty($model->parent_id) ? $item->parent_id : $model->parent_id; $item->active = $model->active; $item->use_name_for_ads = $model->use_name_for_ads; $item->name_for_ads = $model->name_for_ads; $item->use_rub_km = $model->use_rub_km; if ($item->save()) { $session = Yii::$app->session; $session->setFlash('char1', '<div class="alert alert-success">Изменения успешно сохранены.</div>'); return $this->redirect('edit?id=' . $id); } } } //получаем список категорий для изменения родителя $all_cats = $model->find()->asArray()->all(); //получаем характеристики и подхарактеристики $all_characters = Characteristics::find()->asArray()->all(); foreach ($all_characters as $key => $value) { $char_data = CharacteristicsData::find()->where(['parent_id' => $value['id']])->asArray()->all(); if (!empty($char_data)) { $all_characters[$key]['charact_data'] = $char_data; } } //Получаем активные характеристики $active_cats = CharacteristicsForCats::find()->where(['cat_id' => $id])->asArray()->all(); //Получаем активные подхарактеристики $active_podcats = CharacteristicsDataForCats::find()->where(['cat_id' => $id])->asArray()->all(); //получаем типы аренды $arenda_types = ArendaTypes::find()->asArray()->all(); $active_arenda_types = ArendaTypesForCats::find()->where(['cat_id' => $id])->asArray()->all(); $tree = new ModArendaTree(); return $this->render('edit', ['icon' => $icon, 'model_upload' => $model_upload, 'model' => $item, 'all_cats' => $tree->view_cat_for_parent($tree->get_cat()), 'all_characters' => $all_characters, 'active_cats' => $active_cats, 'active_podcats' => $active_podcats, 'arenda_types' => $arenda_types, 'active_arenda_types' => $active_arenda_types]); }