[cityFields] Поддержка полных доменов, подкаталогов и MODX 3
Всем привет. Наконец-то проделана значимая работа над компонентом cityFields и добавлен функционал, о котором мне бы хотелось сегодня вам рассказать.

Добавлена поддержка использования полных доменов и подкаталогов в качестве ключей городов. То есть сайт может работать с несколькими доменами и каждый домен будет переключать на свой город. А также города могут быть доступны по ссылкам вида
Как это работает можно посмотреть на демо-сайте, а ниже скриншот как это должно быть настроено в админке.

Разработана версия компонента под MODX 3. Но так как поддержка MODX 2 закончится не скоро, то теперь в магазине компонентов modstore.pro доступны две версии компонента: версии 1.х.х для MODX 2 и версии 2.х.х для MODX 3. Покупать компонент отдельно для каждой версии не нужно, в зависимости от вашей версии MODX установится нужная версия компонента.
Также переписаны чанки, стили CSS и скрипты JavaScript для того, чтобы избавиться от привязки к Bootstrap и jQuery. В версии 1.3.x компонента ещё остаются старые файлы стилей и JS-код для поддержки старых чанков и логики, но начиная с версии 2.х.х эти файлы уже удалены из компонента.
Ну и последнее — наконец-то написал документацию по использованию компонента, которую буду дополнять с появлением нового функционала или новых кейсов использования компонента.

Добавлена поддержка использования полных доменов и подкаталогов в качестве ключей городов. То есть сайт может работать с несколькими доменами и каждый домен будет переключать на свой город. А также города могут быть доступны по ссылкам вида
site.ru/cityПри этом можно использовать два режима одновременно. Вы можете выделить домен под отдельный регион и внутри него организовать разделение городов региона по подкаталогам.Как это работает можно посмотреть на демо-сайте, а ниже скриншот как это должно быть настроено в админке.

