Ок, упрощу.
Допустим, у меня есть ресурс, с именем "Цветы". В него вложены три ресурса "Роза", "Ландыш" и "Тюльман".
К шаблону для документа "Цветы" привязано два TV. Одно из них categoryImage (картинка), второе categoryLink (раскрывающийся список). В поле categoryImage менеджер сайта будет загружать картинку, а в поле categoryLink должен выбрать одно из трёх значений: Роза, Ландыш или Тюльман. Эти значения должны генерироваться на лету (содержать актуальные данные на основе выборки по под-ресурсам редактируемого ресурса). Если он выберет Ландыш, то ссылка с картинки будет на ресурс Ландыш. Процесс должен быть именно таким (то есть ссылку на картинку выбирают именно со страницы категории, выбирая из вложенных ресурсов)
Поле categoryLink я пытался сделать так:
@EVAL $myid = $modx->documentIdentifier; $children = $modx->getDocumentChildren($myid); foreach($children as $child) {$output .= $child['pagetitle']."==".$child['id']."||"; } return $output;
В результате $myid пустая и getDocumentChildren выдаёт список из корневых ресурсов, а не из тех, что вложены в мой ресурс.
Подскажите, как написать плагин и какие поставить события на него чтобы решить эту задачу? Или как вообще мне это сделать? То есть TV должен знать ID ресурса, который я сейчас редактирую чтобы сформировать список вложенных в него ресурсов.
То есть если ресурс "Цветы" имеет id 123, то в TV categoryLink на этом ресурсе должен выполниться код
@EVAL $children = $modx->getDocumentChildren(123); foreach($children as $child) {$output .= $child['pagetitle']."==".$child['id']."||"; } return $output;
То есть не обязательно заставить работать именно $myid = $modx->documentIdentifier; Главное - как угодно вставить туда 123 перед тем как выполнится @EVAL