Вывод Select (список) из TV

Здравствуйте! Подскажите пожалуйста, как вывести во фронтенде Select-список из TV? Что-то голова уже не варит… Создал TV: параметры ввода: @SELECT pagetitle, id FROM modx_site_content WHERE parent=18 В ресурсах >> дополнительные поля >> выводится нормальный список с категориями — ОК А во фронтенде, как? Создал еще снипет: /* ShowDropdown сниппет */ $items = $modx->getOption('items', $scriptProperties, 'Нет данных для показа'); $multiple = $modx->getOption('multiple', $scriptProperties, false);

/* Задать Tpl для каждого вывода опции */ $tpl = ' <option value="[[+item]]">[[+item]]</option>';

/* Конвертировать значения через запятую в массив */ $items = explode(',', $scriptProperties['items']);

/* Проверить создаём ли мы список с мультивыбором */ if ($multiple) { $output = '<select id="profile" multiple="multiple">'; } else { $output = '<select id="profile">'; }

/* Создание внутреннего HTML */ foreach ($items as $item) { $output .= "\n" . str_replace('[[+item]]', trim($item), $tpl); }

/* добавить закрывающий тег */ $output .= "\n</select>";

/* возвратить законченный HTML */

return $output; Вызываю его в чанке: [[ShowDropdown? &items=[[*category]] &multiple=0]] Но в выпадающем списке на странице пусто.

  1. В админке за вывод таких вещей отвечают inputRenderer и ExtJS. Просто так у вас во фронте ничто работать не будет.
  2. &items=[[*category]] А с чего вы взяли, что у вас поле документа должно в себе нести выборку по вашему запросу? Оно несет конечное установленное значение, но никак не выборку данных по запросу.
  3. Вот поэтому мы Смарти и юзаем, чтобы не заморачиваться с такими простыми задачами. Один из вариантов: <select id="profile"> {foreach $modx->getIterator('modResource', ['parent' => 18]) as $doc} <option value="{$doc->id}">{$doc->pagetitle}</option>

{/foreach} </select> 4. Если вы совсем по религии хотите сделать (чтобы не было двух отдельных запросов в админке и фронте), то правильней делать так: создавать сниппет, в котором будет выполняться формирование запроса и набивка полученных данных. В нем надо будет рулить по условию тип вывода — для ТВшки все данные должны быть вида Заголовок1==id_1||Заголовок2==id_1....., а для фрона как раз своим способом и набивайте HTML. Или возвращайте JSON-строку и если используете Смарти, то там выполняйте JSON-декодинг и набивайте конечный HTML. А в ТВшке в качестве возможных значений указывайте @CHUNK, в котором будет вызываться этот сниппет (к сожалению нельзя сразу указать сниппет, ТВшки этого не умеют, хотя можно еще использовать @EVAL return $modx->runSnippet(...))