Структурированный список в tv-параметре
Здравствуйте!
Подскажите пожалуйста, как сделать в тв-параметре структурированный по ресурсам выпадающий список?
Необходимо, чтобы выпадащий список выглядел так:
Категория 1
— Параметр 1
— Параметр 2
Категория 2
— Параметр 3
— Параметр 4
Нашел пример, как вывести просто список ресурсов:
Категория 1
Категория 2
Параметр 1
Параметр 2
Параметр 3
Параметр 4
Подскажите пожалуйста, как сделать в тв-параметре структурированный по ресурсам выпадающий список?
Необходимо, чтобы выпадащий список выглядел так:
Категория 1
— Параметр 1
— Параметр 2
Категория 2
— Параметр 3
— Параметр 4
Нашел пример, как вывести просто список ресурсов:
@EVAL return $modx->runSnippet('getResources',array('parents'=>5,'depth'=>3,'limit'=>0,'where'=>'{"isfolder:=":1}','sortby'=>'{"pagetitle":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));Но результат выглядит не совсем правильно:Категория 1
Категория 2
Параметр 1
Параметр 2
Параметр 3
Параметр 4
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Т.е. нужно модифицировать формат вывода getResourse к данной структуре.
Я так понимаю, что в поле «Возможные значения» надо как-то прописать, возможно даже запуск сниппета Wayfinder'а, чтобы он правильно строил список ресурсов.
На страницах сайта, с помощью Wayfinder'а вообще это можно вывести без проблем, но вот никак не соображу, как это можно прикрутить к tv-параметру в поле «Возможные значения».
— к примеру, можно создать свой сниппет «customTvList» и запустить в нем wayfinder или любой другой подходящий для задачи сниппет:
Здесь же можно и ограничить вывод возможных значений.
Жаль конечно, что не получилось у меня сделать список как описано в первом посте, но начав делать — получилось даже удобнее, чем предпологалось изначально. Но появились и новые вопросы.
В возможные значения тв-параметра я указываю, к примеру:
Можно ли вместо пятерки (5) передать id редактируемого ресурса (или любое другое поле у редактируемого ресурса)? Т.е. я открываю ресурс для редактирования, нахожу свой тв-параметр, а в него уже передалось id этого ресурса. Может быть в сниппете можно вытащить id'шник редактируемого ресурса? Я пока что ничего лучше не нашел, как в сниппете указать
Но я полагаю, что этот вариант не очень правильный…
А второй вопрос, так это как сделать в выпадающем списке первый вариант «Не выбрано», т.е. список бы получился:
И при выборе «Не выбрано» в табличку со значениями tv-параметров ничего бы не записывалось. А то получается, что список у меня появляется и выбор падает сразу на 1 пункт и при сохранении его и заносит, а хотелось бы, чтобы была возможность не выбирать параметры. Как такое можно реализовать?
По второму вопросу — что мешает в вызове своего сниппета в самом начала при помощи echo добавить нужную строку без параметра value?
2. Точно, спасибо. Сниппет возвращает строку:
я просто впереди еще руками прописал:
Самое главное, что в базе не создается запись о данном tv-поле. Я что-то изначально думал, что запись создастся, но с пустым значением. Еще раз спасибо)