Ejemplo n.º 1
0
 public function actionDelete()
 {
     $success = false;
     $id = $_REQUEST['id'];
     if (is_numeric($id)) {
         $model = CatalogCategories::model()->findByPk($id);
         if (is_object($model)) {
             $anons_pic = Yii::app()->basePath . "/.." . $model->anons_pic;
             $content_pic = Yii::app()->basePath . "/.." . $model->content_pic;
             //remove category, objects in category and tags relations
             $categoryId = $model->id;
             if ($model->delete()) {
                 $success = true;
                 //remove all news in category
                 $news = CatalogObjects::model()->findAllByAttributes(array("category_id" => $model->id));
                 if (is_array($news) && count($news)) {
                     foreach ($news as $element) {
                         $element->delete();
                     }
                 }
                 //remove tags relations
                 $tagsRelations = TagsRelations::model()->findAllByAttributes(array("object_id" => $id, "model" => "catalog_category"));
                 if (is_array($tagsRelations) && count($tagsRelations)) {
                     foreach ($tagsRelations as $tr) {
                         $tr->delete();
                     }
                 }
                 //remove images if exists
                 if (is_file($anons_pic)) {
                     unlink($anons_pic);
                 }
                 if (is_file($content_pic)) {
                     unlink($content_pic);
                 }
             }
         }
     }
     echo json_encode(array('status' => $success ? 'success' : 'fail'));
 }
Ejemplo n.º 2
0
 public function actionSearch()
 {
     $objects = array();
     $criteria = new CDbCriteria();
     $criteria->alias = 'co';
     $criteria->condition = "is_active = 1 AND is_deleted = 0";
     $criteria->addCondition("lang_id = " . $this->lang);
     $criteria->addCondition("category_id = 1");
     //@todo - искать в реальной категории
     if (isset($_REQUEST['data'])) {
         $data = $_REQUEST['data'];
         if (is_array($data) && count($data)) {
             $criteria->join = "";
             $i = 0;
             foreach ($data as $fieldName => $items) {
                 $field = CatalogFilteredFields::model()->findByAttributes(array("category_id" => 1, "name" => $fieldName));
                 if (is_object($field) && is_array($items) && count($items)) {
                     $cond = '(';
                     $i1 = true;
                     foreach ($items as $item) {
                         if (is_numeric($item)) {
                             if (!$i1) {
                                 $cond .= "OR (`fv{$i}`.`field_id` = {$field->id} AND `fv{$i}`.`int_val` = {$item}) ";
                             } else {
                                 $cond .= "(`fv{$i}`.`field_id` = {$field->id} AND `fv{$i}`.`int_val` = {$item}) ";
                                 $i1 = false;
                             }
                         }
                     }
                     $cond .= ')';
                     $criteria->join .= "INNER JOIN `catalog_filtered_fields_values` AS `fv{$i}` ON `co`.`id` = `fv{$i}`.`object_id` " . "AND {$cond} ";
                     $i++;
                 }
             }
         }
     }
     //$criteria->group = "object_id";
     if (isset($_REQUEST['min_price']) && isset($_REQUEST['max_price'])) {
         //$criteria->join = "LEFT JOIN `catalog_objects` ON `catalog_filtered_fields_values`.`object_id` = `catalog_objects`.`id`";
         $criteria->addBetweenCondition('price', CatalogObjects::convertPrice($_REQUEST['min_price']), CatalogObjects::convertPrice($_REQUEST['max_price']));
     }
     $count = CatalogObjects::model()->count($criteria);
     $pages = new CPagination($count);
     $pages->pageSize = 2;
     $pages->applyLimit($criteria);
     $objects = CatalogObjects::model()->findAll($criteria);
     $this->renderPartial('objects', array('objects' => $objects, 'pages' => $pages));
 }
Ejemplo n.º 3
0
                </div>
            </div>
        </div>
        </form>  
        <form action="/admin/catalog/saveRelations/?id=<?php 
echo is_object($model) ? $model->id : 0;
?>
" id="catalog-relations" method="post" role="form">
            <input type="hidden" name="related" value="" />
            <div class="panel panel-default">
                <div class="panel-heading clearfix">
                    <select class="rel-selector select2">
                        <?php 
$criteria = new CDbCriteria();
$criteria->condition = "id <> " . $model->id;
$items = CatalogObjects::model()->findAll($criteria);
?>
                        <option value="0">Выберите товар...</option>
                        <?php 
