Exemple #1
0
    public function run()
    {
        $root = CatalogRubrics::model()->roots()->find();
        $all = CatalogRubrics::model()->findByPk($root->id)->findAll();
        $ret = '';
        foreach ($all as $item) {
            $item_attributes = $item->getAttributes();
            if ($item_attributes['parent_id'] == 4890) {
                $ret .= '<li class="lmenu_item_' . $item_attributes['id'] . '">
				<a href="/catalog/' . $item_attributes['url'] . '">' . $item_attributes['name'] . '</a>
				<div class="div_arrow moreheight down" idx="' . $item_attributes['id'] . '"></div>
				';
                $subitems = '';
                foreach ($all as $item2) {
                    $item2_attributes = $item2->getAttributes();
                    if ($item2_attributes['parent_id'] == $item_attributes['id']) {
                        $subitems .= '<li  class="lmenu_item_' . $item2_attributes['id'] . '">

						<a href="/catalog/' . $item2_attributes['url'] . '">' . $item2_attributes['name'] . '</a>';
                        $subsubitems = '';
                        foreach ($all as $item3) {
                            $item3_attributes = $item3->getAttributes();
                            if ($item3_attributes['parent_id'] == $item2_attributes['id']) {
                                $subsubitems .= '<li class="lmenu_item_' . $item3_attributes['id'] . '">
											           <a href="/catalog/' . $item3_attributes['url'] . '">
											             ' . $item3_attributes['name'] . '
											           </a>
											         </li>';
                            }
                        }
                        if (strlen($subsubitems)) {
                            $subsubitems = '
							<div class="div_arrow" idx="' . $item2_attributes['id'] . '">
							</div>
							<ul class="parent_lmcontainer_' . $item2_attributes['id'] . '">' . $subsubitems . '</ul>';
                        }
                        $subitems .= $subsubitems . '</li>';
                    }
                }
                if (strlen($subitems)) {
                    $ret .= '<ul class="parent_lmcontainer_' . $item_attributes['id'] . '">' . $subitems . '</ul>';
                }
                $ret .= '</li>';
            }
        }
        $data['ret'] = $ret;
        $this->render('view_LeftMenu', $data);
    }
 public function actionElement($param)
 {
     //разбираем URL
     $paramArr = explode("/", $param);
     $url = array_pop($paramArr);
     if ($model = CatalogRubrics::model()->find('url LIKE ("' . $url . '")')) {
         //Это раздел - выводим список
         $this->actionIndex($model);
         exit;
     }
     //Это карточка товара
     if (!($model = CatalogElements::model()->find('url LIKE "' . $url . '" OR id = ' . (int) $url))) {
         throw new CHttpException(404, 'The page can not be found.');
     }
     $this->setSEOData($model);
     //$modelRubric = CatalogRubrics::model()->findByPk($model->parent_id);
     if (!$model) {
         throw new CHttpException(404, 'The page can not be found.');
     }
     $modelChars = CatalogChars::model()->findAll('parent_id=' . $model->id . ' AND status = 1');
     $data['modelChars'] = $modelChars;
     $data['model'] = $model;
     $data['modelImages'] = CatalogElementsImages::model()->findAll('elements_id = ' . $model->id);
     $this->render('show', $data);
 }
 public function actionUploaddata($id)
 {
     set_time_limit(0);
     $model = $this->loadModel($id);
     $catalog = null;
     //Для модуля Каталог, Двигатели, Трансмисия
     if ($model->module == 1) {
         $catalog = CatalogRubrics::model()->getRootIdAndName();
     }
     if ($model->module == 2) {
         $catalog = CatalogengineRubrics::model()->getRootIdAndName();
     }
     if ($model->module == 3) {
         $catalog = CatalogtransmissionRubrics::model()->getRootIdAndName();
     }
     if (isset($_POST['LoadxmlRubrics'])) {
         $err = 0;
         //$model->attributes = $_POST['LoadxmlRubrics'];
         $filepatch = YiiBase::getPathOfAlias('webroot') . '/../uploads/filestorage/loadxml/';
         $model->testedfile = CUploadedFile::getInstance($model, 'testedfile');
         if (!empty($model->testedfile)) {
             $ext = pathinfo($model->testedfile);
             $ext = $ext['extension'];
             if ($model->ext != $ext) {
                 if (($model->ext == 'xls' || $model->ext == 'xlsx') && ($ext == 'xls' || $ext == 'xlsx')) {
                     $err = 0;
                 } else {
                     $err = 1;
                     Yii::app()->user->setFlash('error', "Файл должен быть в формате: " . $model->ext);
                 }
             }
         } else {
             $err = 1;
             Yii::app()->user->setFlash('error', "Вы не выбрали файл");
         }
         if ($err == 0) {
             //Загружаем файл
             $filename = $model->testedfile->getName();
             $model->testedfile->saveAs($filepatch . $filename);
             //xls и xlsx
             if (preg_match("/.xls/i", $filename) || preg_match("/.xlsx/i", $filename)) {
                 $exel = new Parsfile();
                 $exel->pars_exel($filepatch . $filename);
                 $output = $exel->OutArr;
             }
             //xml
             if (preg_match("/.xml/i", $filename)) {
                 $xml = new Parsfile();
                 $xml->pars_xml($filepatch . $filename, $model->tag);
                 $output = $xml->XmlFieldsHash;
             }
             //csv
             if (preg_match("/.csv/i", $filename)) {
                 $csv = new Parsfile();
                 $splitter = LoadxmlRubrics::model()->getSplitter((int) $model->splitter);
                 $csv->pars_csv($filepatch . $filename, $splitter);
                 $output = $csv->OutArr;
             }
             //модуль каталог
             if ($model->module == 1 || $model->module == 2 || $model->module == 3) {
                 $table_pref = "tbl_";
                 if ($model->module == 1) {
                     $table = "catalog_elements";
                 }
                 //Для модуля Каталог
                 if ($model->module == 2) {
                     $table = "catalogengine_elements";
                 }
                 //Для модуля Двигатели
                 if ($model->module == 3) {
                     $table = "catalogtransmission_elements";
                 }
                 //Для модуля Трансмисия
                 // Вычисляем, какие столбцы нужно обходить циклом для группировки значений
                 $groups_need = array();
                 if (!empty($model->groups)) {
                     $list_groups = unserialize($model->groups);
                     $cnt_list = count($list_groups);
                     $group_i = 0;
                     for ($i = 1; $i <= $cnt_list; ++$i) {
                         if ($list_groups[$i]) {
                             $groups_need[$group_i] = $i;
                             // создаем массив с номерами нужных столбцов
                             ++$group_i;
                         }
                     }
                 }
                 $count_need = count($groups_need);
                 // кол-во нужных столбов
                 $count_table = count($output);
                 // кол-во строк в таблице
                 $val_arr_group = array();
                 // массив значений для группировки
                 $val_arr_cnt = array();
                 // массив для хранения кол-ва записей группировки
                 $val_arr_group_r = array();
                 // массив значений для группировки
                 if ($count_need > 0) {
                     for ($j = 1; $j <= $count_table; ++$j) {
                         for ($i = 0; $i <= $count_need; ++$i) {
                             $group_id = $groups_need[$i];
                             $group_cnt = intval($val_arr_cnt[$group_id]);
                             $read_vars = trim($output[$j][$group_id]);
                             $read_vars_alt = $this->totranslit($read_vars);
                             if (!in_array($read_vars_alt, $val_arr_group[$group_id]) and $read_vars_alt) {
                                 $val_arr_group[$group_id][$group_cnt] = $read_vars_alt;
                                 // записываем в массив значение
                                 $val_arr_group_r[$group_id][$group_cnt]['name'] = $read_vars;
                                 $val_arr_group_r[$group_id][$group_cnt]['alt_name'] = $read_vars_alt;
                                 ++$group_cnt;
                                 $val_arr_cnt[$group_id] = $group_cnt;
                                 // записываем в массив кол-во записей
                             }
                         }
                     }
                 }
                 //надо очищать каталог перед импортом - сдеать вызов тут
                 if (isset($_POST['LoadxmlRubrics']['clearsect']) && (int) $_POST['LoadxmlRubrics']['clearsect'] == 1 && (int) $_POST['LoadxmlRubrics']['parent_id'] > 0) {
                     if ($model->module == 1) {
                         CatalogElements::model()->deleteAll("`parent_id` = :parent_id", array(':parent_id' => (int) $_POST['LoadxmlRubrics']['parent_id']));
                     }
                     if ($model->module == 2) {
                         CatalogengineElements::model()->deleteAll("`parent_id` = :parent_id", array(':parent_id' => (int) $_POST['LoadxmlRubrics']['parent_id']));
                     }
                     if ($model->module == 3) {
                         CatalogtransmissionElements::model()->deleteAll("`parent_id` = :parent_id", array(':parent_id' => (int) $_POST['LoadxmlRubrics']['parent_id']));
                     }
                 }
                 /*
                 foreach ($val_arr_group_r as $keys_in ) {
                     foreach ( $keys_in as $test ) {
                         $nde = array();
                         $nde['name'] = trim($test['name']);
                         $nde['page_name'] = $test['name'];
                         $nde['url'] = strtolower($test['alt_name']);
                         if ((int)$_POST['LoadxmlRubrics']['parent_id']>0){
                             $category = new CatalogRubrics;
                             $category->name = $nde['name'];
                             $category->page_name = $nde['page_name'];
                             $category->url = $nde['url'];
                             $category->parent_id = (int)$_POST['LoadxmlRubrics']['parent_id'];
                             $root = CatalogRubrics::model()->findByPk($category->parent_id);
                             $category->appendTo($root);
                         }
                     }
                 }
                 */
                 $MainFields = null;
                 $fields = explode('|', $model->content2);
                 $FieldCount = 0;
                 foreach ($fields as $k => $v) {
                     if (isset($v[0]) && !empty($v[0])) {
                         $subfields = explode('%', $v);
                         $MainFields2[$k] = $subfields;
                         if ($model->ext == 'xml') {
                             $subfields[1] = $xml->XmlAntiMap[$subfields[1]];
                         }
                         $MainFields[$k] = $subfields;
                         $FieldCount++;
                     }
                 }
                 $uniqKey = '';
                 foreach ($MainFields as $mk => $mv) {
                     if ($mv[0] == $model->unique && $model->unique != '') {
                         $uniqKey = $model->unique;
                     }
                 }
                 //Пишем данные в таблицы
                 foreach ($output as $k => $v) {
                     $sett = '';
                     $setv = '';
                     $UniqField = '';
                     $WriteFlag = 1;
                     foreach ($MainFields as $K => $V) {
                         $val = '';
                         if ($model->ext == 'xml') {
                             $xml_field = $MainFields2[$K][1];
                             $val = $xml->XmlFieldsHash[$k][$xml_field];
                             if ($V[1] == 3) {
                                 $val = preg_replace("/[^1234567890.,]/", '', $val);
                                 $vall = preg_replace("/\\,]/", '.', $val);
                             }
                             if ($V[1] == 2) {
                                 if (trim($xml->XmlFieldsHash[$k][$xml_field]) == '') {
                                     $val = '';
                                 } else {
                                     $val = 1;
                                 }
                             }
                         } else {
                             $val = $v[$V[1]];
                             if ($V[2] == 3) {
                                 $val = preg_replace("/[^1234567890.,]/", '', $val);
                                 $vall = preg_replace("/\\,]/", '.', $val);
                             }
                             if ($V[2] == 2) {
                                 if (trim($v[$V[2] - 1]) == '') {
                                     $val = '';
                                 } else {
                                     $val = 1;
                                 }
                             }
                         }
                         //print $val."||||<br/>";
                         if ($sett == '') {
                             $sett .= " `{$V['0']}` ";
                         } else {
                             $sett .= ", `{$V['0']}` ";
                         }
                         if ($setv == '') {
                             $setv .= " '" . $val . "' ";
                         } else {
                             $setv .= ", '" . addslashes($val) . "' ";
                         }
                         if ($V[0] == $uniqKey && $V[0] != '') {
                             $UniqField = $uniqKey;
                             $resultU = Yii::app()->db->createCommand()->select('*')->from('{{' . $table . '}}')->where(" `" . $UniqField . "` = '" . $val . "'")->queryAll();
                             foreach ($resultU as $rowU) {
                                 if ($rowU['id'] != '') {
                                     Yii::app()->db->createCommand()->delete("`" . $table . "`", 'id=:id', array(':id' => $rowU['id']));
                                 }
                             }
                         }
                         if ($V[3] != '') {
                             //if($val == ''){$WriteFlag = 0;}
                         }
                     }
                     $sett .= ',`parent_id` ';
                     $setv .= ", '" . (int) $_POST['LoadxmlRubrics']['parent_id'] . "' ";
                     if ($WriteFlag != '0') {
                         $sql = "INSERT INTO " . $table_pref . $table . " ({$sett}) VALUES ({$setv})";
                         Yii::app()->db->createCommand($sql)->execute();
                     } else {
                         print "0 <br/>";
                     }
                 }
             }
             Yii::app()->user->setFlash('success', "Данные загружены");
         }
     }
     $this->render('uploaddata', array('model' => $model, 'catalog' => $catalog));
 }
    /** Редактировать  свойство каталога */
    public function actionUpdatechars($id)
    {
        $model = $this->loadModelChars($id);
        if (isset($_POST['CatalogChars'])) {
            $model->attributes = $_POST['CatalogChars'];
            if ($model->save()) {
                //	echo 111111111;
                //		print_r($_POST); exit;
                //echo 'Start1<br>';
                //print_r($_POST);
                //==============================================================================
                if (isset($_POST['set_childrens']) && $_POST['set_childrens'] == 1) {
                    //echo 'Start<br>';
                    // Если редактируется свойство категории
                    if ($model->type_parent == 1) {
                        $model__rubric = CatalogRubrics::model()->find('id = ' . $model->parent_id);
                        $model__rubric_childs = CatalogRubrics::model()->findAll('
										left_key  >= ' . $model__rubric->left_key . '
										AND
										right_key <= ' . $model__rubric->right_key . '
										');
                        foreach ($model__rubric_childs as $model__rubric_childs_item) {
                            $model__catalog_chars_item = CatalogChars::model()->find('
											parent_id = ' . $model__rubric_childs_item->id . '
											AND
											type_parent = 1
											AND
											name = \'' . CatalogElements::sql_valid($model->name) . '\'
											');
                            if ($model__catalog_chars_item) {
                                //echo 'rubric_chars ='.$model__catalog_chars_item->id.'<br>';
                                $model__catalog_chars_item->filter_range = $model->filter_range;
                                $model__catalog_chars_item->filter_use = $model->filter_use;
                                $model__catalog_chars_item->type_scale = $model->type_scale;
                                $model__catalog_chars_item->save();
                            }
                        }
                        $model_elements = CatalogChars::model()->findAll('
											parent_id IN 
											(
												SELECT 
													id 
												FROM  
													tbl_catalog_elements 
												WHERE
													parent_id IN 
													(
														SELECT 
															id 
														FROM 
															tbl_catalog_rubrics 
														WHERE
															(
																left_key  >= ' . $model__rubric->left_key . '
																AND
																right_key <= ' . $model__rubric->right_key . '
															)
															OR
															(
																id = ' . $model__rubric->id . '
															)
													)
											)
											AND
											type_parent = 2
											AND
											name = \'' . CatalogElements::sql_valid($model->name) . '\'
										');
                        foreach ($model_elements as $model_elements_item) {
                            //echo 'item_chars ='.$model__catalog_chars_item->id.'<br>';
                            $model__catalog_chars_item->filter_range = $model->filter_range;
                            $model__catalog_chars_item->filter_use = $model->filter_use;
                            $model__catalog_chars_item->type_scale = $model->type_scale;
                            $model__catalog_chars_item->save();
                        }
                    }
                }
                //==============================================================================
                //Если указано наследование - создаем это свойство для остальных элементов в этом объекте
                if ($model->inherits == 1) {
                    CatalogChars::model()->addInherits($model, $_POST['CatalogChars']);
                }
                $this->redirect(array('updatechars', 'id' => $model->id));
            }
        }
        $scale_val = array();
        //разбираем значение в scale если type_scale == 2 или 3
        $tmp_scale_val = explode("|", $model->scale);
        if (is_array($tmp_scale_val)) {
            $scale_val = array_filter($tmp_scale_val);
        }
        $this->breadcrumbs = array('Группы товаров' => array('/catalog/catalog/listgroup'), 'Свойства ' => array('/catalog/catalog/listchars?id=' . (int) $model->parent_id . '&type_parent=' . (isset($_GET['type_parent']) ? $_GET['type_parent'] : 2)), 'Редактирование');
        $this->render('formchars', array('model' => $model, 'scale_val' => $scale_val));
    }
 /**
  * Получение количества записей в категории
  *
  * @param $category
  * @return int|mixed
  */
 public static function getTotalCountElement($category)
 {
     $total = 0;
     if (is_int($category)) {
         $category = CatalogRubrics::model()->findByPk($category);
     }
     if (!empty($category)) {
         $branch = CatalogRubrics::getBranch($category->left_key, $category->right_key);
         foreach ($branch as $branchRow) {
             $ids[] = $branchRow->id;
         }
         if (!empty($ids)) {
             $total = Yii::app()->db->createCommand()->select('COUNT(*)')->from(CatalogElements::model()->tableName())->where(array('in', 'parent_id', $ids))->queryScalar();
         }
     }
     return $total;
 }
Exemple #6
0
                -->
            </td>
        </tr>
        <?php 
}
?>
        </tbody>
    </table>

<div id="ajax_loader" style="display: none;"><img width="40px;" style="position:absolute; margin-top:10px; margin-left:-40px;" src="/images/admin/ajaxloader.gif"></div>
<div class="buttons">
    <?php 
if (isset($_GET['id']) && $_GET['id'] > 0) {
    ?>
<a class="btn" style="float:left; margin-top:14px" href="/admin/catalog/catalog/listgroup?id=<?php 
    echo CatalogRubrics::model()->findByPk((int) $_GET['id'])->parent_id;
    ?>
">&#9668; Назад</a><?php 
}
?>
    <a class="btn btn-primary" style="margin-top:14px; float:left; margin-left:15px" href="/admin/<?php 
echo Yii::app()->controller->module->id;
?>
/<?php 
echo Yii::app()->controller->id;
?>
/create?id=<?php 
echo isset($_GET['id']) ? (int) $_GET['id'] : 0;
?>
"> Добавить группу</a>
    <a class="btn btn-danger" style="float:left; margin-left:15px; margin-top:14px" href="javascript: deleteselected();">Удалить отмеченные</a>
 public function actionIndex()
 {
     $model = array();
     $data[] = array();
     $data['model_elements'] = array();
     if (isset($_GET['s']) && !empty($_GET['s']) && strlen(trim($_GET['s']))) {
         $pattern = trim($_GET['s']);
         $pattern_orig = $pattern;
         $pattern = '/' . $pattern . '/i';
         $page = isset($_GET['page']) ? intval($_GET['page']) : 0;
         $data['page'] = $page;
         //Ищем в каталоге
         $crubrics = CatalogRubrics::model()->findAll('status=1');
         $data['allow_rubrics'] = array();
         foreach ($crubrics as $datas) {
             if ($this->compares($pattern_orig, $datas->name)) {
                 $data['allow_rubrics'][] = $datas->id;
             }
         }
         foreach ($data['allow_rubrics'] as $allow_rubric) {
             $celements = CatalogElements::model()->findAll('status=1 AND parent_id = ' . intval($allow_rubric));
             foreach ($celements as $datas) {
                 if ($this->compares($pattern_orig, $datas->name) && !isset($data['model_elements'][$datas->id])) {
                     $data['model_elements'][$datas->id] = $datas;
                 }
             }
             foreach ($celements as $datas) {
                 if ($this->compares($pattern_orig, $datas->description) && !isset($data['model_elements'][$datas->id])) {
                     $data['model_elements'][$datas->id] = $datas;
                 }
             }
         }
         $celements = CatalogElements::model()->findAll('status=1');
         foreach ($celements as $datas) {
             if ($this->compares($pattern_orig, $datas->name) && !isset($data['model_elements'][$datas->id])) {
                 $data['model_elements'][$datas->id] = $datas;
             }
         }
         foreach ($celements as $datas) {
             if ($this->compares($pattern_orig, $datas->description) && !isset($data['model_elements'][$datas->id])) {
                 $data['model_elements'][$datas->id] = $datas;
             }
         }
         $count = count($data['model_elements']) - 12;
         $criteria = new CDbCriteria();
         $pages = new CPagination($count);
         $pages->pageSize = 12;
         $pages->applyLimit($criteria);
         $data['pages'] = $pages;
     }
     $this->render('index', $data);
 }
 /**
  * @param $model
  * @param $param
  * Добавляет наследование для категории
  */
 public function addInherits($model, $param)
 {
     if ($model->type_parent == 1 || $model->type_parent == 3) {
         //Для категорий
         $modelcatalog = CatalogRubrics::model()->findByPk($model->parent_id);
         foreach ($modelcatalog->descendants()->findAll() as $data) {
             $model_chars = new CatalogChars();
             $model_chars->attributes = $param;
             $model_chars->parent_id = $data->id;
             $model_chars->type_parent = 1;
             $model_chars->save();
         }
     }
     return true;
 }
Exemple #9
0
                    </div>
-->
                    <div class="items-block-new">
                        <h1 class="lined">Новинки рынка</h1>
                        <div class="tovar_container">



<?php 
$model_CatalogElements = CatalogElements::model()->findAll('status = 1 ORDER BY order_id LIMIT 0,12');
foreach ($model_CatalogElements as $element_item) {
    $element = CatalogElements::model()->getProduct($element_item->id);
    if (isset($element['url'])) {
        $url = '/catalog' . $element['url'] . '/' . $element_item->id;
    }
    $modelRubric = CatalogRubrics::model()->find('id=' . $element_item->parent_id);
    $filename = '/uploads/filestorage/catalog/elements/' . $element_item->id . '.' . $element_item->image;
    $name_noqoutes = $element_item->name;
    $name_noqoutes = str_replace("'", '', $name_noqoutes);
    $name_noqoutes = str_replace('"', '', $name_noqoutes);
    $name_noqoutes = htmlspecialchars($name_noqoutes, ENT_QUOTES);
    $name_noqoutes = str_replace('&#039;', '', $name_noqoutes);
    ?>
	<div class="items-block-item">
		<div class="item-label new-product">new</div>
		<a href="<?php 
    echo $url;
    ?>
" class="items-block-item-img">
			<table>
				<tr><td></td></tr>