Your IP : 3.145.178.65


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/landing/lib/update/block/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/landing/lib/update/block/fixsrcimg.php

<?php
namespace Bitrix\Landing\Update\Block;

use \Bitrix\Landing\Internals\BlockTable;
use \Bitrix\Main\Update\Stepper;
use \Bitrix\Main\Config\Option;
use \Bitrix\Main\Localization\Loc;

Loc::loadMessages(__FILE__);

class FixSrcImg extends Stepper
{
	protected static $moduleId = 'landing';

	/**
	 * One step of converter.
	 * @param array &$result Result array.
	 * @return bool
	 */
	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 \Bitrix\Main\Entity\ExpressionField(
					'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;
		}
	}
}