Наумов Алексей

Наумов Алексей

Был в сети 28 июля 2026, 14:21
Заказы принимаю
Если сайты для разных городов ПОЛНОСТЬЮ идентичны — нет смысла создавать контексты.

Я в данной ситуации решал вопрос так: были созданы поддомены, сайты откликался на них; плагин, висящий на событии генерации страницы, смотрел текущий HOST и в зависимости от него определял, какой сейчас город у нас. Ну и дальше устанавливал плейсхолдеры с телефонами, адресами, названием города (причем 6 шт., со всем падежами, типа [[+region.title_1]] и так до _6).
Где хранить данные (адреса, телефоны и т.д.) по городам — на ваше усмотрение, в ресурсах, чанках ли, все равно.

Но, как только региональные сайты начнут различаться структурой — данная схема потерпит фиаско :)
Да, просто кастомный вызов сниппетов нужно делать…

принцип (я дергаю код с одного из проектов):

1. создаете 1 карту, видимо вручную, используя API яндекса, на ней вызываете pdoResources с выборкой нужных ресурсов.
<div id="manyMap" style="width: 1000px;height: 800px;"></div>

<script type="text/javascript">
    ymaps.ready(function(){
        manyMap = new ymaps.Map("manyMap", {
            center: '55.664727, 37.655260',
            zoom: 5,
            controls: ['default']
        });
        manyMap.setType("yandex#map");

        [[pdoResources?
            &parents=`0`
            &resources=`3,4`
            &tpl=`many.Row.Tpl`
        ]]
    });
</script>
2. В чанке many.Row.Tpl — вызов сниппета mapex2, но нужно заменить чанк карты на свой, где собственно убрать создание еще одной карты, а оставить только вывод объектов :)

[[mapexMap21? &tvName=`testMap1` &resource=`[[+id]]` &mapId=`manyMap` &mapTpl=`many.Row.Tpl.Map`]]
чанк many.Row.Tpl.Map:

[[+placemarks]]
[[+polylines]]
[[+polygons]]
[[+routes]]
Т.е. отзывы и по услугам и по мастерам?

Можно, будет одна основная категория (услуга, например) — это просто стандартный функционал.

А мастер — уже поколдовать нужно будет, или создайте новое поле или используйте существующее, например subject для связи с нужным вам мастером.
Нашел проблему!

При обычном вызове сниппета ecForm в head сайта добавляется js код с конфигом компонента.
При вызове через AjaxSnippet этого не происходит.
Таким образом при отправке формы выскакивает js ошибка из-за не найденного конфига, выполнение скрипта прекращается, форма банально обновляет страницу.

Найдите подходящий вам способ добавить конфиг компонента на страницу при вызове через AjaxSnipet.
Скрипты и стили компонента в этом случае подключите вручную.
Вам потребуются:
1. сами jquery.js, jquery.forms.js
2. /assets/components/easycomm/css/web/ec.default.css
3. /assets/components/easycomm/js/web/ec.default.js

Пункты 2 и 3 подключаются через regClientJs/CSS, при вызове через AjaxSnippet этого не происходит.
Привязывать один компонент к другому — совсем плохая идея, завтра выйдет альтернатива MIGX, и что мы будем делать? Привязываться ко второму компоненту? Нужно более универсальное решение.