Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


lubov17
 Поделиться

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

все,сдаюсь

весь форум перерыла, опенкарт версия 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 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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