Собственная маршрутизация, плейсхолдеры и mFilter2. Нужна помощь.
        Решил настроить маршрутизацию на собственные страницы по инструкции Василия bezumkin.ru/sections/tips_and_tricks/2918/. Делаю все как в инструкции. В плагине задаю нужный мне плейсхолдер:
На этой «виртуальной» странице вызывается mFilter2. В чанке вывода &tpl для mFilter2 я также вызываю этот плейсхолдер некешированным. При загрузке страницы он отображается для каждого ресурса в результатах фильтрации. Все как нужно.
Но как только я начинаю менять фильтры, фильтр отрабатывает, но этот плейсхолдер пропадает…
И сниппет mFilter2 и плейсхолдер я вызываю некешированными.
Подскажите, как мне корректно передать виртуальный плейсхолдер в чанк вывода mfilter2 чтобы он не сбрасывался при фильтрации?
    
    
                                                                                
            $modx->setPlaceholder('example', 'Пример');Все хорошо работает и этот плейсхолдер отображается на «виртуальной» странице при загрузке. На этой «виртуальной» странице вызывается mFilter2. В чанке вывода &tpl для mFilter2 я также вызываю этот плейсхолдер некешированным. При загрузке страницы он отображается для каждого ресурса в результатах фильтрации. Все как нужно.
Но как только я начинаю менять фильтры, фильтр отрабатывает, но этот плейсхолдер пропадает…
И сниппет mFilter2 и плейсхолдер я вызываю некешированными.
Подскажите, как мне корректно передать виртуальный плейсхолдер в чанк вывода mfilter2 чтобы он не сбрасывался при фильтрации?
Комментарии: 2
                Передавайте значение этого плейсхолдера в вызов mFilter2.
У mfilter есть параметр prepareSnippet, в нем указывается сниппет который будет обрабатывать результаты выборки.
код сниппета
Теперь в вызове mfilter добавьте данные из плейсхолдера
Теперь в чанке c товаром будет доступен плейсхолдер {$customData.example}
                    У mfilter есть параметр prepareSnippet, в нем указывается сниппет который будет обрабатывать результаты выборки.
код сниппета
$item = array_merge(
  (array) $row,
  array(
    'customData' => $modx->getOption('customData', $scriptProperties, '')
  )
);
return json_encode($item);Теперь в вызове mfilter добавьте данные из плейсхолдера
'prepareSnippet' => 'название_сниппета',
'customData' => [
    'example' => $_modx->getPlaceholder('example')
]Теперь в чанке c товаром будет доступен плейсхолдер {$customData.example}
                Спасибо Вам за подсказку!            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.