В сайте MODX Revo, у меня есть форма ФОРМИТ с полем выбора, который должен выглядеть следующим образом:Выберите набор опций поля метко с prehook в MODX
<select name="arrangement" id="arrangement">
<option value="0" [[!+fi.arrangement:FormItIsSelected=`0`]]>Arrangement 0</option>
<option value="1" [[!+fi.arrangement:FormItIsSelected=`1`]]>Arrangement 1</option>
<option value="2" [[!+fi.arrangement:FormItIsSelected=`2`]]>Arrangement 2</option>
Я хотел бы установить варианты с Prehook FormIt, называемые «getArrangements».
prehook называется в определении формы ФОРМИТ до формы тегов:
[[!FormIt?
&preHooks=`getMaxYear,getArrangements`
мне удалось установить значение простого поля ввода с первым названием prehook «getMaxYear», то ясно мне как это работает, но с полем выбора вещи менее ясны. Согласно MODX RTFM это должно быть сделано с помощью JSON-кодирующей массив, как:
$hook->setValue('hobbies',json_encode(array('music','films','books')));
Я удалил опцию тег из выбора HTML и создал фрагмент с именем «getArrangements»:
<?php
$arrangements = array( '0' => 'Arrangement 0',
'1' => 'Arrangement 1',
'2' => 'Arrangement 2');
$hook->setValue('arrangement',json_encode($arrangements));
return true;
Это не приводит к ошибкам, но оставляет меня пустым полем выбора.
Должно быть, я что-то пропускаю, могу себе представить, что способ, которым я пытаюсь это сделать, не работает. Но я застрял прямо сейчас.
Может ли кто-нибудь указать мне в правильном направлении, чтобы выполнить это?
Спасибо вам r быстрый ответ Jako! Теперь я обнаружил, что этот фрагмент просто активирует выбранный параметр. То, что я хотел выполнить, было создание самих опций с помощью фрагмента prehook. Я предполагаю, что мне нужно будет создать код для создания полных тегов параметров со значениями, верно? – Yannnd