Всем привет! Поставил модуль Vehicle Year Make Model Engine Filter 2.5, забил в админ панели марку, модель, тип запчасти, а он на самом сайте их не видит(на скриншоте видно) а когда нажимаешь кнопку submit выдает ошибку помогите решить проблему..
У вас один (или больше) модификатор vQmod не применился. Откройте файл с модификаторами, найдите там объявление метода указанного в ошибке и пропишите в оригинал файла указанного в ошибке. Но это решит только проблему конкретно с этой ошибкой, а у того, что в фильтре параметры не выводятся причина, вероятно. в других не прописавшихся модификаторах.
теперь появилась эта ошибка 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
Посмотрите в этом файле сколько раз у вас объявлен метод __construct() и совпадает ли его код во всех объявлениях. Скорее всего, у вас два разных модуля его туда прописали.
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(); }
public function __construct($registry) { parent::__construct($registry); $this->ymm_cache = $this->setYmmCache(); $this->ymm_where = $this->setYmmWhere(); }
Нет, я просил весь модификатор, который отвечает за вставку этого кода, а не только сам код. Как код выглядит и так понятно по тому, что вставилось в файл. Если выложите весь модификатор (только этой вставки, а не всё содержимое файла), я смогу его подправить под ваш случай.
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> это?
Замените это: 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.