Логика работы фильтра планируется такая:
1. выбор типа контента (все, фильм, сериал, мультфильм, тв)
2. выбор категории контента (комедия, боевик, фантастика...)
3. выбор года ( 2020,2019,2018...)
4. выбор страны (сша, россия, украина....)
Далее есть у нас урлы вида:
1. domain.tv/type/фильмы , domain.tv/type/сериалы ....
2. для категорий параметр genre="название категории"
3. для года параметр year="название года"
4. для страны параметр country="название страны"
фильтр должен понимать и определять переменные в урле. (для этого я написал на квери скрипт который разбирает window.location.href на параметры, и полученные параметры подставляю в элементы.
пример1 если есть в урле /type/фильмы , то в поле выбранного типа я подставляю фильмы, если нет парамента null значение (все).
пример2 если есть в урле year="2020" , то берем переменную забираем только ее значение 2020 и подставляем в элемент года, если 0 значение или нет параметра выводим все.
и так далее по всем параметрам.
далее, выбор и формирование нового урла.
если выбираем значение типа, категории, года, страны , то делаем проверку есть ли в урл ? в конце , если нет добавляем, для первого параметра.
далее в урлу подставляем нужные переменные, в них нужные значения.
получаем удобную навигацию по контенту которая позволяет быстро и удобно делать выборку любого контента.
!!! Теперь вопросы:
Сначала использовал селекты, но даже после кастомизации получилась некрасивая лажа. в итоге писал с нуля дропы аналоги селектов, только со скролингом области элементов дропа. если значений категорий много, чтобы дроп не был космической высоты.
Вот пример моего дропа
<div class="dr" id="айдишник">
<b><i>Год</i><u>Default</u></b>
<span>
<a href="#">Все года</a>
<a href="#" class="active>2020</a>
<a href="#">2019</a>
<a href="#">2018</a>
<a href="#">2017</a>
</span>
</div>
год - это подсказка которая появляется место значения default при открытии дропа (клике).
default - это значение выбранного элемента, делается проверка урлы на наличие переменной , берется сама переменная и ее значение подставляется сюда.
все года - сбрасывает значение переменной
2020 - активный элемент, тоже проверка урлы на наличие переменной, далее each функцией прогоняем весь массив элементов a , ищем название переменной и если оно есть подставляем активный класс на ссылку с нужным текстом.
2019.... - неактивный элемент, при клике берется значение и подставляется в переменную года.
вообщем во всех случаях если есть переменная делаем проверку по массиву нашего .dr и если есть вгоняем в него значение переменной в нужные места, если переменная есть но не такая какая в массиве выводим - все. потому что к примеру можно загнать в переменную значение , а в базе такого не будет.
так вот чтобы мне вывести весь массив данных необходимо на стороне скрипта в темплейте выгнать все названия - категорий, стран, годов.
пример
{начало массива - массив категорий}
<a href="">Переменная названия категории</a>
{конец массива}
массив должен вывести список <a> со всеми категориями. без линок просто названия всех категорий в бд.
и далее такие же массивы нужны для вывода всех годов, и вывода всех стран.