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

И опять сортировка


makarseo

Recommended Posts

Всем привет. Помогите решить задачку. (я перерыл все форумы, темы и не только здесь, все пишут один и тот же способ который не работает).

 

И так задача:

Сделать сортировку по умолчанию (которая стоит в категории, когда ты в нее заходишь) всех товаров по алфавиту или от А до Я.

 

Все пишут сделать изменения в файле /catalog/controller/productcategory.php, а именно здесь:

1. Сортировка по умолчанию.

$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.name-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);

2. Сортировка вверху файла.

if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'pd.name';
		}

 

К сожалению ничего из этого не работает. Либо работает, если сначала выбираем другую сортировку, а после выбираем "по умолчанию" тогда она у нас работает. Но:

1. Она добавляет к урл значение ?sort=pd.name&order=ASC

2. Она не работает для новых клиентов, которые не выбирали ничего из сортировки.

 

От сюда вопрос, как сделать, что бы вообще на всем сайте по умолчанию было от А до Я и без приставок к url?

Версия ocStore 2.3.0.2.3

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


4 минуты назад, makarseo сказал:

все пишут один и тот же способ который не работает).

 

способ работает, видимо вы что-то не так делаете либо шаблон мешает либо какой-то модификатор

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

3 минуты назад, spectre сказал:

 

способ работает, видимо вы что-то не так делаете либо шаблон мешает либо какой-то модификатор

 

Все так, несколько раз перепробывал все различные варианты. Шаблон Tech Store, вроде как грамотный шаблон. Но таки у него изначально заложена сортировки по наличию, но вот где копать? Ведь отдельного модуля такого я не нахожу, так же как и в модификаторах.

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


Вопрос закрыт. Решил сам....

 

Суть:

В шаблоне установлен модуль Octemplates - Product Filter, который выполняет сортировку, например товары не в наличии, показывает в конце списка. Но у него почему то нет функции выбора сортировок по умолчанию.

 

По этому идем в модификатор модуль и удаляем от туда код, который отвечает непосредственно за перебитие стандартной сортировки по умолчанию. В нашем случае это:

<operation error="skip">
      <search index="0"><![CDATA[if (isset($this->request->get['sort'])) {]]></search>
      <add position="before"><![CDATA[
      if (isset($oct_product_filter_data['default_sort'])) {
        $oct_product_filter_default_sort = explode('|', $oct_product_filter_data['default_sort']);
      } else {
        $oct_product_filter_default_sort = array(0 => 'p.sort_order', 1 => 'order=ASC');
      }
      $oct_product_filter_default_order = str_replace('order=', '', $oct_product_filter_default_sort[1]);
      ]]></add>
    </operation>
    <operation error="skip">
      <search index="0"><![CDATA[$sort = $this->request->get['sort'];]]></search>
      <add position="after"><![CDATA[
      } elseif ($oct_product_filter_status && $oct_product_filter_data['default_sort']) {
        $sort = $oct_product_filter_default_sort[0];
      ]]></add>
    </operation>
    <operation error="skip">
      <search index="0"><![CDATA[$order = $this->request->get['order'];]]></search>
      <add position="after"><![CDATA[
      } elseif ($oct_product_filter_status && $oct_product_filter_data['default_sort']) {
        $order = $oct_product_filter_default_order;
      ]]></add>
    </operation>

И вуаля, все работает: Работает стандартная сортировка ту которую укажешь (в моем случае от А до Я) и нужна сортировка по наличию от этого самого модуля.

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


В 15.06.2018 в 15:42, Otvet сказал:
  Показать контент

1444836484189373345.gif

 

 

Да, грамотный. Сделан правильно и четко. Но вот такой косяк там есть. Так, что может кому пригодится =)

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


  • 2 weeks later...

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

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

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

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

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

Вхід

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

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

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

Important Information

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