Под заказ был написан набор из типа поля Город, компонента Фильтр городов и виджета Фильтр городов. С его помощью можно у фильтровать контент по городам.
Как это работает
Администратор сайта к нужным типам контента (к тем, которые нужно фильтровать) добавляет специальное поле. Пользователь, зайдя на сайт, видит все материалы. Выбрать город он может в виджете простым кликом. В любое время пользователь может перейти к просмотру материалов другого города.

Список городов настраивается в админке компонента Фильтр городов.

Эти города доступны в типе поля при добавлении материала на сайте.

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