%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.17.176.167
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/admin/update_system_call.php
<?
//**********************************************************************/
//**    DO NOT MODIFY THIS FILE                                       **/
//**    MODIFICATION OF THIS FILE WILL ENTAIL SITE FAILURE            **/
//**********************************************************************/
if (!defined("UPD_INTERNAL_CALL") || UPD_INTERNAL_CALL != "Y")
{
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php");

	if(!$USER->CanDoOperation('install_updates'))
	{
		echo "*";
		die();
	}
}

@set_time_limit(0);
ini_set("track_errors", "1");
ignore_user_abort(true);

IncludeModuleLangFile(__FILE__);

$errorMessage = "";

if (!defined("UPD_INTERNAL_CALL") || UPD_INTERNAL_CALL != "Y")
{
	if (!check_bitrix_sessid())
	{
		echo "ERR".GetMessage("ACCESS_DENIED");
		die();
	}
}

$stableVersionsOnly = COption::GetOptionString("main", "stable_versions_only", "Y");

$queryType = isset($_REQUEST["query_type"]) ? $_REQUEST["query_type"] : '';
if (!in_array($queryType, array("M", "L", "H")))
{
	$queryType = "M";
}

$arRequestedModules = array();
$arRequestedLangs = array();
$arRequestedHelps = array();

if (
	\CUpdateExpertMode::isEnabled()
	&& $_SERVER["REQUEST_METHOD"] === "POST"
	&& isset($_POST['expertModules'])
)
{
	$expertModules = (string)$_POST['expertModules'];
	if (!empty($expertModules))
	{
		$expertModules = json_decode($expertModules, true);
	}
	if (is_array($expertModules))
	{
		$arRequestedModules = $expertModules;
	}
}
if (empty($arRequestedModules))
{
	if (array_key_exists("requested_modules", $_REQUEST))
	{
		$arRequestedModulesTmp = explode(",", $_REQUEST["requested_modules"]);
		for ($i = 0, $cnt = count($arRequestedModulesTmp); $i < $cnt; $i++)
		{
			if (!in_array($arRequestedModulesTmp[$i], $arRequestedModules))
			{
				$arRequestedModules[] = $arRequestedModulesTmp[$i];
			}
		}
	}
	if (array_key_exists("requested_langs", $_REQUEST))
	{
		$arRequestedLangsTmp = explode(",", $_REQUEST["requested_langs"]);
		for ($i = 0, $cnt = count($arRequestedLangsTmp); $i < $cnt; $i++)
		{
			if (!in_array($arRequestedLangsTmp[$i], $arRequestedLangs))
			{
				$arRequestedLangs[] = $arRequestedLangsTmp[$i];
			}
		}
	}
	if (array_key_exists("requested_helps", $_REQUEST))
	{
		$arRequestedHelpsTmp = explode(",", $_REQUEST["requested_helps"]);
		for ($i = 0, $cnt = count($arRequestedHelpsTmp); $i < $cnt; $i++)
		{
			if (!in_array($arRequestedHelpsTmp[$i], $arRequestedHelps))
			{
				$arRequestedHelps[] = $arRequestedHelpsTmp[$i];
			}
		}
	}
}

COption::SetOptionString("main", "update_system_update", Date($GLOBALS["DB"]->DateFormatToPHP(CSite::GetDateFormat("FULL")), time()));

