Dialog::loadPreselectedItems

  1. Bitrix24 API (v. 23.675.0)
  2. ui
  3. Dialog
  4. loadPreselectedItems
  • Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/entityselector/dialog.php
  • Класс: BitrixUIEntitySelectorDialog
  • Вызов: Dialog::loadPreselectedItems
public function loadPreselectedItems($preselectedMode = true): void
{
	if ($this->getPreselectedCollection()->count() < 1)
	{
		return;
	}

	foreach ($this->getPreselectedCollection()->getItems() as $entityId => $preselectedItems)
	{
		$unloadedIds = [];
		$entity = $this->getEntity($entityId) ?? Entity::create(['id' => $entityId]);
		foreach ($preselectedItems as $preselectedItem)
		{
			// Entity doesn't exist
			if (!$entity && $preselectedMode)
			{
				$this->addItem(self::createHiddenItem($preselectedItem->getId(), $entityId));
			}
			else if (!$preselectedItem->isLoaded())
			{
				$unloadedIds[] = $preselectedItem->getId();
			}
		}

		if ($entity && !empty($unloadedIds))
		{
			$availableItems = [];
			$items =
				$preselectedMode
				? $entity->getProvider()->getPreselectedItems($unloadedIds)
				: $entity->getProvider()->getItems($unloadedIds)
			;

			foreach ($items as $item)
			{
				$availableItems[$item->getId()] = $item;
			}

			foreach ($unloadedIds as $unloadedId)
			{
				$item = $availableItems[$unloadedId] ?? null;
				if ($item)
				{
					$this->addItem($item);
				}
				else if ($preselectedMode)
				{
					$this->addItem(self::createHiddenItem($unloadedId, $entityId));
				}
			}
		}
	}
}

Добавить комментарий