UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: Rodogor от 19 Октября 2012, 10:51:31

Название: umiSelection выбор АКТИВНЫХ и КОНКРЕТНОГО типа данных.
Отправлено: Rodogor от 19 Октября 2012, 10:51:31
Здравствуйте.
Что-то я затупил и не могу решить задачу, хотя задача простая.

Мне нужно выбрать все активные объекты определённого типа из каталога.

$sel = new umiSelection;
$sel->addObjectType(169);
$sel->addElementType(48);

.... далее ещё добавляются различные параметры выборки в зависимости от переданных параметров - наличие/отсутствие свойства, порядок сортировки и т.п.....

Тут я указываю нужный мне тип объекта и тип элемента (базовый тип).

Добавляю $sel->addHierarchyFilter(4,10);

4 - id каталога, внутри которого я выполняю поиск.

После добавления этой строчки начинает выдаваться полная ересь. Выдаются объекты, которые лежат и вне каталога с id=4 и с типами отличными от нужного мне.

Убираю $sel->addElementType(48); , после этого начинают выдаваться объекты типа  <object id="2802" name="Гаврилов Посад" type-id="115" ownerId="10"/> и т.п., а не нужные мне страницы внутри нужного мне каталога.

Как же правильно написать такую выборку ?



$sel->addActiveFilter(true); так же не работает
Название: Re:umiSelection выбор АКТИВНЫХ и КОНКРЕТНОГО типа данных.
Отправлено: Rodogor от 19 Октября 2012, 11:18:42
$sel->forceHierarchyTable(true); решает

Дело было в том что результатом возвращались id объектов, затем я получал страницы. Воспользовался этим способом, получил сразу страницы и всё заработало
Название: Re:umiSelection выбор АКТИВНЫХ и КОНКРЕТНОГО типа данных.
Отправлено: admin от 25 Октября 2012, 22:25:32
есть такая штука, видимо без явного указания с чем ты работаешь система межевалась между строчками

$sel->addObjectType(169); // то ли объекты ему надо
$sel->addElementType(48);// то ли страницы


P.S. а почему не на selector пишете, а на umiSelection?
Название: Re:umiSelection выбор АКТИВНЫХ и КОНКРЕТНОГО типа данных.
Отправлено: Rodogor от 26 Октября 2012, 10:54:00
Да, я так и подумал, что дело в том, что система не могла определить какой тип выдавать надо.

Уже перехожу на selector.
Я просто смотрел имеющийся код и там всюду umiSelection используется. Имея примеры привык работать. Наличие deprecated конечно смущает, сейчас буду использовать только selector.