MODX. Связанные элементы, несколько способов
Отредактировано: 11 Декабря 2019
Для организации элементарной привязки элементов друг к другу, понадобиться создать дополнительное поле, назовем его «Связи».
Способ № 1, простейший:
устанавливаем полю тип «Список ресурсов»
Недостатки: нельзя заполнять поле вводом названия, обязательно придется выбирать ресурс из списка мышкой.
Способ № 2:
устанавливаем полю тип «Список (множественный выбор)», в поле «Возможные значения» пишем
@SELECT pagetitle,id FROM [[+prefix]]site_content WHERE (нужное условие, например: parent=5; или isfolder=0;)
Недостатки: нельзя создать сложные условия выборки.
Способ № 3, используем сниппет:
устанавливаем полю тип «Список (множественный выбор)», в поле «Возможные значения» пишем
@EVAL return $modx->runSnippet(’listBoundResources’,array(’parent’ => 5));
Создаем сниппет listBoundResources, в котором пишем условия, например:
<?php
$id = $modx->getOption('parent',$scriptProperties);
$where = array(
'published' => 1,
'isfolder' => 0,
'context'=>'web',
);
$ids = $modx->getChildIds($id, 5, $where);
$docs = $modx->getCollection('modResource', array(
'id:IN' => $ids
));
foreach ($docs as $res) {
$out[]= $res->get('pagetitle').'=='.$res->get('id');
}
$out = implode("||",$out);
return $out;
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.