• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/assets/preprocessing/lazyload.php
  • Класс: BitrixLandingAssetsPreProcessingLazyload
  • Вызов: Lazyload::parse
protected function parse(): void
{
	if (!$this->content || !$this->manifest['nodes'])
	{
		return;
	}
	// tmp skip dynamic
	if ($this->skipDynamic && !empty($this->block->getDynamicParams()))
	{
		return;
	}

	$changed = false;
	foreach ($this->manifest['nodes'] as $selector => $node)
	{
		if ($node['type'] === 'img')
		{
			$node = NodeImg::changeNodeType($node, $this->block);
		}

		if ($node['type'] === 'img' || $node['type'] === 'styleimg')
		{
			$domElements = NodeStyle::getNodesBySelector($this->block, $selector);

			if ($node['type'] === 'img')
			{
				foreach ($domElements as $domElement)
				{
					if ($domElement->getTagName() === 'IMG')
					{
						$this->parseImgTag($domElement, $selector);
					}
					else
					{
						$this->parseBg($domElement, $selector);
					}
					$changed = true;
				}
			}
			elseif ($node['type'] === 'styleimg')
			{
				foreach ($domElements as $domElement)
				{
					if ($domElement->getTagName() !== 'IMG')
					{
						$this->parseStyleImg($domElement, $selector);
						$changed = true;
					}
				}
			}
		}
	}

	if ($changed)
	{
		$this->block->saveContent($this->block->getDom()->saveHTML());
		$this->block->save();
	}
}