Перейти к содержанию
Gra4Vampir

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

Рекомендуемые сообщения

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

 

error.jpg

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно что два модуля конфиликтуют

 

Нужно найти в XML - кто, зачем и почему.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну обращение идет только в 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>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот прям 100% уверен, что это из-за подключения seopro, но как это фиксить - без понятия. Помогите, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

В 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.