MODx Evo, возможен ли поиск по MultiTV?

Здравствуйте!
Столкнулся с такой проблемой: есть сайт-каталог на MODx Evo. Все позиции имеют ряд параметров (тв), таких как артикул, длина, ширина, вес и т.п., и есть один расширенный параметр, в который вставляются произвольные характеристики для каждой позиции, реализованный через MultiTV. Поиск на сайте реализован через AjaxSearch, и значения ТВ в поиске не срабатывают, т.е. поиск в этом расширенном параметре не осуществляется.
Опытным путём было выяснено, что проблема в том, что в сыром виде значение ТВ выглядит в виде сырого JSON массива, вроде:
{"fieldValue":[ ["Коллекция","Europlank"],["Дерево","дуб"],["Количество полос","1-полосный"],["Длина, мм.","2215"],["Ширина, мм.","164"],["Толщина, мм.","13,2"],["Эффект обработки","Тонирование"],["Браширование","да"],["Фаска","нет"],["Дополнительное защитное покрытие","лак Classic"],["Замковая система","T-lock"],["Вариация цвета под воздействием УФ","умеренная"],["Изменение оттенка под воздействием УФ","темнеет"],["Твердость древесины (стандарт - Дуб)","стандарт"],["Коэффициент твердости","3,7"],["Селекция","Рустик"],["Метраж 1 упаковки (кв.м)","1,68"] ],"fieldSettings":{"autoincrement":1}}


И также стало ясно, что поиск осуществялется корректно, если в значении ТВ не будет "опасных" для модекса символов - фигурных и квадратных скобок.

Не могу понять, как можно передавать сниппету AjaxSearch значение этого ТВ, но без ненужных символов. Была даже идея написать какой-то плагин, который будет дублировать ТВ при сохранении документа, обрезая все ненужные скобки, но уж больно это костыльно выглядит.

Буду благодарен за любые идеи!
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
mr-lexus
@mr-lexus
php modx dev
На Вашем месте я бы написал сниппет поиска.
Я так полагаю, что для Вас такой способ неприемлем.
Вижу 2 пути:
1) Плагин (как вы сказали) который будет записывать в TV json преобразованный в строку
2) Допиливать AjaxSearch (костыль)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы