• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/History/Action/EditAttributesAction.php
  • Класс: BitrixLandingHistoryActionEditAttributesAction
  • Вызов: EditAttributesAction::execute
public function execute(bool $undo = true): bool
{
	$block = new Block((int)$this->params['block']);
	$selector = $this->params['selector'];
	$position = $this->params['position'];
	$attribute = $this->params['attribute'];
	$value = $undo ? $this->params['valueBefore'] : $this->params['valueAfter'];

	// todo: what if wrapper node?
	if ($selector && isset($value) && $attribute)
	{
		$landingModeBefore = Landing::getEditMode();
		Landing::setEditMode();
		$block->setAttributes([
			$selector => [
				$position => [
					$attribute => $value,
				],
			],
		]);
		Landing::setEditMode($landingModeBefore);

		return $block->getError()->isEmpty() && $block->save();
	}

	return false;
}