Вы здесь

Location Selector

Назначение содержанию всех возможных локаций.

Модуль Location Selector позволяет присваивать содержанию оду или несколько локаций. Что это значит и зачем он нужен? В начале, я использовал для этого таксономию, но с ней возникло несколько проблем:

  • Выбор места. Выбор всех терминов в иерархии не слишком удобен. Тут могут помочь модули SHS, CSHS может HS, но они тоже не то, что я хотел
  • Слишком много данных. Мир большой. Если вы хотите иметь все страны и города, ваш словарь достигнет гигантских размеров, вам придётся всё импортировать и поддерживать самостоятельно
  • Работоспособность. Если вы храните много данных, текущие словари работающие с таксономией падают и сайт отказывается работать, многие лимиты оказываются исчерпанными

Решением стало использование модуля Location API вместо Taxonomy. У Google API есть ценовая программа и в определённый момент он больше не является бесплатным. А вот GeoNames имеет лицензию Creative Commons Attribution 4.0 и большую базу локаций. Так что, на мой взгляд, это лучшее предложение.

Возможности

  • Интеграция с видами — добавьте поле селектора локации в разделе фильтров, настройте параметры поля и сделайте фильтр экспонированным
  • Мультиязычность — локации показываются на языке пользователя
  • Выбор иерархии — выбор локаций из списков сверху вниз
  • Принудительный уровень выбора — можно сделать выбор термина нижнего уровня принудительным
  • Сохранение последнего выбранного элемента — только последнего, без родителей
  • Ограничение уровня — выбор количества показываемых уровней
  • Определение основной родительской локации — какие локации нужно сделать доступными всем для выбора? Мир большой — это будет континет, государство или пункт ниже?
  • Связь локаций со своим видом — связь выбранных локаций со своим видом

Установка и настройка

  • Перейдите на страницу geonames.org/login и создайте аккаунт для доступа к API. Посмотрите статью geonames.org/export/web-services
  • Перейдите на страницу /admin/config/location_selector/settings и введите свои данных
  • В Manage Fields добавьте поле селектора локации своего объекта
  • В Manage Form Display установите параметры виджета поля
  • В Manage Display установите параметры показа поля