コード例 #1
0
 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';
 }
コード例 #2
0
ファイル: add.php プロジェクト: kilinanatoly/zkam
                    <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>
コード例 #3
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]);
 }
コード例 #4
0
ファイル: edit.php プロジェクト: kilinanatoly/azimut
?>
<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>
コード例 #5
0
    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]);
        }
    }
コード例 #6
0
ファイル: AdminController.php プロジェクト: kilinanatoly/zkam
 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]);
 }
コード例 #7
0
 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]);
 }