403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/iblock/admin/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/iblock/admin/redirect_entity.php
<?php
/** @global CMain $APPLICATION */
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main;
use Bitrix\Iblock;

require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php';
Loader::includeModule('iblock');
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/iblock/prolog.php';

Loc::loadMessages(__FILE__);

$manager = Iblock\Url\AdminPage\BuilderManager::getInstance();
$urlBuilder = $manager->getBuilder(Iblock\Url\AdminPage\IblockBuilder::TYPE_ID);
unset($manager);

$adminListTableID = 'tbl_iblock_redirect_entity';
$adminList = new CAdminList($adminListTableID);
$filterFields = [
	'ENTITY',
	'ID',
];
$currentFilter = $adminList->InitFilter($filterFields);
foreach ($filterFields as $fieldName)
{
	$currentFilter[$fieldName] = (string)($currentFilter[$fieldName] ?? '');
}
unset($filterFields);

$entityList = [
	'ELEMENT' => Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ENTITY_ELEMENT'),
	'SECTION' => Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ENTITY_SECTION'),
	'IBLOCK' => Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ENTITY_IBLOCK')
];
$errors = array();
$entityId = '';
$entityCode = $currentFilter['ENTITY'] ?? '';

$request = Main\Context::getCurrent()->getRequest();
if ($request->isPost() && check_bitrix_sessid())
{
	$entityId = (int)$request['ID'];
	$entityCode = (string)$request['ENTITY'];
	if ($entityId <= 0)
	{
		$errors[] = Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ERR_EMPTY_ELEMENT_ID');
	}
	if (!isset($entityList[$entityCode]))
	{
		$errors[] = Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ERR_EMPTY_ENTITY');
	}

	if (empty($errors))
	{
		$redirectUrl = '';
		switch ($entityCode)
		{
			case 'IBLOCK':
				$iterator = CIBlock::GetList(
					[],
					[
						'ID' => $entityId,
						'CHECK_PERMISSIONS' => 'Y',
						'MIN_PERMISSION' => 'S',
					],
					false
				);
				$row = $iterator->Fetch();
				unset($iterator);
				if (empty($row))
				{
					$errors[] = Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ERR_IBLOCK_NOT_FOUND');
				}
				else
				{
					$urlBuilder->setIblockId((int)$row['ID']);
					$redirectUrl = $urlBuilder->getElementListUrl(
						-1,
						['WF' => 'Y']
					);
				}
				unset($row);
				break;
			case 'SECTION':
				$iterator = CIBlockSection::GetList(
					[],
					[
						'ID' => $entityId,
						'CHECK_PERMISSIONS' => 'Y',
						'MIN_PERMISSION' => 'S',
					],
					false,
					false,
					[
						'ID',
						'IBLOCK_ID',
					]
				);
				$row = $iterator->Fetch();
				unset($iterator);
				if (empty($row))
				{
					$errors[] = Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ERR_SECTION_NOT_FOUND');
				}
				else
				{
					$urlBuilder->setIblockId((int)$row['IBLOCK_ID']);
					$redirectUrl = $urlBuilder->getSectionDetailUrl(
						(int)$row['ID'],
						['find_section_section' => -1]
					);
				}
				unset($row);
				break;
			case 'ELEMENT':
				$iterator = CIBlockElement::GetList(
					[],
					[
						'ID' => $entityId,
						'CHECK_PERMISSIONS' => 'Y',
						'MIN_PERMISSION' => 'S',
					],
					false,
					false,
					[
						'ID',
						'IBLOCK_ID',
						'WF_PARENT_ELEMENT_ID',
					]
				);
				$row = $iterator->Fetch();
				unset($iterator);
				if (empty($row))
				{
					$errors[] = Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_ERR_ELEMENT_NOT_FOUND');
				}
				else
				{
					$urlBuilder->setIblockId((int)$row['IBLOCK_ID']);
					$redirectUrl = $urlBuilder->getElementDetailUrl(
						(!empty($row['WF_PARENT_ELEMENT_ID'])
							? (int)$row['WF_PARENT_ELEMENT_ID']
							: (int)$row['ID']
						),
						[
							'find_section_section' => -1,
							'WF' => 'Y',
						]
					);
				}
				unset($row);
				break;
		}
		if ($redirectUrl != '')
		{
			LocalRedirect($redirectUrl);
		}
	}
}

$APPLICATION->SetTitle(Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_TITLE'));

require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php';

if (!empty($errors))
{
	$errorMessage = new CAdminMessage([
		'DETAILS' => implode('<br>', $errors),
		'TYPE' => 'ERROR',
		'HTML' => true,
	]);
	echo $errorMessage->Show();
	unset($errorMessage);
}

?><form name="find_form" method="POST" action="<?= $APPLICATION->GetCurPage()?>?lang=<?= LANGUAGE_ID;?>"><?php
echo bitrix_sessid_post();
$filter = new CAdminFilter(
	'element_redirect_filter',
	[
		'ENTITY' => Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_FILTER_ENTITY'),
		'ID' => Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_FILTER_ID'),
	]
);
$filter->SetDefaultRows([
	'ENTITY',
	'ID',
]);
$filter->Begin();
?>
<tr>
	<td><?= Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_FILTER_ENTITY')?></td>
	<td><select name="ENTITY"><?php
		foreach ($entityList as $key => $value)
		{
			?><option value="<?= htmlspecialcharsbx($key); ?>"<?= ($entityCode == $key ? ' selected' : ''); ?>><?= htmlspecialcharsEx($value); ?></option><?php
		}
		unset($key, $value);
		?></select>
	</td>
</tr>
<tr>
	<td><?= Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_FILTER_ID')?></td>
	<td><input type="text" name="ID" value="<?= htmlspecialcharsbx($request['ID']); ?>"></td>
</tr>
<?php
$filter->Buttons(
	[
		'table_id' => $adminListTableID,
		'url' => $APPLICATION->GetCurPage(),
		'form' => 'find_form',
	]
);
$filter->End();
?></form><?php

echo
	BeginNote()
	. Loc::getMessage('BX_IBLOCK_REDIRECT_ENTITY_NOTE')
	. EndNote()
;

require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_admin.php';

Youez - 2016 - github.com/yon3zu
LinuXploit