Перейти к содержимому


Фотография
- - - - -

Произвольная сортировка каталога с фронта. ХАК. Делаем сами.

сортировка

Сообщений в теме: 12

#11 mr.varhola

mr.varhola

Отправлено 26 October 2019 - 04:45

К сожалению нет.

и так тоже нет:

$order[field] = 'e2f56125-d1af-4772-9890-742c61e026ac,corecreated';
$order[mode] = 's,s';
$order[order] = 'asc,desc';

для фильтра получается можно выбрать сортировку только по одному параметру и все.


Если у кого-то есть варианты добавления дополнительного параметра сортировки для фильтра - буду очень благодарен)


  • 0

#12 CB9TOIIIA

CB9TOIIIA

Отправлено 26 October 2019 - 16:02

как вариант попробовать разные варианты с URL прямо в браузере - а потом закодить дело сноровки)


  • 0

#13 triode-master

triode-master

Отправлено 20 August 2021 - 22:38

Рецепт работает.

Есть нюансы, когда вставляем в Открываем файл media\zoo\applications\jbuniversal\framework\controllers\search.php

//Блок сортировок для фильтра---------------------------------------------
		//jbdump ($order,0); //Используйте эту строку, если у вас подключен JBdump
		//echo '<pre>';print_r ($order);echo '</pre>'; //Используйте эту строку, если у вас не подключен JBdump покажет значения выбраной сортировки
		//print 'Текущее значение сессии сортировки: '.$_SESSION['orderkit']; //Посмотреть текущее значение сессии для сортировки
 
		if ($this->app->zoo->getApplication()->id == 1) { //проверяем в каком приложении мы находимся
		
		if ($_SESSION['orderkit'] == "") {$_SESSION['orderkit'] = 'price_asc';} //устанавливаем значение сортировки по умолчанию.
		//Получаем переменную для направления сортировки 
		if (isset($_GET['orderkit'])) { $_SESSION['orderkit'] = $_GET['orderkit'];} //Меняем сортировку, если есть ключ в URL
		
			if (isset($_SESSION['orderkit'])) {
					switch ($_SESSION['orderkit']) {
					case 'price_asc':
						$order[field] = '01ab859d-e9ce-42a3-b24b-4d11422bba90___value';
						$order[mode] = 'n';
						$order[order] = 'asc';
						break;
					case 'price_desc':
						$order[field] = '01ab859d-e9ce-42a3-b24b-4d11422bba90___value';
						$order[mode] = 'n';
						$order[order] = 'desc';	
						break;
					case 'popular_desc':
						$order[field] = '_jbzoo_0_field_corehits';
						$order[mode] = 'n';
						$order[order] = 'desc';	
						break;
					case 'date_asc':
						$order[field] = 'corecreated';
						$order[mode] = 'd';
						$order[order] = 'asc';
						break;
					case 'date_desc':
						$order[field] = 'corecreated';
						$order[mode] = 'd';
						$order[order] = 'desc';
						break;						
					}
			}
		}
 

То получаем варнинги

Use of undefined constant mode - assumed 'mode' (this will throw an Error in a future version of PHP)

чтобы от них избавится , надо во всех case сделать так $order['field'].

Ну собственно о чем и говорит пояснение ошибки.

Просто это из-за того что у меня php 7.3, а код был написан на более ранней версии.

 

И по личным предпочтениям то что надо поместить в media\zoo\applications\jbuniversal\templates\catalog\category.php 

я переместил /media/zoo/applications/jbuniversal/templates/catalog/renderer/category/_default.php

к заголовку


Сообщение отредактировал triode-master: 20 August 2021 - 22:39

  • 1





Темы с аналогичным тегами сортировка

Click to return to top of page in style!