Контроллер onetable и idType="parents"
Closed this issue · 2 comments
Так как метод setIDs в этом контроллере не переопределяется, то родители выбираются из site_content, а потом по ним делается выборка уже в таблице, заданной для onetable. По идее это баг, но для компонентов типа SimpleGallery, это уже фича. Возможно стоит как-то упорядочить это поведение.
Не понял вопроса. setIDs определена в абстрактном классе DocLister и только. Если мы используем контроллер site_content, то при вызове метода getChildrenFolder из sitIDs мы уходим сюда. Если же используется контроллер onetable, то уходим уже в другой класс. Не пойму, как мы из onetable вдруг попадаем в site_content...
https://github.com/AgelxNash/DocLister/blob/master/assets/snippets/DocLister/core/DocLister.abstract.php#L241 - вот отсюда путаница пошла. Просто указать таблицу в свойстве table недостаточно, потому что это свойство перезапишется значением параметра. У меня получилось так:
protected $table = 'my_table';
public function __construct(DocumentParser $modx, array $cfg, $startTime = null)
{
parent::__construct($modx, $cfg, $startTime); //здесь в свойство table записалось значение site_content, с учетом этого отработал метод setIDs
$this->table = $this->getTable('my_table'); //приходится заново задавать свойство table
...
}