Перейти к содержанию
Официальный форум поддержки Simpla

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

в api/Products.php

между 
 

 		if(!empty($filter['sort']))
			switch ($filter['sort'])
			{
				case 'position':
				$order = 'p.position DESC';
				break;
				case 'name':
				$order = 'p.name';
				break;
				case 'created':
				$order = 'p.created DESC';
				break;
				case 'price':
				//$order = 'pv.price IS NULL, pv.price=0, pv.price';
				$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
				break;
			}

 

вставляем 
 

		if(!empty($filter['sort']))
			switch ($filter['sort'])
			{
				// По умолчанию
				case 'position':
				$order = 'p.position DESC';
				break;
				
				// по имени от А до Я
				case 'name_asc':
				$order = 'p.name';
				break;
				
				// по имени от Я до А
				case 'name_desc':
				$order = 'p.name DESC';
				break;
				
				case 'created':
				$order = 'p.created DESC';
				break;
				
				// по цене Низкие > Высокие
				case 'price_asc':
				$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
				break;
				
				// по цене Высокие < Низкие
				case 'price_desc':
				$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1) DESC';
				break;

			}

 


в шаблоне products.tpl 

 


{* Сортировка *}
{if $products|count>0}
<div class="sort">
		<b>Сортировать по:</b>
		<select onchange="location = this.value;">
			<option value="{url sort=position page=null}"{if $sort=='position'} selected="selected"{/if}>По умолчанию</option>
			<option value="{url sort=name_asc page=null}"{if $sort=='name_asc'} selected="selected"{/if}>Имени от А до Я</option>
			<option value="{url sort=name_desc page=null}"{if $sort=='name_desc'} selected="selected"{/if}>Имени от Я до А</option>
			<option value="{url sort=price_asc page=null}"{if $sort=='price_asc'} selected="selected"{/if}>Ценам: Низкие > Высокие</option>
			<option value="{url sort=price_desc page=null}"{if $sort=='price_desc'} selected="selected"{/if}>Ценам: Высокие < Низкие</option>
		</select>
</div>
{/if}
Ссылка на сообщение
Поделиться на другие сайты

я сделал еще по рейтингу (не стандартное дополнение) и по просмотрам (тоже не стандартное дополнение), обращайся в личку если хочешь, напишу код.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...