Разработана версия компонента под MODX 3. Но так как поддержка MODX 2 закончится не скоро, то теперь в магазине компонентов modstore.pro доступны две версии компонента: версии 1.х.х для MODX 2 и версии 2.х.х для MODX 3. Покупать компонент отдельно для каждой версии не нужно, в зависимости от вашей версии MODX установится нужная версия компонента.
Также переписаны чанки, стили CSS и скрипты JavaScript для того, чтобы избавиться от привязки к Bootstrap и jQuery. В версии 1.3.x компонента ещё остаются старые файлы стилей и JS-код для поддержки старых чанков и логики, но начиная с версии 2.х.х эти файлы уже удалены из компонента.
Ну и последнее — наконец-то написал документацию по использованию компонента, которую буду дополнять с появлением нового функционала или новых кейсов использования компонента.
Комментарии: 31
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Раз в релизе упомянут будущий новый функционал, очень хотелось бы в план развития подсказать следующие моменты (и сразу подсказать возможности реализации):
1. Отказ от необходимости использовать тэг base, потому что с ним не работаtn якорная #навигация (JS-костыли не в счёт) и вообще этот тэг одно сплошное недоразумение и костыль.
Как сделать: при формировании ссылок можно &prepareSnippet использовать для дописки имени папки-города к uri. Да, потребуется исправить вызовы pdoMenu, pdoResources и так далее, либо добавить в стандартные наборы параметров и вызовы тогда можно не трогать, но в любом случае это крутая возможность, на проектах где жуткого base нет, получается просто must-have! Но чтобы дописать имя папки, надо его знать, не уверен стоит ли парсить ключ, может просто запросить отдельным полем при создании домена...)
2. Возможность одновременной линковки и поддомена и папки к городу(ой не спрашивайте меня зачем это, SEO-шники чего только не придумают) Чтобы открывалось и по spb.site.com/contacts и по site.com/spb/contacts одновременно
Как сделать: чтобы не менялся cityid, наверное проще всего добавить имя папки ещё одной колонкой в таблицу городов. Тогда, если фича нужна — указываешь имя папки и адрес домена в ключ.
Кажется, в анонсированной версии 1.3.1-pl можно 2 раза создать город, назвать СПБ например оба и указать в поле Ключ 1 раз поддомен, а 2й раз папку, но будет сложность с выводом списка городов и гео-редиректом… Если тема интересна, @Сергей Фещуков напиши мне в телеграм или в ЛС, есть почти готовый концепт-релиз (на основе старой версии cityfields конечно)
P.S. Несказанно рад обновлению! Я наверное самый большой фанат пакета (пруфы в tg-чатике), рекомендую его всем! Сорри что коммент выглядит как какое-то ТЗ, но я по-другому не смог сформулировать ¯\_(ツ)_/¯
Проблема в том что или я не верно использую компонент или я не верно его настраиваю.
Например, у нас есть несколько городов:
Екатеринбург
Москва
Архангельск
У сайта есть структура:
Главная
Каталог услуг
Услуга
Блог
Статья
Для каждого города создается куча url, физически они будут отличаться, только информацией, добавленной в компоненте (телефон, адрес и для каждой страницы придется создавать кучу настроек, чтобы был разный контент на странице).
site.ru/arkhangelsk
site.ru/ekaterinburg
site.ru (Москва на пример по умолчанию)
*Если я меняю город, меняется url текущей станицы (если даже её не существует), но при переходе на другую страницу встает город по умолчанию, так-как в pdomenu url не меняются.
*Еще странность, у меня по умолчанию стоит Москва, хотя я в другом городе и он его не определяет.
С точки зрения было бы правильно.
1. Менялись бы url у меню при выборе города, главная страница выглядела бы так
a. site.ru/arkhangelsk
b. site.ru/ekaterinburg
c. site.ru (Москва на пример по умолчанию)
2. Для городов что созданы страницы, он бы показывал при этом url адреса были бы только существующие.
3. А для раздела, где не указан город url оставался бы без изменения.
Например, есть блог, и он не зависит от города и не плодилось бы кучу url не существующих, а вот услугу желательно, чтобы структура была верной.
Вот пару примеров действующих сайтов
aaccent.ru/ekb/sozdanie-sajtov/ (если прейти в кейсы, то привязки к городу нет)
b2b-creative.ru/ekaterinburg/site/ (если прейти в кейсы, то привязки к городу нет)
Наверное, это было бы верно, если для города нет страницы, то её и не должно быть, а так мы только запутаем поисковых роботов.
Какая это вижу, в компоненте указываем id главной страницы для города и он берет всю информацию от туда. Если раздела нет в городе, например блога или кейсов или контактов, то она остается в адресом по умолчанию и берется из основного раздела.
И еще дополню, если есть личный кабинет, он же не будет для каждого города свой.
Как идея можно подгружать разделы типа блог, кейсы из другого контекста. В таком случае к ним же не будет добавлен город в url?
И второй вопрос, не знаю почему, но цена для других городов не работает. Не на странице товара, не в каталоге.
У меня вопрос такого плана. Мне надо сделать определение не для города, а для области (не Санкт-Петербург, а Ленинградская область). То есть в Ленинградской области одна информация, а в остальной России другая. Я смогу это реализовать с помощью компонента? Спасибо!
Если используются домены, то просто в теге base вывести [[!+cf.current_city.url]].
Если вы используете подпапки, то тут сложнее. А главная у вас как выводится? Через &displayStart параметр и &tplStart шаблон?
К сожалению, такого функционала в компоненте нет. Страница всё-равно будет доступна в любом городе, даже если в меню вывести только ссылку на главную.
У меня в каталоге матрасы различных размеров — модификации.
Пример:
Размер 80х190 см… 4500 руб
Размер 80х200 см… 4700 руб
Размер 90х190 см… 5900 руб
Размер 90х200 см… 6200 руб
и тд.
Есть два города. Возможно ли сделать так, чтобы при выборе города №2 ко всем ценам в модификациях добавлялась сумма, к примеру, +700 руб.?
При включении компонента на modx 3. Перестает работать ошибка 404 на страницах. Отдает 500 при отсутствие страницы. php 8.1.x
При вызове сниппета fenom — стили модалки не подгружаются.
сниппет так вызывается {$_modx->runSnippet('!cfCities')}
выглядит результат вот так
1. Только у определенных страниц подставлять город, то есть страницы: Главная/Контакты/Блог и тд. не зависимо от города должны будут открываться по своим адресам, а вот раздел Вакансии и вложенные в него страницы с подстановкой города, возможно ли такое?
2. Возможно ли у обычных страниц (не товары минишопа) менять информацию в зависимости от города?
Как это исправить?