Доброго времени суток.
Помогите, будьте добры, с пониманием такой ситуации.
У пользователя есть поля: Страна, Область и Город, у материалов, которые добавляются на сайте - те же поля. Как сделать, чтобы пользователь заходил на сайт, и ему отображались только те материалы, которые совпадают по значениям в данных полях. Приоритет отображения - сначала материалы по городу, потом по области.
Рассматриваю варианты с таксономией, модулем Address, ""Place Autocomplete Address Form" от Google и простыми текстовыми полями, либо встроенными в модуль Address.
С одной стороны, не хочу забивать словарь/словари таксономии избыточным количеством терминов, которые могут быть никогда не востребованы, с другой стороны - опасаюсь, что пользователи нагородят там вариантов, самостоятельно добавляя термины в момент регистрации. Чтобы избежать, склоняюсь к использованию ""Place Autocomplete Address Form" от Google и текстовых полей (Страна, Область, Город)
Подскажите, как подобное решается грамотно, с учётом особенностей Drupal 8, может быть примером решения, или ссылкой на модуль. Модулей знаю много и со многими работал, но для конкретной ситуации не вижу более подходящего, нежели Geolocation Field, с некоторыми доработками.
Сайт, предполагает наличие материалов, привязанных к различным городам и пользователей из этих городов, которые должны иметь возможность, изначально видеть материалы своего региона. Сайт, будет максимально реализован через Apache Solr и Facets API
Комментарии
Т.к. есть еще и анонимы, то я бы все факторы учел:
- гекодирование по IP
- сохранение id города/региона при ручном выборе юзера
- куки пользователю при навигации по городам/регионам
- сохранение населенного пункта юзером в профиле
Право на добавление термина юзером, имхо, не нужно. Стройте свою базу городов (населенных пунктов).
Подсовывайте id города/региона вьюхе по факторам, что выше привел.
Как-то так.
Я никогда с подобным не сталкивался раньше. Пока даже не представляю, как всё это сразу увязать. Возможно ли это сделать имеющимися модулями, или только написанием полностью своего решения?
Если полноценно, в рамках проекта, то только свое решение.
Да и D7 рекомендую для подобных решений (на текущий момент), т.к. реально намучаетесь костылить кеш под 8ку.