Где хранить id, который требуется в сниппетах

Перед загрузкой страницы требуется определить региональный контекст, который будет неоднократно использоваться в сниппетах для правильного построения меню, перенаправлений и вывода региональной информации.
Решил реализовать это в виде плагина, который срабатывает до обработки шаблона когда контекст текущей страницы уже доступен. Плагин будет определять правильный регион (по кукам, текущему контексту и geoip) и сохранять его context_key в чанке, который затем будет использоваться сниппетами.

Подскажите, на какое событие нужно вешать плагин и есть ли альтернативные, более правильные варианты реализации?
Алексей
07 августа 2016, 13:58
1
456
0

Комментарии: 8

Алексей
07 августа 2016, 17:31
0
Стоп. Чанк не подходит для хранения информации о пользователе, при условии, что интерфейс многопользовательский. Нужен какой-то объект, который будет доступен из сниппета, в который можно положить context_key. Есть такое в MODX?
Алексей
07 августа 2016, 17:35
0
Как передать параметр из плагина в несколько сниппетов?
Алексей
07 августа 2016, 17:51
0
Задать константу в плагине не получается…
Евгений Webinmd
07 августа 2016, 20:24
0
1) хранить в куках
2) хранить в настройках контекста
там уже от ваших более конкретных задач
Илья Уткин
07 августа 2016, 20:57
+3
Для этих целей используются плейсхолдеры
$modx->setPlaceholder('region', $value);
И в любом месте на странице можно использовать: [[!+region]] — для каждого пользователя будет свой.
    Алексей
    08 августа 2016, 11:05
    0
    Спасибо за ответ! Регион итак хранится в куках, но когда кука ещё не выставлена, чтобы избежать многократного определения региона и выставления кук, вынес эту проверку в плагин. В итоге мне помог ваш вариант с плейсхолдером:
    В плагине:
    $key = $modx->setPlaceholder('region_key', $key);
    В сниппете:
    $key = $modx->getPlaceholder('region_key');
Сергей Шлоков
08 августа 2016, 11:30
+1
Не понимаю, зачем эти пляски с плейсходерами. В плагине определяете регион (по куке или по ip) и переключаете контекст.
    Алексей
    08 августа 2016, 11:45
    0
    А причем здесь переключение контекстов? Основные разделы сайта региононезависимы. Мне нужно, находясь в контексте web, правильно ставить ссылки на нужный региональный раздел, расположенный на отдельном контексте, и подтягивать подтягивать региональные блоки конкретного региона.