• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/block.php
  • Класс: BitrixLandingBlock
  • Вызов: Block::adjustCards
public function adjustCards($selector, $count, &$changed = false)
{
	if (!is_string($selector))
	{
		return false;
	}

	if ($this->access < $this::ACCESS_W)
	{
		$this->error->addError(
			'ACCESS_DENIED',
			Loc::getMessage('LANDING_BLOCK_ACCESS_DENIED')
		);
		return false;
	}

	$manifest = $this->getManifest();
	if (isset($manifest['cards'][$selector]))
	{
		$count = (int)$count;
		$doc = $this->getDom();
		$resultList = $doc->querySelectorAll($selector);
		$resultCount = count($resultList);
		if ($count > $resultCount)
		{
			for ($i = $resultCount; $i < $count; $i++)
			{
				$changed = true;
				$this->cloneCard($selector, $i - 1);
			}
		}
		elseif ($count < $resultCount)
		{
			for ($i = $resultCount; $i > $count; $i--)
			{
				$changed = true;
				$this->removeCard($selector, $i - 1);
			}
		}
		return true;
	}

	$this->error->addError(
		'CARD_NOT_FOUND',
		Loc::getMessage('LANDING_BLOCK_CARD_NOT_FOUND')
	);

	return false;
}