• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/undo.php
  • Класс: CAutoSave
  • Вызов: CAutoSave::Set
public function Set($data)
{
	global $DB, $USER, $CACHE_MANAGER;

	if (!$USER->IsAuthorized())
		return false;

	if (!is_array($data) || empty($data))
		return false;

	$ID = $this->GetID();
	$arFields = array(
		'MODULE_ID' => 'main',
		'UNDO_TYPE' => 'autosave',
		'UNDO_HANDLER' => 'CAutoSave::_Restore',
		'CONTENT' => serialize($data),
		'USER_ID' => $USER->GetID(),
		'TIMESTAMP_X' => time(),
	);
	$arBinds = array(
		"CONTENT" => $arFields["CONTENT"],
	);

	$strUpdate = $DB->PrepareUpdate("b_undo", $arFields);
	$rs = $DB->QueryBind("UPDATE b_undo SET ".$strUpdate." WHERE ID = '".$DB->ForSQL($ID)."'", $arBinds);
	if ($rs->AffectedRowsCount() == 0)
	{
		$arFields['ID'] = $ID;
		$DB->Add("b_undo", $arFields, array("CONTENT"), "", true);
	}

	$CACHE_MANAGER->Clean(mb_substr($ID, 0, 3), "b_undo");
	return true;
}