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

Фильтр товаров в админке не принадлежащих ни к одной категории


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

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

 

Начал с этого:

	<!-- Фильтры -->
	<ul id="all_filter">
		<li {if !$filter}class="selected"{/if}><a href="{url brand_id=null category_id=null keyword=null page=null filter=null}">Все товары</a></li>
		<li {if $filter=='nosorting'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='nosorting'}">Не сортированные</a></li>
		<li {if $filter=='featured'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='featured'}">Рекомендуемые</a></li>
		<li {if $filter=='discounted'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='discounted'}">Со скидкой</a></li>
		<li {if $filter=='visible'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='visible'}">Активные</a></li>
		<li {if $filter=='hidden'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='hidden'}">Неактивные</a></li>
		<li {if $filter=='outofstock'}class="selected"{/if}><a href="{url keyword=null brand_id=null category_id=null page=null filter='outofstock'}">Отсутствующие</a></li>
	</ul>
	<!-- Фильтры -->

 

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

Смотря что иметь в виду под "лаконичное"...

Если хотите к своему коду добавить одну волшебную строку и все заработает, то вряд ли так получится.

Реально надо смотреть, как работает, например, фильтрация Со скидкой, и действовать по аналогии - аккуратненько, во всех файлах, которых это касается.

А пока у Вас только вывеска нарисована...

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

Шаблон в последнюю очередь, начните с api/Products.php, simpla/ProductsAdmin.php, добавьте доп. сортировку.

Спасибо, я надеялся что можно использовать существующие объекты, каким то для меня не знакомым образом (магия симплы)))), что бы не создавать новые. Добро, пойдем в этом направлении.

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

В общем выложу свое решение, раз тема поднята была.

 


		if(!empty($filter['nosorting']))
			$nosorting_filter = $this->db->placehold('NOT IN (SELECT 1 FROM __products_categories pc WHERE pc.product_id = p.id) = ?', intval($filter['nosorting']));

это запрос к БД по фильтру отсутствующих товаров в категориях (то есть - товаров не принадлежащих ни к одной категории)

остальное делается по аналогии как выше заметил Kors.

Собственно для чего нужен такой фильтр? - Выборка товаров нуждающихся в сортировке по категориям.

 

Ссылка на сообщение
Поделиться на другие сайты
  • 6 лет спустя...
В 01.11.2016 в 19:03, Алексей Склейнов сказал:

В общем выложу свое решение, раз тема поднята была.

 



		if(!empty($filter['nosorting']))
			$nosorting_filter = $this->db->placehold('NOT IN (SELECT 1 FROM __products_categories pc WHERE pc.product_id = p.id) = ?', intval($filter['nosorting']));

это запрос к БД по фильтру отсутствующих товаров в категориях (то есть - товаров не принадлежащих ни к одной категории)

остальное делается по аналогии как выше заметил Kors.

Собственно для чего нужен такой фильтр? - Выборка товаров нуждающихся в сортировке по категориям.

 

А можно такое сделать для товаров где вариантов больше одного? 

Чтоб в админке можно было посмотреть сколько товаров с вариантами.

Ссылка на сообщение
Поделиться на другие сайты
			if(isset($filter['visible_outofstock']))
			$visible_outofstock_filter = $this->db->placehold('AND p.visible=1 AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['visible_outofstock']));

			if(isset($filter['modification']))
			$modification_filter = $this->db->placehold('AND p.visible=1 AND (SELECT COUNT(*) FROM __variants pv WHERE pv.product_id=p.id AND pv.stock=0) > ?', intval($filter['modification']));

Может кому пригодится.

1 фильтр это товары которые активные и которые не в наличии. ( в параметр фильтра передаем 0 )

2 фильтр  это товары которые активны, не в наличии и имеют модификации. (в параметр фильтра передаем 1)

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

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

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

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

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

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

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

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

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

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