public function actionGetcats($cat_id) { $result = ModArendaTree::find()->where(['parent_id' => $cat_id])->andWhere(['active' => '1'])->asArray()->all(); //unset($_SESSION['check']); if (count($result) > 0) { $select = '<ul>'; foreach ($result as $key => $value) { $select .= '<li><a href="#" data-id="' . $value['id'] . '">' . $value['name'] . '</a></li>'; if ($key % 5 == 0 && $key != 0) { $select .= '</ul><ul>'; } } $select .= '</ul>'; return $select; } return 'empty'; }
<p class="ad_add_title"> Выберите категорию</p> <div class="row"> '; foreach ($categories as $key => $value) { echo ' <div class="col-md-4 main_cat_item" data-id="' . $value['id'] . '"> <div class="row item_row"> <div class="col-md-2 item_img"> <img class="pull-right" src="/images/cats_images/' . $value['id'] . '/' . $value['image_url'] . '"> </div> <div class="col-md-10 item_text"> <header> ' . $value['name'] . ' </header> <footer>'; $childs = \app\modules\Tree\models\ModArendaTree::find()->where(['parent_id' => $value['id']])->asArray()->all(); if (!empty($childs)) { $text = '<p>'; foreach ($childs as $key1 => $value1) { $text .= $value1['name'] . ', '; } $text = substr($text, 0, -2); $text .= '</p>'; } else { $text = 'Нет подкатегорий'; } echo $text; echo '</footer> </div> </div> </div>
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]); }
?> <div class="products-create"> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> <input type="hidden" id="parent_id" value="<?php echo $model->cat_id; ?> "> <?php echo $form->field($model, 'name')->textInput()->label('Название'); ?> <?php echo $form->field($model, 'cat_id')->dropDownList(ArrayHelper::map(\app\modules\Tree\models\ModArendaTree::find()->all(), 'id', 'name'))->label('Категория'); ?> <?php echo $form->field($model, 'description')->widget(CKEditor::className(), ['options' => ['rows' => 6]]); ?> <?php echo $form->field($model, 'price')->textInput()->label('Цена (0 - по запросу)'); ?> <?php echo $form->field($model, 'imageFile')->fileInput(); ?> <?php echo empty($model->image) ? '<p>Фотография не загружена</p>' : '<img width=200" src="/img/products/' . $model->image . '"'; ?> <div class="clearfix"></div>
public function actionCatalog($item = '') { @session_start(); $_SESSION['current_str'] = 'catalog'; $url = parse_url(Yii::$app->request->url); $url = explode('/', $url['path']); if (strrpos($item, '/')) { $item = trim(substr($item, strrpos($item, '/') + 1, strlen($item) - strrpos($item, '/'))); } else { $item = trim($item); } $result = ModArendaTree::findOne(['url' => $item]); //���� �� ������� ���������, �������������� ��� �����, ����� ������ ������ if (!$result) { $kroshka = []; foreach ($url as $key => $value) { if (!empty($value) && $value !== 'catalog') { if ($key != count($url) - 1) { $cat = ModArendaTree::findOne(['url' => $value]); if ($cat) { $kroshka['cats'][] = $cat; } } else { $id = trim(substr($value, strrpos($value, '-') + 1, strlen($value) - strrpos($value, '-'))); $tovar = Products::findOne(['id' => $id]); $kroshka['tovars'][] = $tovar; } } } if (strrpos($item, '-')) { $id = trim(substr($item, strrpos($item, '-') + 1, strlen($item) - strrpos($item, '-'))); $tovar = Products::findOne(['id' => $id]); $characteristics = CharacteristicsProducts::find()->select(['characteristics_products.*', 'characteristics.name AS characteristic_name'])->where(['product_id' => $id])->leftJoin('characteristics', 'characteristics_products.character_id=characteristics.id')->asArray()->all(); $comments = Comments::find()->where(['product_id' => $id])->andWhere(['moder' => 1])->asArray()->all(); $pohozhie = Products::find()->where(['cat_id' => $tovar->cat_id])->andWhere('id<>' . $tovar->id)->orderBy(['id' => SORT_DESC])->asArray()->all(); return $this->render('tovar', ['data' => $tovar, 'characteristics' => $characteristics, 'kroshka' => $kroshka, 'comments' => $comments, 'pohozhie' => $pohozhie]); } else { return $this->render('main_cats'); } } $kroshka = []; foreach ($url as $key => $value) { if (!empty($value) && $value !== 'catalog') { $cat = ModArendaTree::findOne(['url' => $value]); if ($cat) { $kroshka['cats'][] = $cat; } } } $result_parent = ModArendaTree::find()->select(['mod_arenda_tree.*', 'images_for_cats.url AS image'])->leftJoin('images_for_cats', 'images_for_cats.cat_id=mod_arenda_tree.id')->groupBy('mod_arenda_tree.id')->where(['parent_id' => $result->id])->asArray()->all(); if ($result_parent) { return $this->render('cats', ['data' => $result_parent, 'kroshka' => $kroshka]); } else { $cat = ModArendaTree::findOne(['url' => $item]); $char_for_cats = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS char_name'])->where(['cat_id' => $cat->id])->leftJoin('characteristics', 'characteristics.id=characteristics_for_cats.character_id')->orderBy(['character_id' => SORT_ASC])->asArray()->all(); if (empty($char_for_cats)) { while ($cat->parent_id != 0) { $char_for_cats = CharacteristicsForCats::find()->select(['characteristics_for_cats.*', 'characteristics.name AS char_name'])->where(['cat_id' => $cat->parent_id])->leftJoin('characteristics', 'characteristics.id=characteristics_for_cats.character_id')->orderBy(['character_id' => SORT_ASC])->asArray()->all(); $cat = ModArendaTree::findOne(['id' => $cat->parent_id]); } } if ($char_for_cats) { //тут будет код если все охуенно } if (Yii::$app->request->post()) { $post = Yii::$app->request->post(); unset($post['_csrf']); $q = ''; foreach ($post as $key => $value) { if ($value == 'all') { continue; } if (is_array($value)) { if (empty($value[0]) || empty($value[1])) { continue; } $chid = substr($key, 3); // возвращает "bcdef" $q .= 'INNER JOIN characteristics_products AS ' . $key . ' ON (' . $key . '.product_id=P.id AND (' . $key . '.character_id=' . $chid . ' AND (' . $key . '.value>=' . $value[0] . ' AND ' . $key . '.value<=' . $value[1] . ' )))'; } else { $chid = substr($key, 3); // возвращает "bcdef" $q .= 'INNER JOIN characteristics_products AS ' . $key . ' ON (' . $key . '.product_id=P.id AND (' . $key . '.character_id=' . $chid . ' AND ' . $key . '.value="' . $value . '"))'; } } $tovars = Yii::$app->db->createCommand(' SELECT P.* FROM products AS P ' . $q . ' WHERE cat_id=' . $result->id . ' ')->queryAll(); } else { $tovars = Yii::$app->db->createCommand(' SELECT P.* FROM products AS P WHERE cat_id=' . $result->id . ' ')->queryAll(); } foreach ($tovars as $key => $value) { $chars = CharacteristicsProducts::find()->where(['product_id' => $value['id']])->orderBy(['character_id' => SORT_ASC])->asArray()->all(); $tovars[$key]['chars'] = $chars; } //ЗАПРО ДЛЯ ФИЛЬТРА $tovars1 = Yii::$app->db->createCommand(' SELECT P.* FROM products AS P WHERE cat_id=' . $result->id . ' ')->queryAll(); foreach ($tovars1 as $key => $value) { $chars = CharacteristicsProducts::find()->where(['product_id' => $value['id']])->orderBy(['character_id' => SORT_ASC])->asArray()->all(); $tovars1[$key]['chars'] = $chars; } //ЗАПРО ДЛЯ ФИЛЬТРА //делаем проверку на типы фильтров $CHARACTERISTICS = []; foreach ($tovars1 as $key => $value) { foreach ($value['chars'] as $key1 => $value1) { if (isset($CHARACTERISTICS[$key1])) { if (!in_array(strtolower($value1['value']), $CHARACTERISTICS[$key1]) && $value1['value'] != 'none') { $CHARACTERISTICS[$key1][] = mb_strtolower($value1['value']); } } else { if ($value1['value'] != 'none') { $CHARACTERISTICS[$key1][] = is_numeric($value1['value']) ? $value1['value'] : mb_strtolower($value1['value']); } } if (!isset($CHARACTER[$key1])) { $CHARACTER[$key1] = 'number'; } if (!is_numeric($value1['value'])) { $CHARACTER[$key1] = 'string'; } } } foreach ($CHARACTERISTICS as $key3 => $value3) { $CHARACTERISTICS[$key3]['type'] = $CHARACTER[$key3]; } foreach ($char_for_cats as $key3 => $value3) { if (!isset($CHARACTERISTICS[$key3])) { unset($char_for_cats[$key3]); } else { $char_for_cats[$key3]['chars'] = $CHARACTERISTICS[$key3]; } } return $this->render('tovars', ['data' => $tovars, 'kroshka' => $kroshka, 'chars' => $char_for_cats]); } }
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 actionEdit($id) { $model_upload = new UploadFile1(); 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(); } } } if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { $item = $model->findOne(['id' => $id]); $item->name = $model->name; $item->url = $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(); //получаем типы аренды $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]); }