Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Дублирование функции


Gra4Vampir

Recommended Posts

Вчера столкнулся с такой проблемой, что периодически в /public_html/vqmod/vqcache/vq2-admin_model_catalog_product.php дублируется функция getProductMainCategoryId, из-за чего в админке Каталог-Товары открывается в виде белого экрана. Фиксится только удалением одной из функций. Так же при редактировании товара появляется два меню выбора глав. категории. В одной - нормальный перечень, в другой - не очень. (на скрине видно)

 

error.jpg

 

Из за чего так происходит и как это фиксить?

Надіслати
Поділитися на інших сайтах


Ну обращение идет только в seo_pro.xml

<file name="admin/controller/catalog/product.php">
                <operation>
                        <search position="after"><![CDATA[$this->data['entry_layout'] = $this->language->get('entry_layout');]]></search>
                        <add><![CDATA[		$this->data['entry_main_category'] = $this->language->get('entry_main_category');]]></add>
                </operation>
                <operation>
                        <search position="after"><![CDATA[$this->data['product_categories'] = array();]]></search>
                        <add><![CDATA[		if (isset($this->request->post['main_category_id'])) {
			$this->data['main_category_id'] = $this->request->post['main_category_id'];
		} elseif (isset($product_info)) {
			$this->data['main_category_id'] = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']);
		} else {
			$this->data['main_category_id'] = 0;
		}]]></add>
                </operation>
        </file>
<file name="admin/model/catalog/product.php">
                <operation>
                        <search position="before"><![CDATA[if (isset($data['product_related'])) {]]></search>
                        <add><![CDATA[
			if (isset($data['main_category_id']) && $data['main_category_id'] > 0) {
			
			$this->db->query("DELETE FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND category_id = '" . (int)$data['main_category_id'] . "'");
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '" . (int)$product_id . "', category_id = '" . (int)$data['main_category_id'] . "', main_category = 1");
		} elseif (isset($data['product_category'][0])) {
			$this->db->query("UPDATE " . DB_PREFIX . "product_to_category SET main_category = 1 WHERE product_id = '" . (int)$product_id . "' AND category_id = '" . (int)$data['product_category'][0] . "'");
		}]]></add>
                </operation>
                <operation>
                        <search position="before"><![CDATA[public function getProductRelated($product_id) {]]></search>
                        <add><![CDATA[	public function getProductMainCategoryId($product_id) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND main_category = '1' LIMIT 1");

		return ($query->num_rows ? (int)$query->row['category_id'] : 0);
	}]]></add>
                </operation>
        </file>
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Сегодня столкнулся с такой же проблемой. Может кому-то пригодиться. Решил так:

В seo_pro.xml находим код:

<operation>
                        <search position="before"><![CDATA[public function getProductRelated($product_id) {]]></search>
                        <add><![CDATA[	public function getProductMainCategoryId($product_id) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND main_category = '1' LIMIT 1");

		return ($query->num_rows ? (int)$query->row['category_id'] : 0);
	}]]></add>
                </operation>

И закомментировал вот эту часть:

public function getProductMainCategoryId($product_id) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "' AND main_category = '1' LIMIT 1");

		return ($query->num_rows ? (int)$query->row['category_id'] : 0);
	}

Или можно просто удалить весь первый кусок кода.

Я конечно ещё не проверил, как это отразится в общем на работе сайта, потому-что наверное не просто так туда этот кусок кода вставили. Но возможно просто какое-то не соответствие в версиях движка или ещё что-то. Но думаю все будет норм.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.