Выбор города в контекстах и сброс TV

Доброго времени суток. Каким образом можно организовать выбор контекста в Navbar?
Так же хотелось бы узнать. У каждого города есть свои районы, метро и так далее. На каждый город свой менеджер при наполнении в автодополнеии у каждого контекста районы и метро со всех городов и это весьма не удобно. Так же организован вывод тегов и опять же все теги предназначенные для определенного города во всех контекстах. К примеру есть тег «рядом метро» и он появляется в городах где нет метро. Так вот думаю надо как то сбрасывать эти значения для каждого города или менеджера.
Максим
20 марта 2017, 04:22
modx.pro
1 161
0

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

Дмитрий
20 марта 2017, 15:30
0
1. Выбор контекста можно сделать своим сниппетом и плагином, я полагаю. То есть, сниппет выводит в навбар список контекстов (а это довольно простая выборка через xPDO, и я почти уверен, что и pdoTools такое может обычным pdoResources). Вешайте на ссылки в навбар гет параметр например, и в плагине на событие onhandlerequest меняете контекст через switchcontext().
А насчет всего остального это уже более сложный вопрос. Нужно знать, где во-первых происходит дело: на фронте или в бэкенде, что и как нужно выбирать и много чего еще. Это уже такой хороший вопрос проектирования получается. Создавая сайт с контекстами, метро, городам, нужно хорошо знать MODX, иначе может получится полное *овно. Знаю по себе, все готовлю материал по похожему в чем то проекту.
    Максим
    20 марта 2017, 15:44
    1
    0
    Спасибо! Очень хороший комментарий. Но я пока PHP только начинаю изучать и до плагинов и MODX API еще не дошел. Могли бы вы более детально написать как сделать с меню выбора контекстов?
    А с TV полями атометки надо сбивать в бекенде а вот теги от дополнения TvSuperSelect уже во вронтенде
      Дмитрий
      20 марта 2017, 16:05
      0
      Чуть позже смогу помочь, сейчас вообще с телефона сижу
        Дмитрий
        20 марта 2017, 18:43
        0
        очень криворукий вариант, который можно сделать куда лучше, банально приделав чанки, а не вывод сразу в html, чего делать вообще нельзя.
        Сниппет:
        <?php
        $contexts = $modx->getCollection('modContext', array('key:!=' => 'mgr'));
        $html .= '';
        foreach($contexts as $context) {
        $html .= '<a href=«Адрес-страницы.html?context=»'.$context->key.'">';
        }
        return $html;

        Плагин:
        <?php
        if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr') {return;}
        if (isset($_GET['context'])){
            $modx->switchContext($_GET['context']);
        }
        Плагин вешается на событие OnHandleRequest
        Это все очень по-простому описано, лишь базовые вещи. Это все нужно доработать и улучшить. Я тут скорее, вектор направления задал.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4