/************************************/
if ($queryType == "M")
{
	$arUpdatedModulesList = array();
	$loadResult = CUpdateClient::LoadModulesUpdates($errorMessage, $arUpdateDescription, LANG, $stableVersionsOnly, $arRequestedModules);
	if ($loadResult == "S")
	{
		CUpdateClient::AddMessage2Log("LoadModulesUpdates-Step", "LMU01");

		$message = "";
		if (isset($arUpdateDescription["DATA"]["#"]["ITEM"]))
		{
			for ($i = 0, $cnt = count($arUpdateDescription["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
			{
				if ($message <> '')
					$message .= ", ";
				$message .= $arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["NAME"];
				if ($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"] <> '')
					$message .= " (".$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"].")";
			}
		}

		die("STP0|".$message);
	}
	elseif ($loadResult == "E")
	{
		if ($errorMessage == '')
			$errorMessage = "[CL02] ".GetMessage("SUPC_ME_PACK");
		CUpdateClient::AddMessage2Log($errorMessage, "CL02");
	}
	elseif ($loadResult == "F")
	{
		CUpdateClient::AddMessage2Log("Finish - NOUPDATES", "STEP");

		$bIntranet = CModule::IncludeModule('intranet');
		if ($bIntranet)
		{
			CAdminNotify::Add(array(
				'MODULE_ID' => 'main',
				'TAG' => 'checklist_cp',
				'MESSAGE' => GetMessage("SUPC_NOTIFY_CHECKLIST", array("#LANG#" => LANG)),
				'NOTIFY_TYPE' => CAdminNotify::TYPE_NORMAL,
				'PUBLIC_SECTION' => 'N',
			));
		}

		die("FIN");
	}

	if ($errorMessage == '')
	{
		$temporaryUpdatesDir = "";
		if (!CUpdateClient::UnGzipArchive($temporaryUpdatesDir, $errorMessage, true))
		{
			$errorMessage .= "[CL02] ".GetMessage("SUPC_ME_PACK").". ";
			CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_PACK"), "CL02");
		}
	}

	if ($errorMessage == '')
	{
		if (!CUpdateClient::CheckUpdatability($temporaryUpdatesDir, $errorMessage))
		{
			$errorMessage .= "[CL03] ".GetMessage("SUPC_ME_CHECK").". ";
			CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_CHECK"), "CL03");
		}
	}

	if ($errorMessage == '')
	{
		$isB24Mode = defined("US_BITRIX24_MODE") && US_BITRIX24_MODE;
		if (!CUpdateClient::UpdateStepModules($temporaryUpdatesDir, $errorMessage, $isB24Mode))
		{
			$errorMessage .= "[CL04] ".GetMessage("SUPC_ME_UPDATE").". ";
			CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_UPDATE"), "CL04");
		}
	}

	if ($errorMessage <> '')
	{
		CUpdateClient::AddMessage2Log("Error: ".$errorMessage, "UPD_ERROR");
		echo "ERR".$errorMessage;
	}
	else
	{
		if (defined("US_BITRIX24_MODE") && US_BITRIX24_MODE)
		{
			COption::SetOptionString("main", "BITRIX24_VERSIONS", "");
			@unlink($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/versions.php");
		}

		echo "STP";
		echo count($arUpdateDescription["DATA"]["#"]["ITEM"])."|";
		$bFirst = true;
		for ($i = 0, $cnt = count($arUpdateDescription["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
		{
			$strModuleDescr = "";
			if ($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["DESCR"] <> '')
			{
				$strModuleDescr = "<br>".htmlspecialcharsback($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["DESCR"]);
				$strModuleDescr = preg_replace("#</?pre>#i", " ", $strModuleDescr);
				$strModuleDescr = preg_replace("/[\s\n\r]+/", " ", $strModuleDescr);
				$strModuleDescr = addslashes($strModuleDescr);
			}

			CUpdateClient::AddMessage2Log("Updated: ".$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["NAME"].(($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"] != "0") ? " (".$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"].")" : "").$strModuleDescr, "UPD_SUCCESS");

			echo ($bFirst ? "" : ", ").$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["NAME"].(($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"] != "0") ? " (".$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"].")" : "");
			$bFirst = false;
		}

		CUpdateClient::finalizeModuleUpdate($arUpdateDescription["DATA"]["#"]["ITEM"]);
	}
}
elseif ($queryType == "L")
{
	$loadResult = CUpdateClient::LoadLangsUpdates($errorMessage, $arUpdateDescription, LANG, $stableVersionsOnly, $arRequestedLangs);
	if ($loadResult == "S")
	{
		CUpdateClient::AddMessage2Log("LoadLangsUpdates-Step", "LLU01");

		$message = "";
		if (isset($arUpdateDescription["DATA"]["#"]["ITEM"]))
		{
			for ($i = 0, $cnt = count($arUpdateDescription["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
			{
				if ($message <> '')
					$message .= ", ";
				$message .= $arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["NAME"];
				if ($arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"] <> '')
					$message .= " (".$arUpdateDescription["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"].")";
			}
		}

		die("STP0|".$message);
	}
	elseif ($loadResult == "E")
	{
		if ($errorMessage == '')
			$errorMessage = "[CL02] ".GetMessage("SUPC_ME_PACK");
		CUpdateClient::AddMessage2Log($errorMessage, "CL02");
	}
	elseif ($loadResult == "F")
	{
		CUpdateClient::AddMessage2Log("Finish - NOUPDATES", "STEP");
		die("FIN");
	}

	/*if (!CUpdateClient::GetNextStepLangUpdates($errorMessage, LANG, $arRequestedLangs))
	{
		$errorMessage .= "[CL01] ".GetMessage("SUPC_ME_LOAD").". ";
		CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_LOAD"), "CL01");
	}*/

	if ($errorMessage == '')
	{
		$temporaryUpdatesDir = "";
		if (!CUpdateClient::UnGzipArchive($temporaryUpdatesDir, $errorMessage, true))
		{
			$errorMessage .= "[CL02] ".GetMessage("SUPC_ME_PACK").". ";
			CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_PACK"), "CL02");
		}
	}

	$arStepUpdateInfo = $arUpdateDescription;
	/*if (strlen($errorMessage) <= 0)
	{
		$arStepUpdateInfo = CUpdateClient::GetStepUpdateInfo($temporaryUpdatesDir, $errorMessage);
	}*/

	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["ERROR"]))
		{
			for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ERROR"]); $i < $cnt; $i++)
				$errorMessage .= "[".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["@"]["TYPE"]."] ".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["#"];
		}
	}

	$arItemsUpdated = array();
	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["ITEM"]))
		{
			for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
				$arItemsUpdated[$arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"]] = $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["NAME"];
		}
	}

	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["NOUPDATES"]))
		{
			CUpdateClient::ClearUpdateFolder($_SERVER["DOCUMENT_ROOT"]."/bitrix/updates/".$temporaryUpdatesDir);
			CUpdateClient::AddMessage2Log("Finish - NOUPDATES", "STEP");
			echo "FIN";
		}
		else
		{
			if (!CUpdateClient::UpdateStepLangs($temporaryUpdatesDir, $errorMessage))
			{
				$errorMessage .= "[CL04] ".GetMessage("SUPC_LE_UPD").". ";
				CUpdateClient::AddMessage2Log(GetMessage("SUPC_LE_UPD"), "CL04");
			}

			if ($errorMessage <> '')
			{
				CUpdateClient::AddMessage2Log("Error: ".$errorMessage, "UPD_ERROR");
				echo "ERR".$errorMessage;
			}
			else
			{
				if (isset($arStepUpdateInfo["DATA"]["#"]["ITEM"]))
				{
					$ar = array();
					$dbRes = CLanguage::GetList(($by="sort"), ($order="asc"), array("ACTIVE" => "Y"));
					while ($arRes = $dbRes->Fetch())
						$ar[] = $arRes["ID"];

					for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
					{
						if (isset($arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"])
							&& !in_array($arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"], $ar))
						{
							$cultureId = false;
							if(class_exists('\Bitrix\Main\Localization\CultureTable'))
							{
								$culture = \Bitrix\Main\Localization\CultureTable::getRow(array('filter'=>array(
									"=FORMAT_DATE" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATE"],
									"=FORMAT_DATETIME" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATETIME"],
									"=CHARSET" => (defined('BX_UTF')? "utf-8" : $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ENC"]),
									"=DIRECTION" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["DIRECTION"],
								)));

								if($culture)
								{
									$cultureId = $culture["ID"];
								}
								else
								{
									$addResult = \Bitrix\Main\Localization\CultureTable::add(array(
										"NAME" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"],
										"CODE" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"],
										"FORMAT_DATE" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATE"],
										"FORMAT_DATETIME" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATETIME"],
										"FORMAT_NAME" => "#NAME# #LAST_NAME#",
										"CHARSET" => (defined('BX_UTF')? "utf-8" : $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ENC"]),
										"DIRECTION" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["DIRECTION"],
									));
									$cultureId = $addResult->getId();
								}
							}

							$arF = array(
								"LID" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ID"],
								"NAME" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["NAME_EN"],
								"FORMAT_DATE" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATE"],
								"FORMAT_DATETIME" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["FORMAT_DATETIME"],
								"CHARSET" => (defined('BX_UTF')? "utf-8" : $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["ENC"]),
								"DIRECTION" => $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["DIRECTION"],
								"ACTIVE" => "Y",
								"CULTURE_ID" => $cultureId,
							);

							$l = new CLanguage();
							$l->Add($arF);
						}
					}
				}

				echo "STP";
				echo count($arItemsUpdated)."|";
				$bFirst = true;
				foreach ($arItemsUpdated as $key => $value)
				{
					CUpdateClient::AddMessage2Log("Updated: ".$key.(($value <> '') ? " (".$value.")" : ""), "UPD_SUCCESS");
					echo ($bFirst ? "" : ", ").$key.(($value <> '') ? " (".$value.")" : "");
					$bFirst = false;
				}

				CUpdateClient::finalizeLanguageUpdate($arItemsUpdated);
			}
		}
	}
	else
	{
		CUpdateClient::AddMessage2Log("Error: ".$errorMessage, "UPD_ERROR");
		echo "ERR".$errorMessage;
	}
}
else
{
	if (!CUpdateClient::GetNextStepHelpUpdates($errorMessage, LANG, $arRequestedHelps))
	{
		$errorMessage .= "[CL01] ".GetMessage("SUPC_ME_LOAD").". ";
		CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_LOAD"), "CL01");
	}

	if ($errorMessage == '')
	{
		$temporaryUpdatesDir = "";
		if (!CUpdateClient::UnGzipArchive($temporaryUpdatesDir, $errorMessage, true))
		{
			$errorMessage .= "[CL02] ".GetMessage("SUPC_ME_PACK").". ";
			CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_PACK"), "CL02");
		}
	}

	$arStepUpdateInfo = array();
	if ($errorMessage == '')
	{
		$arStepUpdateInfo = CUpdateClient::GetStepUpdateInfo($temporaryUpdatesDir, $errorMessage);
	}

	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["ERROR"]))
		{
			for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ERROR"]); $i < $cnt; $i++)
				$errorMessage .= "[".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["@"]["TYPE"]."] ".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["#"];
		}
	}

	$arItemsUpdated = array();
	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["ITEM"]))
		{
			for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ITEM"]); $i < $cnt; $i++)
				$arItemsUpdated[$arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["NAME"]] = $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"];
		}
	}

	if ($errorMessage == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["NOUPDATES"]))
		{
			CUpdateClient::ClearUpdateFolder($_SERVER["DOCUMENT_ROOT"]."/bitrix/updates/".$temporaryUpdatesDir);
			CUpdateClient::AddMessage2Log("Finish - NOUPDATES", "STEP");
			echo "FIN";
		}
		else
		{
			if (!CUpdateClient::UpdateStepHelps($temporaryUpdatesDir, $errorMessage))
			{
				$errorMessage .= "[CL04] ".GetMessage("SUPC_HE_UPD").". ";
				CUpdateClient::AddMessage2Log(GetMessage("SUPC_HE_UPD"), "CL04");
			}

			if ($errorMessage <> '')
			{
				CUpdateClient::AddMessage2Log("Error: ".$errorMessage, "UPD_ERROR");
				echo "ERR".$errorMessage;
			}
			else
			{
				echo "STP";
				echo count($arItemsUpdated)."|";
				$bFirst = true;
				foreach ($arItemsUpdated as $key => $value)
				{
					CUpdateClient::AddMessage2Log("Updated: ".$key.(($value <> '') ? "(".$value.")" : ""), "UPD_SUCCESS");
					echo ($bFirst ? "" : ", ").$key.(($value <> '') ? "(".$value.")" : "");
					$bFirst = false;
				}
			}
		}
	}
	else
	{
		CUpdateClient::AddMessage2Log("Error: ".$errorMessage, "UPD_ERROR");
		echo "ERR".$errorMessage;
	}
}
/************************************/


if (!defined("UPD_INTERNAL_CALL") || UPD_INTERNAL_CALL != "Y")
{
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_after.php");
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit