Your IP : 3.149.231.25


Current Path : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/iblock/admin/
Upload File :
Current File : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/iblock/admin/iblock_subelement_admin.php

<?
/** @global CUser $USER */
/** @global int $IBLOCK_ID */

use Bitrix\Main;
use Bitrix\Iblock;
use Bitrix\Catalog\Access\AccessController;
use Bitrix\Catalog\Access\ActionDictionary;

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
CModule::IncludeModule("iblock");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php");
IncludeModuleLangFile(__FILE__);

/** @global CAdminPage $adminPage */
global $adminPage;
/** @global CAdminSidePanelHelper $adminSidePanelHelper */
global $adminSidePanelHelper;

$selfFolderUrl = $adminPage->getSelfFolderUrl();

CUtil::JSPostUnescape();
/*
 * this page only for actions and get info
 *
 */
const B_ADMIN_SUBELEMENTS = 1;
const B_ADMIN_SUBELEMENTS_LIST = true;

$boolSubBizproc = CModule::IncludeModule("bizproc");
$boolSubWorkFlow = CModule::IncludeModule("workflow");

global $APPLICATION;

$strSubTMP_ID = 0;
if (array_key_exists('TMP_ID', $_REQUEST))
	$strSubTMP_ID = intval($_REQUEST['TMP_ID']);

$strSubIBlockType = '';
$arSubIBlockType = false;
if (array_key_exists('type', $_REQUEST))
	$strSubIBlockType = strval($_REQUEST['type']);
if ('' != $strSubIBlockType)
{
	$arSubIBlockType = CIBlockType::GetByIDLang($strSubIBlockType, LANGUAGE_ID);
}
if (false === $arSubIBlockType)
	$APPLICATION->AuthForm(GetMessage("IBLOCK_BAD_BLOCK_TYPE_ID"));

$intSubIBlockID = 0;
if (array_key_exists('IBLOCK_ID', $_REQUEST))
	$intSubIBlockID = intval($IBLOCK_ID);

$bBadBlock = true;
if (0 < $intSubIBlockID)
{
	$arSubIBlock = CIBlock::GetArrayByID($intSubIBlockID);
	if ($arSubIBlock)
	{
		$bBadBlock = !CIBlockRights::UserHasRightTo($intSubIBlockID, $intSubIBlockID, "iblock_admin_display");
	}
}

if ($bBadBlock)
{
	$APPLICATION->SetTitle($arSubIBlockType["NAME"]);
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

	ShowError(GetMessage("IBLOCK_BAD_IBLOCK"));?>
	<a href="<?=$selfFolderUrl?>iblock_admin.php?lang=<?echo LANGUAGE_ID?>&type=<?echo htmlspecialcharsbx($strSubIBlockType)?>"><?echo GetMessage("IBLOCK_BACK_TO_ADMIN")?></a>
	<?
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
	die();
}

$arSubIBlock["SITE_ID"] = array();
$rsSites = CIBlock::GetSite($intSubIBlockID);
while($arSite = $rsSites->Fetch())
	$arSubIBlock["SITE_ID"][] = $arSite["LID"];

$boolSubWorkFlow = $boolSubBizproc && $arSubIBlock["WORKFLOW"] != "N";
$boolSubBizproc = $boolSubBizproc && $arSubIBlock["BIZPROC"] != "N";

$boolSubCatalog = false;
$bCatalog = CModule::IncludeModule("catalog");
if ($bCatalog)
{
	$arSubCatalog = CCatalogSKU::GetInfoByOfferIBlock($arSubIBlock["ID"]);
	$boolSubCatalog = (!empty($arSubCatalog) && is_array($arSubCatalog));
	if (!$boolSubCatalog)
	{
		die();
	}
	if (
		!(
			AccessController::getCurrent()->check(ActionDictionary::ACTION_CATALOG_READ)
			|| AccessController::getCurrent()->check(ActionDictionary::ACTION_PRICE_EDIT)
		)
	)
	{
		$boolSubCatalog = false;
	}
}
else
{
	die();
}

$intSubPropValue = 0;
if (array_key_exists('find_el_property_'.$arSubCatalog['SKU_PROPERTY_ID'], $_REQUEST))
	$intSubPropValue = intval($_REQUEST['find_el_property_'.$arSubCatalog['SKU_PROPERTY_ID']]);
if (0 >= $intSubPropValue)
{
	if (0 == $strSubTMP_ID)
	{
		die();
	}
}

$request = Main\Context::getCurrent()->getRequest();
$urlBuilderManager = Iblock\Url\AdminPage\BuilderManager::getInstance();
$urlBuilder = null;
$urlBuilderId = (string)$request->get('urlBuilderId') ;
if ($urlBuilderId !== '')
{
	$urlBuilder = $urlBuilderManager->getBuilder($urlBuilderId);
}
if ($urlBuilder === null)
{
	$urlBuilder = $urlBuilderManager->getBuilder();
}
unset($urlBuilderManager);
if ($urlBuilder === null)
{
	$APPLICATION->SetTitle($arSubIBlockType["NAME"]);
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
	ShowError(GetMessage("IBEL_ERR_BUILDER_ADSENT"));
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
	die();
}
$urlBuilderId = $urlBuilder->getId();
//TODO:: temporary hack for open subelements in public inventory section
if (in_array(
	$urlBuilderId,
	[
		'SHOP',
		'CRM',
		'INVENTORY',
	]
))
{
	if (!defined('SELF_FOLDER_URL'))
	{
		define('SELF_FOLDER_URL', '/shop/settings/');
	}
}

$additionalParams = (defined("SELF_FOLDER_URL") ? "&public=y" : "");
$strSubElementAjaxPath = '/bitrix/tools/iblock/iblock_subelement_admin.php?WF=Y&IBLOCK_ID=' . $intSubIBlockID
	. '&type=' . urlencode($strSubIBlockType) .'&lang=' . LANGUAGE_ID
	. '&find_section_section=0&find_el_property_' . $arSubCatalog['SKU_PROPERTY_ID'] . '=' . $intSubPropValue
	. '&TMP_ID=' . urlencode($strSubTMP_ID)
	. '&urlBuilderId=' . urlencode($urlBuilderId)
	. $additionalParams
;
require($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/iblock/admin/templates/iblock_subelement_list.php');
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_popup_admin.php");