Selector є заміною для mm_ddSelectDocuments.
На відміну від mm_ddSelectDocuments:
Для роботи необхідний DocLister.
Після встановлення доповнення з магазину додатків необхідно у потрібного TV параметра обрати тип вводу "selector". Компонент потребує деякого налаштування під себе.
Припустимо, є tv-параметр з назвою 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-параметру: допускаються тільки латинські букви і символ підкреслювання.