[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.х.х эти файлы уже удалены из компонента.
Ну и последнее — наконец-то написал документацию по использованию компонента, которую буду дополнять с появлением нового функционала или новых кейсов использования компонента.
Поблагодарить автора
Отправить деньги
Комментарии: 14
Спасибо! Ждал!
Не ждал, но всё равно спасибо!)))
Классные обновления! Просто УРА! Спасибо!
Раз в релизе упомянут будущий новый функционал, очень хотелось бы в план развития подсказать следующие моменты (и сразу подсказать возможности реализации):
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-чатике), рекомендую его всем! Сорри что коммент выглядит как какое-то ТЗ, но я по-другому не смог сформулировать ¯\_(ツ)_/¯
Раз в релизе упомянут будущий новый функционал, очень хотелось бы в план развития подсказать следующие моменты (и сразу подсказать возможности реализации):
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 как у города). У меня проблема следующего характера. Я создал папку в основном контексте с двумя городами arkhangelsk и ekaterinburg. Если захожу в раздел и меняю город то путь становиться site.ru/ekaterinburg/arkhangelsk/123.html Или не надо создавать физический раздел и добавлять все изменения на странице через данные?
Проблема в том что или я не верно использую компонент или я не верно его настраиваю.
Проблема в том что или я не верно использую компонент или я не верно его настраиваю.
В документации как раз описано как настраивать компонент, в том числе при использовании подпапок. И в ней нет ни слова о контекстах, потому что компонент с ними вообще не работает. Так же не говорится о том, что необходимо физически создавать папки/ разделы, потому что этого делать не надо.
Спасибо за ответ. Тогда я не совсем понимаю в чем тогда смысл? Фактически мы плодим не существующие url
Например, у нас есть несколько городов:
Екатеринбург
Москва
Архангельск
У сайта есть структура:
Главная
Каталог услуг
Услуга
Блог
Статья
Для каждого города создается куча 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, физически они будут отличаться, только информацией, добавленной в компоненте (телефон, адрес и для каждой страницы придется создавать кучу настроек, чтобы был разный контент на странице).
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 главной страницы для города и он берет всю информацию от туда. Если раздела нет в городе, например блога или кейсов или контактов, то она остается в адресом по умолчанию и берется из основного раздела.
У вас кстати работает, если я выбираю Екатеринбург, то адреса все становятся с ekb, у меня не меняется.
И еще дополню, если есть личный кабинет, он же не будет для каждого города свой.
И еще дополню, если есть личный кабинет, он же не будет для каждого города свой.
Извиняюсь, забыл про <base href="[[!+cf.current_city.url]]" />
Извиняюсь за кучу вопросов.
Как идея можно подгружать разделы типа блог, кейсы из другого контекста. В таком случае к ним же не будет добавлен город в url?
И второй вопрос, не знаю почему, но цена для других городов не работает. Не на странице товара, не в каталоге.
Как идея можно подгружать разделы типа блог, кейсы из другого контекста. В таком случае к ним же не будет добавлен город в url?
И второй вопрос, не знаю почему, но цена для других городов не работает. Не на странице товара, не в каталоге.
Добрый день!
У меня вопрос такого плана. Мне надо сделать определение не для города, а для области (не Санкт-Петербург, а Ленинградская область). То есть в Ленинградской области одна информация, а в остальной России другая. Я смогу это реализовать с помощью компонента? Спасибо!
У меня вопрос такого плана. Мне надо сделать определение не для города, а для области (не Санкт-Петербург, а Ленинградская область). То есть в Ленинградской области одна информация, а в остальной России другая. Я смогу это реализовать с помощью компонента? Спасибо!
Приветствую! Компонент основан на sxGeo, там определение области есть → смотри демо на оф. сайте: sypexgeo.net (подписана как Регион прямо поверх карты). Возможно придётся после установки компонента подправить настройки точности, из коробки там Город, и настройками в админке на Область переключить нельзя.
Спасибо!
Добрый день. В целом, можно вместо города написать область и всё будет работать, кроме определения города (в вашем случае области) по IP-адресу. Добавление регионов планируется в ближайшем мажорном обновлении.
Спасибо! Буду ждать обновление.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.