if (is_array($items) && count($items)) {
    foreach ($items as $item) {
        ?>
                                <option value="<?php 
        echo $item->id;
        ?>
" data-url="/admin/catalog/edit/<?php 
        echo $item->id;
        ?>
"><?php 
        echo $item->field("artikul")->value();
        ?>
Ejemplo n.º 4
0
 public function actionToggleOnmain()
 {
     if (isset($_REQUEST['pk'])) {
         $model = CatalogObjects::model()->findByPk($_REQUEST['pk']);
         if (is_object($model)) {
             $model->on_main = $model->on_main ? 0 : 1;
             if ($model->save()) {
                 return true;
             }
         }
     }
     return false;
 }
Ejemplo n.º 5
0
 /**
  * Возвращает максимальную цену в категории
  * @param int $categoryId
  * @return float
  */
 public static function getMaxPrice($categoryId)
 {
     $criteria = new CDbCriteria();
     $criteria->select = "MAX(price) as max_price";
     $criteria->condition = "is_active = 1 AND is_deleted = 0";
     $criteria->addCondition("category_id = " . $categoryId);
     return CatalogObjects::model()->find($criteria)->max_price;
 }
Ejemplo n.º 6
0
 public function actionSearch()
 {
     if (empty($_GET['search_string'])) {
         $search = "";
     } else {
         $search = $_GET['search_string'];
     }
     if (isset($_GET['all_news']) and $_GET['all_news'] == 1) {
         $allN = true;
     } else {
         $allN = false;
     }
     if (isset($_GET['all_catalog']) and $_GET['all_catalog'] == 1) {
         $allC = true;
     } else {
         $allC = false;
     }
     $criteria = new CDbCriteria();
     $criteria->addSearchCondition('h1', $search, true, 'OR');
     $criteria->addSearchCondition('content', $search, true, 'OR');
     $criteria->addSearchCondition('anons', $search, true, 'OR');
     $criteria->addSearchCondition('name', $search, true, 'OR');
     $criteria->addSearchCondition('title', $search, true, 'OR');
     $criteria->addSearchCondition('lang_id', $this->lang, true, 'AND');
     $criteria->addSearchCondition('is_active', "1", true, 'AND');
     $modelNews = News::model()->findAll($criteria);
     ////////////////////////////////////////////////////////////////////////////////////////////
     $criteriac = new CDbCriteria();
     $criteriac->addSearchCondition('h1', $search, true, 'OR');
     $criteriac->addSearchCondition('content', $search, true, 'OR');
     $criteriac->addSearchCondition('anons', $search, true, 'OR');
     $criteriac->addSearchCondition('name', $search, true, 'OR');
     $criteriac->addSearchCondition('title', $search, true, 'OR');
     $criteriac->addSearchCondition('lang_id', $this->lang, true, 'AND');
     $criteriac->addSearchCondition('is_active', "1", true, 'AND');
     $modelCatalog = CatalogObjects::model()->findAll($criteriac);
     switch ($this->lang) {
         case 19:
             $this->pageTitle = "Поиск по сайту";
             $this->pageDescription = "Поиск по сайту";
             $this->pageKeywords = "Поиск по сайту";
             break;
         case 20:
             $this->pageTitle = "Search";
             $this->pageDescription = "Search";
             $this->pageKeywords = "Search";
             break;
         case 21:
             $this->pageTitle = "Recherche sur le site";
             $this->pageDescription = "Recherche sur le site";
             $this->pageKeywords = "Recherche sur le site";
             break;
     }
     if ($allN or $allC) {
         if ($allN) {
             $this->render('search_all_news', array('modelNews' => $modelNews, 'search' => $search));
         }
         if ($allC) {
             $this->render('search_all_catalog', array('modelCatalog' => $modelCatalog, 'search' => $search));
         }
     } else {
         $this->render('search_all', array('modelNews' => $modelNews, 'modelCatalog' => $modelCatalog, 'search' => $search));
     }
 }
Ejemplo n.º 7
0
 public function actionEdit()
 {
     $this->layout = '//layouts/admin';
     $success = false;
     $id = $_REQUEST['id'];
     $model = Orders::model()->findByPk($id);
     $this->pageTitle = is_object($model) ? "Заказ #" . $model->id : 'Новый заказ';
     $this->breadcrumbs = array('Заказы' => array('/admin/orders'), is_object($model) ? "Заказ #" . $model->id : 'Новый заказ');
     if (isset($_POST['data']) && is_object($model)) {
         $dataArray = $_POST['data'];
         $dataArray['timestamp'] = isset($dataArray['timestamp']) ? strtotime($dataArray['timestamp']) : time();
         $orderItems = json_decode($dataArray['order_items'], true);
         unset($dataArray['order_items']);
         $model->setAttributes($dataArray);
         if ($model->save()) {
             $success = true;
             $oldItems = OrderItems::model()->findAllByAttributes(array("order_id" => $model->id));
             if (is_array($oldItems) && count($oldItems)) {
                 foreach ($oldItems as $item) {
                     $item->delete();
                 }
             }
             if (is_array($orderItems) && count($orderItems)) {
                 foreach ($orderItems as $oItem) {
                     foreach ($oItem as $oId => $amount) {
                         $object = CatalogObjects::model()->findByPk($oId);
                         if (is_object($object) && $amount) {
                             $oItemModel = new OrderItems();
                             $attributes = array();
                             $attributes['order_id'] = $model->id;
                             $attributes['name'] = $object->name;
                             $attributes['product_id'] = $object->id;
                             $attributes['price'] = $object->price;
                             $attributes['amount'] = $amount;
                             $oItemModel->setAttributes($attributes);
                             $oItemModel->save();
                         }
                     }
                 }
             }
         }
     }
     $this->render('edit', array('model' => $model, 'success' => $success, 'errors' => $model->errors));
 }