November 18, 2023

Поиск

Поиском смогут воспользоваться как авторизованные, так и неавторизованные пользователи.

Хороший референс того, что мы хотим, представлен здесь: https://auto.ru/cars/all/. В отличие от главной страницы, в поиске все результаты будут отображены в строчку.

Так как параметров поиска много, над кнопкой для показа результатов в блоке будет кликабельная надпись "Показать все параметры ↓", которая развернет все параметры. Когда человек начнёт заполнять параметры в блоке, появится ещё одна кликабельная надпись "🞪 Сбросить", при нажатии на неё все параметры фильтрации сбрасываются. В ходе заполнения параметров кнопка показа результатов будет менять их количество на действующее. Текст внутри кнопки будет звучать как "Показать N результатов".

По умолчанию результаты будут отсортированы по Дате публикации (от самых новых до самых старых). Имеется возможность сортировки по следующим критериям:

  • Дате публикации ⇵
  • Цене ⇵
  • Покупкам ⇵
  • Оценкам ⇵

Результаты поиска будут показаны в виде инфинити-скролла.

Поиск можно осуществить по:

  • Имя | Фамилия

Само поле поиска выглядит как инпут с плейсхолдером(-ами) с маской "Имя | Фамилия". Пользователь может заполнить одно или оба поля, либо вовсе оставить их пустыми. Если пользователь вводит значение в инпуте "Имя" и нажимает пробел, фокус автоматически перемещается к инпуту "Фамилия". То же самое происходит и в обратную сторону, если пользователь удаляет введенное значение из инпута "Фамилия", удерживая клавишу Backspace.

  • Возраст / Дата рождения — возраст будет отображён в виде ползунка "От (мин. доступный возраст из БД) - До (макс. доступный возраст из БД)". Дата рождения указывается в виде инпута с маской ДД.ММ.ГГГГ (в англ. локализации MM/DD/YYYY). Переключение происходит посредством Toggle.
  • ☑ только с номером телефона
    • **Поиск по номеру телефона**

С возможностью выбора страны номера телефона из селектора и инпута с маской для отображения номера телефона в международном формате (пр. +7 (999) 999-99-99). Доступно только для авторизованных пользователей (неавторизованным этот параметр не виден). В день доступно N кол-во запросов для целевого поиска по номеру телефона. Когда лимит исчерпан, поле параметра становится серым и недоступным, и появляется уведомление, предлагающее перейти на /membership (подробнее об этом в Привилегии). Запрос списывается только после успешного поиска. При наличии определенной привилегии кол-во возможных запросов увеличивается. Также будет висеть следующее: ⓘ Подсказка: При наличии привилегии количество возможных запросов для целевого поиска увеличивается.

  • Социальные сети
    • ☑ ВКонтакте
      • **инпут для ввода цифрового айди/юзернейма**
    • ☑ Telegram
      • **инпут для ввода цифрового айди/юзернейма**
    • ☑ Instagram
      • **инпут для ввода цифрового айди/юзернейма**

Доступно только для авторизованных пользователей (неавторизованным этот параметр не виден). В день доступно N кол-во запросов для целевого поиска по социальным сетям. Когда лимит исчерпан, поле параметра становится серым и недоступным, и появляется уведомление, предлагающее перейти на /membership (подробнее об этом в Привилегии). Запрос списывается только после успешного поиска. При наличии определенной привилегии кол-во возможных запросов увеличивается. Также будет висеть следующее: ⓘ Подсказка: При наличии привилегии количество возможных запросов для целевого поиска увеличивается.

Человек может за один запрос ввести и номер телефона, и даже одну социальную сеть (при желании лол). Если найдёт - ОТЛИЧНО, человек нажимает показать результаты и его запрос у него списывается. Но если человеку показывает 0 результаты, он может посидеть поперебирать как его душе угодно и сколько угодно, на это ограничений нет. Ограничение только на показ результатов.

  • ☑ только со списком друзей
  • Город — будет внутренний поисковик+селектор с теми городами, которые хотя бы один раз встречаются в анкетах.
  • Район — появляется только если выбран "Город"
  • Теги

При нажатии на поле вылезает селектор с внутренним поисковиком с тегами, которые можно добавить. В селекторе можно выбирать по несколько тегов, причем после выбора тега селектор не закроется - напротив тега лишь поставится галочка. В поле с тегами напротив каждого тега будет маленький крестик, который будет его удалять оттуда, это для того чтобы не открывать опять селектор и не искать этот тег чтобы кликнуть по нему снова. В селекторе показаны даже сколько не те теги, что созданы админами в панели управление Создание тегов, а те что встречаются в хотя бы одной анкете. Допустим, если указано два тега "тег1" и "тег2", и анкета имеет оба данных тега, то она будет отображена в результате лишь 1 раз, а не 2 ¯\_(ツ)_/¯

  • ☑ только с фото

Если выключен - ползунок некликабельный. Если включен, ползунок становится кликабельным | От 1 До (макс. из БД) |

  • ☑ только с видео

Если выключен - ползунок некликабельный. Если включен, ползунок становится кликабельным | От 1 До (макс. из БД) |

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

Изначально на странице поиска /search нет никаких параметров в строке URL. После ввода имени, фамилии/указания параметров в блоке слева, в URL будут добавляться query-параметры, /search?.

Города, районы, теги имеют свои идентификаторы, и они будут отображены в URL в query-параметрах. Например, г. Москва - 1, район Академический - 89, тег "минет" - 3.