function IncludeComponent($componentName, $componentTemplate, $arParams = array(), $parentComponent = null, $arFunctionParams = array()) { /** @global CMain $APPLICATION */ global $APPLICATION, $USER; if (is_array($this->arComponentMatch)) { $skipComponent = true; foreach ($this->arComponentMatch as $cValue) { if (strpos($componentName, $cValue) !== false) { $skipComponent = false; break; } } if ($skipComponent) { return false; } } $componentRelativePath = CComponentEngine::MakeComponentPath($componentName); if (StrLen($componentRelativePath) <= 0) { return False; } if ($_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] == "Y" && ($USER->CanDoOperation('edit_php') || $_SESSION["SHOW_SQL_STAT"] == "Y")) { $debug = new CDebugInfo(); $debug->Start(); } elseif ($APPLICATION->ShowIncludeStat) { $debug = new CDebugInfo(); $debug->Start(); } else { $debug = null; } if (is_object($parentComponent)) { if (!$parentComponent instanceof cbitrixcomponent) { $parentComponent = null; } } $bDrawIcons = (!isset($arFunctionParams["HIDE_ICONS"]) || $arFunctionParams["HIDE_ICONS"] != "Y") && $APPLICATION->GetShowIncludeAreas(); if ($bDrawIcons) { echo $this->IncludeStringBefore(); } $result = null; $bComponentEnabled = !isset($arFunctionParams["ACTIVE_COMPONENT"]) || $arFunctionParams["ACTIVE_COMPONENT"] != "N"; $component = new CBitrixComponent(); if ($component->InitComponent($componentName)) { $obAjax = null; if ($bComponentEnabled) { if ($arParams['AJAX_MODE'] == 'Y') { $obAjax = new CComponentAjax($componentName, $componentTemplate, $arParams, $parentComponent); } $result = $component->IncludeComponent($componentTemplate, $arParams, $parentComponent); } if ($bDrawIcons) { $panel = new CComponentPanel($component, $componentName, $componentTemplate, $parentComponent, $bComponentEnabled); $arIcons = $panel->GetIcons(); echo $s = $this->IncludeStringAfter($arIcons["icons"], $arIcons["parameters"]); } if ($bComponentEnabled && $obAjax) { $obAjax->Process(); } } if ($_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] == "Y" && ($USER->CanDoOperation('edit_php') || $_SESSION["SHOW_SQL_STAT"] == "Y")) { echo $debug->Output($componentName, "/bitrix/components" . $componentRelativePath . "/component.php", $arParams["CACHE_TYPE"] . $arParams["MENU_CACHE_TYPE"]); } elseif (is_object($debug)) { $debug->Stop($componentName, "/bitrix/components" . $componentRelativePath . "/component.php", $arParams["CACHE_TYPE"] . $arParams["MENU_CACHE_TYPE"]); } return $result; }
public static function includeComponent($componentName, $componentTemplate, $arParams = array(), $parentComponent = null, $arFunctionParams = array()) { $componentRelativePath = \CComponentEngine::MakeComponentPath($componentName); if (StrLen($componentRelativePath) <= 0) { return False; } if (is_object($parentComponent)) { if (!$parentComponent instanceof \cbitrixcomponent) { $parentComponent = null; } } $result = null; $bComponentEnabled = !isset($arFunctionParams["ACTIVE_COMPONENT"]) || $arFunctionParams["ACTIVE_COMPONENT"] != "N"; $component = new \CBitrixComponent(); if ($component->InitComponent($componentName)) { $obAjax = null; if ($bComponentEnabled) { $component->setSiteId(static::getInstance()->getSiteId()); $component->setLanguageId(static::getInstance()->getLanguageId()); $component->setSiteTemplateId(static::getInstance()->getSiteTemplateId()); $result = $component->IncludeComponent($componentTemplate, $arParams, $parentComponent); $arThemeCss = array(); // TODO: use styles array from $component foreach ($arThemeCss as $cssPath) { static::getInstance()->setStyle($cssPath); } } } return $result; }