Current Path : /home/bitrix/ext_www/school1535.yacl.site/local/ajax/ |
Current File : /home/bitrix/ext_www/school1535.yacl.site/local/ajax/show_comp_ajax.php |
<? /** @global \CMain $APPLICATION */ define('STOP_STATISTICS', true); /** * сюда приходят параметры * название компоннета * название шаблона * параметры компонента * отдаем компонент в котором отдается все в формате json * далее через скрипт это все вставляется на страницу * */ $siteId = isset($_REQUEST['siteId']) && is_string($_REQUEST['siteId']) ? $_REQUEST['siteId'] : ''; $siteId = substr(preg_replace('/[^a-z0-9_]/i', '', $siteId), 0, 2); if (!empty($siteId) && is_string($siteId)) { define('SITE_ID', $siteId); } require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); $request->addFilter(new \Bitrix\Main\Web\PostDecodeFilter); if (!\Bitrix\Main\Loader::includeModule('iblock')) return; $signer = new \Bitrix\Main\Security\Sign\Signer; try { $template = $signer->unsign($request->get('template'), 'veb.component.ajax'); $paramString = $signer->unsign($request->get('parameters'), 'veb.component.ajax'); } catch (\Bitrix\Main\Security\Sign\BadSignatureException $e) { die(); } $parameters = unserialize(base64_decode($paramString)); if (isset($parameters['PARENT_NAME'])) { $parent = new CBitrixComponent(); $parent->InitComponent($parameters['PARENT_NAME'], $parameters['PARENT_TEMPLATE_NAME']); $parent->InitComponentTemplate($parameters['PARENT_TEMPLATE_PAGE']); } else { $parent = false; } /** * пред обработка параметров компонента * */ $GLOBALS[$parameters['FILTER_NAME']] = $parameters['GLOBAL_FILTER']; foreach ($parameters as $key => $val) { if(strpos($key, '~') !== false) { $parameters[str_replace('~', '', $key)] = $val; } } /** * этот параметр нужен для того чтобы постраничка верно работала * */ $GLOBALS["NavNum"] = $request->get('PAGEN')-1; $APPLICATION->IncludeComponent( $parameters['COMPONENT_NAME'], $template, $parameters, $parent );