[Помогите] Vehicle Year Make Model Engine Filter не фильтрует

Тема в разделе "OpenCart", создана пользователем artem2233, 13 апр 2017.

  1. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    Всем привет!
    Поставил модуль Vehicle Year Make Model Engine Filter 2.5, забил в админ панели марку, модель, тип запчасти, а он на самом сайте их не видит(на скриншоте видно)
    [​IMG]
    [​IMG]

    а когда нажимаешь кнопку submit выдает ошибку
    [​IMG]
    помогите решить проблему..
     
    Последнее редактирование: 14 апр 2017
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    У вас один (или больше) модификатор vQmod не применился.
    Откройте файл с модификаторами, найдите там объявление метода указанного в ошибке и пропишите в оригинал файла указанного в ошибке. Но это решит только проблему конкретно с этой ошибкой, а у того, что в фильтре параметры не выводятся причина, вероятно. в других не прописавшихся модификаторах.
     
    artem2233 нравится это.
  3. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    теперь появилась эта ошибка Fatal error: Cannot redeclare ModelCatalogProduct::__construct() in /home/autointe/domains/autointeres.ru/public_html/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 22
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Посмотрите в этом файле сколько раз у вас объявлен метод __construct() и совпадает ли его код во всех объявлениях.
    Скорее всего, у вас два разных модуля его туда прописали.
     
    artem2233 нравится это.
  5. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    PHP:
        public function __construct($registry) {
            
    $this->NOW date('Y-m-d H:i') . ':00';
            
    parent::__construct($registry);
        }

        private 
    $FOUND_ROWS;

        public function 
    getFoundProducts() {
            return 
    $this->FOUND_ROWS;
        }

        protected 
    $ymm_cache;
        protected 
    $ymm_where;

        public function 
    __construct($registry)
        {
            
    parent::__construct($registry);
            
    $this->ymm_cache $this->setYmmCache();
            
    $this->ymm_where $this->setYmmWhere();
        }
     
    Lasted edited by : 15 апр 2017
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Найдите в модификаторах этого модуля, где прописывается __construct и выложите этот блок сюда.
     
    artem2233 нравится это.
  7. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    Dotrox, здесь прописан:

     
    Lasted edited by : 16 апр 2017
  8. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вот найдите там кусочек, который за это отвечает и выложите сюда. Я это за вас делать не буду.
     
    artem2233 нравится это.
  9. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    public function __construct($registry)
    {
    parent::__construct($registry);
    $this->ymm_cache = $this->setYmmCache();
    $this->ymm_where = $this->setYmmWhere();
    }
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Нет, я просил весь модификатор, который отвечает за вставку этого кода, а не только сам код. Как код выглядит и так понятно по тому, что вставилось в файл.
    Если выложите весь модификатор (только этой вставки, а не всё содержимое файла), я смогу его подправить под ваш случай.
     
    artem2233 нравится это.
  11. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    Dotrox,
    Код:
        <file name="catalog/model/catalog/product.php">
            <operation>
                <search position="before"><![CDATA[public function updateViewed($product_id) {]]></search>
                <add><![CDATA[    protected $ymm_cache;
        protected $ymm_where;
    
        public function __construct($registry)
        {
            parent::__construct($registry);
            $this->ymm_cache = $this->setYmmCache();
            $this->ymm_where = $this->setYmmWhere();
        }
    
        private function setYmmCache()
        {
            $ymm_cache = '';
            if(isset($this->session->data['ymm'])){
                $ymm_cache .= '.' . (int)$this->session->data['ymm']['make'];
                if(!empty($this->session->data['ymm']['model'])){
                    $ymm_cache .= '.' . (int)$this->session->data['ymm']['model'];
                }
                if(!empty($this->session->data['ymm']['engine'])){
                    $ymm_cache .= '.' . (int)$this->session->data['ymm']['engine'];
                }
                if(!empty($this->session->data['ymm']['year'])){
                    $ymm_cache .= '.' . (int)$this->session->data['ymm']['year'];
                }
            }
            return $ymm_cache;
        }
    
        private function setYmmWhere()
        {
            $ymm_where = '';
            if(isset($this->session->data['ymm'])){
                $ymm_where .= "(p.product_id IN (SELECT p2y.product_id FROM " . DB_PREFIX . "product_to_ymm p2y WHERE p2y.make_id = '" . $this->session->data['ymm']['make'] . "'";
                if(!empty($this->session->data['ymm']['model'])){
                    $ymm_where .= " AND p2y.model_id = '" . $this->session->data['ymm']['model'] . "'";
                }
                if(!empty($this->session->data['ymm']['engine'])){
                    $ymm_where .= " AND p2y.engine_id = '" . $this->session->data['ymm']['engine'] . "'";
                }
                if(!empty($this->session->data['ymm']['year'])){
                    $ymm_where .= " AND p2y.begin_year <= '" . $this->session->data['ymm']['year'] . "' AND p2y.end_year >= '" . $this->session->data['ymm']['year'] . "'";
                }
                $ymm_where .= ") OR p.product_id IN (SELECT p2.product_id FROM " . DB_PREFIX . "product p2 WHERE p2.universal = '1')) AND ";
            }
            return $ymm_where;
        }
    ]]></add>
            </operation>
            <operation error="skip">
                <search position="replace"><![CDATA['.' . $cache]]></search>
                <add><![CDATA[$this->ymm_cache . '.' . $cache]]></add>
            </operation>
            <operation>
                <search position="replace"><![CDATA[WHERE pd.language_id]]></search>
                <add><![CDATA[WHERE " . $this->ymm_where . "pd.language_id]]></add>
            </operation>
            <operation>
                <search position="replace"><![CDATA[WHERE p.status = '1']]></search>
                <add><![CDATA[WHERE " . $this->ymm_where . "p.status = '1']]></add>
            </operation>
            <operation error="skip">
                <search position="replace"><![CDATA['.' . (int)$limit]]></search>
                <add><![CDATA[$this->ymm_cache . '.' . (int)$limit]]></add>
            </operation>
            <operation error="skip">
                <search position="replace"><![CDATA['.' . $limit]]></search>
                <add><![CDATA[$this->ymm_cache . '.' . $limit]]></add>
            </operation>
            <operation error="skip">
                <search position="replace"><![CDATA['.' . $customer_group_id]]></search>
                <add><![CDATA[$this->ymm_cache . '.' . $customer_group_id]]></add>
            </operation>
        </file>
    это?
     
  12. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Замените это:
    PHP:
    <operation>
                <
    search position="before"><![CDATA[public function updateViewed($product_id) {]]></search>
                <
    add><![CDATA[    protected $ymm_cache;
        protected 
    $ymm_where;

        public function 
    __construct($registry)
        {
            
    parent::__construct($registry);
            
    $this->ymm_cache $this->setYmmCache();
            
    $this->ymm_where $this->setYmmWhere();
        }

        private function 
    setYmmCache()
        {
            
    $ymm_cache '';
            if(isset(
    $this->session->data['ymm'])){
                
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['make'];
                if(!empty(
    $this->session->data['ymm']['model'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['model'];
                }
                if(!empty(
    $this->session->data['ymm']['engine'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['engine'];
                }
                if(!empty(
    $this->session->data['ymm']['year'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['year'];
                }
            }
            return 
    $ymm_cache;
        }
    На это:
    PHP:
    <operation>
                <
    search position="after"><![CDATA[parent::__construct($registry);]]></search>
                <
    add><![CDATA[
            
    $this->ymm_cache $this->setYmmCache();
            
    $this->ymm_where $this->setYmmWhere();
        ]]></
    add>
    </
    operation>
    <
    operation>
                <
    search position="before"><![CDATA[public function updateViewed($product_id) {]]></search>
                <
    add><![CDATA[    protected $ymm_cache;
        protected 
    $ymm_where;
        private function 
    setYmmCache()
        {
            
    $ymm_cache '';
            if(isset(
    $this->session->data['ymm'])){
                
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['make'];
                if(!empty(
    $this->session->data['ymm']['model'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['model'];
                }
                if(!empty(
    $this->session->data['ymm']['engine'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['engine'];
                }
                if(!empty(
    $this->session->data['ymm']['year'])){
                    
    $ymm_cache .= '.' . (int)$this->session->data['ymm']['year'];
                }
            }
            return 
    $ymm_cache;
        }
    После чего очистите кеш vQmod.
     
    artem2233 нравится это.
  13. artem2233

    artem2233

    Регистрация:
    12 июн 2016
    Сообщения:
    16
    Симпатии:
    0
    Dotrox, все спасибо!