Кастомный выпадающий список msFieldsManager из элементов дерева
Расскажу как я делал динамически заполняемый кастомный выпадающий список для поля товара. Этот список формируется из элементов дерева (структуры) сайта.
Выглядеть это будет так:
Нам потребуется сам компонент msFieldsManager и начнем мы создавать именно с процессора.
Я хотел в качестве названий видеть Название документа, а в качестве значений — его id. Поэтому в моем случае заполняется подобным образом:
После генерации кода, получаем следующее содержимое:
Вносим свои корректировки, так как требуется получать не все документы, а только дочерние элементы конкретного родителя. В нашем случае с id = 2
Теперь можно приступить непосредственно к созданию дополнительного поля Кастомный выпадающий список.
Интересующая нас часть:
В выпадающем списке появился наш кастомный:
Выбираем его и нажимаем Генерировать код. Конечный вид заполненного поля
И собственно ожидаемый результат вывода элементов сайта в выпадающем списке поля товара minishop2.
Так как у нас в качестве значений использовались id ресурса, то при выводе этого поля, можно через Fenom получать
— ссылку на ресурс {'myfield' | url}
— поля ресурса, например, pagetitle {'myfield' | resource: 'pagetitle'}
Что считаю очень удобным
Выглядеть это будет так:
Нам потребуется сам компонент msFieldsManager и начнем мы создавать именно с процессора.
Я хотел в качестве названий видеть Название документа, а в качестве значений — его id. Поэтому в моем случае заполняется подобным образом:
После генерации кода, получаем следующее содержимое:
Вносим свои корректировки, так как требуется получать не все документы, а только дочерние элементы конкретного родителя. В нашем случае с id = 2
<?php
class MsfmTestListGetListProcessor extends modObjectGetListProcessor {
public $classKey = 'modResource';
public $languageTopics = array('resource');
public $defaultSortField = 'pagetitle';
public $permission = 'view';
public function prepareQueryBeforeCount(xPDOQuery $c) {
$c->where(array('parent' => 2));
return $c;
}
}
return 'MsfmTestListGetListProcessor';
Теперь можно приступить непосредственно к созданию дополнительного поля Кастомный выпадающий список.
Интересующая нас часть:
В выпадающем списке появился наш кастомный:
Выбираем его и нажимаем Генерировать код. Конечный вид заполненного поля
И собственно ожидаемый результат вывода элементов сайта в выпадающем списке поля товара minishop2.
Так как у нас в качестве значений использовались id ресурса, то при выводе этого поля, можно через Fenom получать
— ссылку на ресурс {'myfield' | url}
— поля ресурса, например, pagetitle {'myfield' | resource: 'pagetitle'}
Что считаю очень удобным
Нет комментариев