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

сортировка в производителе, категориях, подкатегориях опенкарт 2


lubov17

Recommended Posts

все,сдаюсь

весь форум перерыла, опенкарт версия 2031

в категории добилась результата вывода новых товаров в начало с помощью кода

 

catalog/controller/product/category.php

код

		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['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.date_added';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'DESC';
		}

НО, это не то что мне хотелось. 
Ребята, как сделать так, чтобы в категориях,подкатегориях, производителе  в конце выводились товары с нулевым остатком, а не в перемешку.

 

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


пробовала много кодов, спасибо этой теме нашла еще один вариант и сработало!!!!ура)))

 

catalog\model\catalog\product.php  

		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
				$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
			} elseif ($data['sort'] == 'p.price') {
				$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
			} else {
				$sql .= " ORDER BY " . $data['sort'];
			}
		} else {
			$sql .= " ORDER BY p.sort_order";	
		}

меняем на 

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
				$sql .= " ORDER BY (p.quantity>0) DESC, LCASE(" . $data['sort'] . ")";
			} elseif ($data['sort'] == 'p.price') {
				$sql .= " ORDER BY (p.quantity>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
			} else {
				$sql .= " ORDER BY (p.quantity>0) DESC," . $data['sort'];
			}
		} else {
			$sql .= " ORDER BY (p.quantity>0) DESC, p.sort_order";	
		}
Надіслати
Поділитися на інших сайтах


Расшифровую это:

Скрытый текст

<file path="catalog/model/catalog/product.php">
		<operation>
        <search><![CDATA[$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";]]></search>
        <add position="replace"><![CDATA[$sql .= " ORDER BY (p.quantity>0) DESC, LCASE(" . $data['sort'] . ")";]]></add>
        </operation>
	    <operation>
        <search><![CDATA[} elseif ($data['sort'] == 'p.price') {]]></search>
        <add position="replace"><![CDATA[} elseif ($data['sort'] == 'p.price') {]]></add>
        </operation>
		<operation>
        <search><![CDATA[$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";]]></search>
        <add position="replace"><![CDATA[$sql .= " ORDER BY (p.quantity>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";]]></add>
        </operation>
        <operation>
        <search><![CDATA[$sql .= " ORDER BY " . $data['sort'];]]></search>
        <add position="replace"><![CDATA[$sql .= " ORDER BY (p.quantity>0) DESC," . $data['sort'];]]></add>
        </operation>
        <operation>
        <search><![CDATA[$sql .= " ORDER BY p.sort_order";]]></search>
        <add position="replace"><![CDATA[$sql .= " ORDER BY (p.quantity>0) DESC, p.sort_order";]]></add>
        </operation>
  </file>

 

Открываем файл: catalog/model/catalog/product.php

Ищем: 

$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";

Заменяем на:

$sql .= " ORDER BY (p.quantity>0) DESC, LCASE(" . $data['sort'] . ")";

Ищем:

} elseif ($data['sort'] == 'p.price') {

Заменяем на:

} elseif ($data['sort'] == 'p.price') {

Ищем:

$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";

Заменяем на:

$sql .= " ORDER BY (p.quantity>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";

Ищем:

$sql .= " ORDER BY " . $data['sort'];

Заменяем на:

$sql .= " ORDER BY (p.quantity>0) DESC," . $data['sort'];

Ищем:

$sql .= " ORDER BY p.sort_order";

Заменяем на:

$sql .= " ORDER BY (p.quantity>0) DESC, p.sort_order";

 

 

Если так проще, чем залить файл в папку system. Затем перейти в админку, Дополнения->Менеджер дополнений и нажать кнопку обновить...

 

То да, наверное...

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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