• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/update/block/fixsrcimg.php
  • Класс: BitrixLandingUpdateBlockFixSrcImg
  • Вызов: FixSrcImg::execute
public function execute(array &$result)
{
	$lastId = Option::get('landing', 'update_block_fixsrcimg', 0);

	$finished = true;

	// gets common quantity
	$res = BlockTable::getList(array(
		'select' => array(
			new BitrixMainEntityExpressionField(
				'CNT', 'COUNT(*)'
			)
		),
		'filter' => [
			'LOGIC' => 'OR',
			'CONTENT' => [
				'%http:///%',
				'%https:///%',
			]
		]
	));
	if ($row = $res->fetch())
	{
		$result['count'] = $row['CNT'];
	}

	// gets group for update
	$res = BlockTable::getList(array(
		'select' => array(
			'ID', 'CONTENT'
		),
		'filter' => array(
			'>ID' => $lastId,
			[
				'LOGIC' => 'OR',
				'CONTENT' => [
					'%http:///%',
					'%https:///%',
				]
			]
		),
		'order' => array(
			'ID' => 'ASC'
		),
		'limit' => 10
	));
	while ($row = $res->fetch())
	{
		$lastId = $row['ID'];
		$result['steps']++;

		BlockTable::update($row['ID'], [
			'CONTENT' => str_replace(
				['http:///', 'https:///'],
				'/',
				$row['CONTENT']
			)
		]);

		$finished = false;
	}

	// add files from blocks
	if (!$finished)
	{
		Option::set('landing', 'update_block_fixsrcimg', $lastId);
		return true;
	}
	else
	{
		Option::delete('landing', array('name' => 'update_block_fixsrcimg'));
		return false;
	}
}