Ошибка категории.

Тема в разделе "OpenCart", создана пользователем Анатолий1115, 27 фев 2014.

  1. Анатолий1115

    Анатолий1115

    Регистрация:
    6 окт 2013
    Сообщения:
    166
    Симпатии:
    8
    При открытии любой категории на сайте вылетает ошибка.

    Parse error: syntax error, unexpected ',', expecting ')' in /home/kdn09109/domains/sundu4ok.com/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 211

    http://sundu4ok.com/index.php?route=product/category&path=24

    Возможно ли ее исправить и как?
     
  2. AnOcToJI

    AnOcToJI

    Регистрация:
    28 дек 2012
    Сообщения:
    309
    Симпатии:
    188
    конечно возможно. Посмотри какие были поставлены модификации через vqmod на категории и удаляй ту модификацию или правь.
     
  3. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    vqmod/vqcache/vq2-catalog_controller_product_category.php
    где он, не вижу?!
     
  4. Анатолий1115

    Анатолий1115

    Регистрация:
    6 окт 2013
    Сообщения:
    166
    Симпатии:
    8
    Код:
    <?php
    class ControllerProductCategory extends Controller { 
        public function index() {
            $this->language->load('product/category');
           
            $this->load->model('catalog/category');
           
            $this->load->model('catalog/product');
           
            $this->load->model('tool/image');
           
            if (isset($this->request->get['filter'])) {
                $filter = $this->request->get['filter'];
            } else {
                $filter = '';
            }
    
               
            if (isset($this->request->get['sort'])) {
                $sort = $this->request->get['sort'];
            } else {
                $sort = 'p.sort_order';
            }
    
            if (isset($this->request->get['order'])) {
                $order = $this->request->get['order'];
            } else {
                $order = 'ASC';
            }
           
            if (isset($this->request->get['page'])) {
                $page = $this->request->get['page'];
            } else {
                $page = 1;
            }   
                               
            if (isset($this->request->get['limit'])) {
                $limit = $this->request->get['limit'];
            } else {
                $limit = $this->config->get('config_catalog_limit');
            }
    
                       
            $this->data['breadcrumbs'] = array();
    
               $this->data['breadcrumbs'][] = array(
                   'text'      => $this->language->get('text_home'),
                'href'      => $this->url->link('common/home'),
                   'separator' => false
               );   
               
            if (isset($this->request->get['path'])) {
                $url = '';
               
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }   
               
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
    
                   
                $path = '';
           
                $parts = explode('_', (string)$this->request->get['path']);
           
                $category_id = (int)array_pop($parts);
    
                foreach ($parts as $path_id) {
                    if (!$path) {
                        $path = (int)$path_id;
                    } else {
                        $path .= '_' . (int)$path_id;
                    }
                                       
                    $category_info = $this->model_catalog_category->getCategory($path_id);
                   
                    if ($category_info) {
                           $this->data['breadcrumbs'][] = array(
                               'text'      => $category_info['name'],
                            'href'      => $this->url->link('product/category', 'path=' . $path . $url),
                            'separator' => $this->language->get('text_separator')
                        );
                    }
    
                }       
           
               
            } else {
                $category_id = 0;
            }
    
           
            $category_info = $this->model_catalog_category->getCategory($category_id);
       
            if ($category_info) {
                if ($category_info['seo_title']) {
                      $this->document->setTitle($category_info['seo_title']);
                } else {
                      $this->document->setTitle($category_info['name']);
                }
    
                $this->document->setDescription($category_info['meta_description']);
                $this->document->setKeywords($category_info['meta_keyword']);
                $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js');
               
                if ($category_info['seo_h1']) {
                    $this->data['heading_title'] = $category_info['seo_h1'];
                } else {
                    $this->data['heading_title'] = $category_info['name'];
                }
               
                $this->data['text_refine'] = $this->language->get('text_refine');
                $this->data['text_empty'] = $this->language->get('text_empty');           
                $this->data['text_quantity'] = $this->language->get('text_quantity');
                $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
                $this->data['text_model'] = $this->language->get('text_model');
                $this->data['text_price'] = $this->language->get('text_price');
                $this->data['text_tax'] = $this->language->get('text_tax');
                $this->data['text_points'] = $this->language->get('text_points');
                $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
                $this->data['text_display'] = $this->language->get('text_display');
                $this->data['text_list'] = $this->language->get('text_list');
                $this->data['text_grid'] = $this->language->get('text_grid');
                $this->data['text_sort'] = $this->language->get('text_sort');
                $this->data['text_limit'] = $this->language->get('text_limit');
                       
                $this->data['button_cart'] = $this->language->get('button_cart');
                $this->data['button_wishlist'] = $this->language->get('button_wishlist');
                $this->data['button_compare'] = $this->language->get('button_compare');
                $this->data['button_continue'] = $this->language->get('button_continue');
               
                // Set the last category breadcrumb       
                $url = '';
               
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }   
               
                if (isset($this->request->get['page'])) {
                    $url .= '&page=' . $this->request->get['page'];
                }
               
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
                                       
                $this->data['breadcrumbs'][] = array(
                    'text'      => $category_info['name'],
                    'href'      => $this->url->link('product/category', 'path=' . $this->request->get['path']),
                    'separator' => $this->language->get('text_separator')
                );
                                   
                       
                if ($category_info['image']) {
                    $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
                    $this->document->setOgImage($this->data['thumb']);
                } else {
                    $this->data['thumb'] = '';
                }
                                       
                $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
                $this->data['compare'] = $this->url->link('product/compare');
               
                $url = '';
               
                if (isset($this->request->get['filter'])) {
                    $url .= '&filter=' . $this->request->get['filter'];
                }   
    
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }   
               
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
                                   
                $this->data['categories'] = array();
               
                $results = $this->model_catalog_category->getCategories($category_id);
               
                foreach ($results as $result) {
                    $data = array(
                        'filter_category_id'  => $result['category_id'],
                        'filter_sub_category' => true
                    );
                   
                    $product_total = $this->model_catalog_product->getTotalProducts($data);               
                   
    
        $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
       
                    $this->data['categories'][] = array(
                        'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
                        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
    
        , 'thumb' => $image
       
                        'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
                    );
                }
               
                $this->data['products'] = array();
               
                $data = array(
                    'filter_category_id' => $category_id,
                    'filter_filter'      => $filter,
                    'sort'               => $sort,
                    'order'              => $order,
                    'start'              => ($page - 1) * $limit,
                    'limit'              => $limit
                );
                       
                $results = $this->model_catalog_product->getProducts($data);
                //Вызов метода getFoundProducts должен проводится сразу же после getProducts
                //только тогда он выдает правильное значения количества товаров
                $product_total = $this->model_catalog_product->getFoundProducts();
               
                foreach ($results as $result) {
                    if ($result['image']) {
                        $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    } else {
                        $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    }
                   
                    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                    } else {
                        $price = false;
                    }
                   
                    if ((float)$result['special']) {
                        $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
                    } else {
                        $special = false;
                    }   
                   
                    if ($this->config->get('config_tax')) {
                        $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
                    } else {
                        $tax = false;
                    }               
                   
                    if ($this->config->get('config_review_status')) {
                        $rating = (int)$result['rating'];
                    } else {
                        $rating = false;
                    }
                                   
                    $this->data['products'][] = array(
                        'product_id'  => $result['product_id'],
                        'thumb'       => $image,
                        'name'        => $result['name'],
                        'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',
                        'price'       => $price,
                        'special'     => $special,
                        'tax'         => $tax,
                        'rating'      => $result['rating'],
                        'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                        'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
                    );
                }
               
                $url = '';
               
                if (isset($this->request->get['filter'])) {
                    $url .= '&filter=' . $this->request->get['filter'];
                }
                   
       
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
                                           
                $this->data['sorts'] = array();
               
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_default'),
                    'value' => 'p.sort_order-ASC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
                );
               
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_name_asc'),
                    'value' => 'pd.name-ASC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)
                );
    
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_name_desc'),
                    'value' => 'pd.name-DESC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url)
                );
    
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_price_asc'),
                    'value' => 'p.price-ASC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)
                );
    
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_price_desc'),
                    'value' => 'p.price-DESC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url)
                );
               
                if ($this->config->get('config_review_status')) {
                    $this->data['sorts'][] = array(
                        'text'  => $this->language->get('text_rating_desc'),
                        'value' => 'rating-DESC',
                        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url)
                    );
                   
                    $this->data['sorts'][] = array(
                        'text'  => $this->language->get('text_rating_asc'),
                        'value' => 'rating-ASC',
                        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url)
                    );
                }
               
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_model_asc'),
                    'value' => 'p.model-ASC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url)
                );
    
                $this->data['sorts'][] = array(
                    'text'  => $this->language->get('text_model_desc'),
                    'value' => 'p.model-DESC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url)
                );
               
                $url = '';
               
                if (isset($this->request->get['filter'])) {
                    $url .= '&filter=' . $this->request->get['filter'];
                }
    
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }
               
                $this->data['limits'] = array();
               
       
                $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100));
               
                sort($limits);
       
                foreach($limits as $limits){
                    $this->data['limits'][] = array(
                        'text'  => $limits,
                        'value' => $limits,
                        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits)
                    );
                }
               
                $url = '';
               
    
                if (isset($this->request->get['filter'])) {
                    $url .= '&filter=' . $this->request->get['filter'];
                }
    
               
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }
       
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
                       
                $pagination = new Pagination();
                $pagination->total = $product_total;
                $pagination->page = $page;
                $pagination->limit = $limit;
                $pagination->text = $this->language->get('text_pagination');
                $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');
           
                $this->data['pagination'] = $pagination->render();
           
                $this->data['sort'] = $sort;
                $this->data['order'] = $order;
                $this->data['limit'] = $limit;
           
                $this->data['continue'] = $this->url->link('common/home');
    
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
                    $this->template = $this->config->get('config_template') . '/template/product/category.tpl';
                } else {
                    $this->template = 'default/template/product/category.tpl';
                }
               
                $this->children = array(
                    'common/column_left',
                    'common/column_right',
                    'common/content_top',
                    'common/content_bottom',
                    'common/footer',
                    'common/header'
                );
                   
                $this->response->setOutput($this->render());                                       
            } else {
                $url = '';
               
                if (isset($this->request->get['path'])) {
                    $url .= '&path=' . $this->request->get['path'];
                }
               
                if (isset($this->request->get['filter'])) {
                    $url .= '&filter=' . $this->request->get['filter'];
                }
                   
                                       
                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }   
    
                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }
                   
                if (isset($this->request->get['page'])) {
                    $url .= '&page=' . $this->request->get['page'];
                }
                           
                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }
                           
                $this->data['breadcrumbs'][] = array(
                    'text'      => $this->language->get('text_error'),
                    'href'      => $this->url->link('product/category', $url),
                    'separator' => $this->language->get('text_separator')
                );
                   
                $this->document->setTitle($this->language->get('text_error'));
    
                  $this->data['heading_title'] = $this->language->get('text_error');
    
                  $this->data['text_error'] = $this->language->get('text_error');
    
                  $this->data['button_continue'] = $this->language->get('button_continue');
    
                  $this->data['continue'] = $this->url->link('common/home');
    
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                    $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
                } else {
                    $this->template = 'default/template/error/not_found.tpl';
                }
               
                $this->children = array(
                    'common/column_left',
                    'common/column_right',
                    'common/content_top',
                    'common/content_bottom',
                    'common/footer',
                    'common/header'
                );
                       
                $this->response->setOutput($this->render());
            }
          }
    }
    ?>
     
  5. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    найдите вкмод судя по коду он что-то делает с картинкой категории и добавляет
    Код:
    , 'thumb' => $image
    ето лишнее так как в етом масиве уже есть thumb
     
    five555 и Анатолий1115 нравится это.
  6. AnOcToJI

    AnOcToJI

    Регистрация:
    28 дек 2012
    Сообщения:
    309
    Симпатии:
    188
    nix, как раз это то и не лишнее модуль добавляет вроде как
    Код:
                        'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
    
    ошибка в xml модуля, судя по всему
    это
    Код:
    'thumb' => $image
    должно меняться на это
    Код:
    'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
     
  7. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    жмет шлем видимо...

    как раз и нет, а так как написал я, если тебя терзает то что ключу тумбс задана переменая просто то уверяю тебя, в ней безошибочно обработана картинка библиотекой картинки, чуть выше... а ета отсебятина вкмодовская не просто криво вставляет с лишней запятой так она еще одинаковый имя ключа имеет....
     
    five555 и Анатолий1115 нравится это.
  8. Анатолий1115

    Анатолий1115

    Регистрация:
    6 окт 2013
    Сообщения:
    166
    Симпатии:
    8
    Зашел через пару дней, категория не открывается, посмотрел, а этот код сам добавился..
    --- Добавлено, 1 мар 2014 ---
    В общем поставил оригинальный опенкарт, вроде ошибка пропала, но появилась другая, при переходе на русский язык на сайте исчезает этот логотип
    http://prntscr.com/2ww5lc
    как быть?

    В общем решил проблему так. Установил стандартный опенкарт, а не осторе.
     
    Lasted edited by : 2 мар 2014