Selector является заменой для mm_ddSelectDocuments.
В отличие от mm_ddSelectDocuments:
Для работы требуется DocLister.
После установки дополнения из магазина приложений необходимо у нужного TV параметра авбрать тип ввода "selector". Компонент требует некой настройки под себя.
Допустим, есть tv-параметр c названием related
, для хранения списка похожих товаров. Чтобы его поведение отличалось от базового, нужно создать в файле assets/tvs/selector/lib/related.controller.class.php
класс:
<?php namespace Selector;
include_once(MODX_BASE_PATH.'assets/tvs/selector/lib/controller.class.php');
class RelatedController extends SelectorController {
... //переопределяем что нужно
}
В большинстве случаев будет достаточно изменить свойство dlParams, в котором хранятся параметры по умолчанию для запуска DocLister:
<?php namespace Selector;
include_once(MODX_BASE_PATH.'assets/tvs/selector/lib/controller.class.php');
class RelatedController extends SelectorController {
public function __construct($modx) {
parent::__construct($modx);
$this->dlParams['parents'] = 5;
$this->dlParams['addWhereList'] = 'c.published = 1';
}
}
Следует обратить внимание, что параметр – related
, название файла – related.controller.class.php
, а название класса – RelatedController
(с большой буквы).
Можно подгружать нужный класс вручную с помощью плагина на OnManagerPageInit. В этом случае значение имеет только правильное название класса. Важно: есть ограничение на название tv-параметра: допускаются только латинские буквы и символ подчеркивания.