protected function executeMainElements() { // todo Move to getFilterParams() if ($this->arParams['SECTION_CODE'] && !$this->arParams['SECTION_ID']) { $this->arParams['SECTION_ID'] = \CIBlockFindTools::GetSectionID(0, $this->arParams['SECTION_CODE'], []); } if ($this->arParams['ELEMENT_CODE'] && !$this->arParams['ELEMENT_ID']) { $this->arParams['ELEMENT_ID'] = \CIBlockFindTools::GetElementID(0, $this->arParams['ELEMENT_CODE'], $this->arParams['SECTION_ID'], $this->arParams['SECTION_CODE'], []); } $this->readInheritedProps(); $this->readSectionParams(); $this->readOgDatas(); }
return 0; } /************************************************************************* Start caching *************************************************************************/ if ($arParams["SHOW_WORKFLOW"] || $this->StartResultCache(false, $arParams["CACHE_GROUPS"] === "N" ? false : $USER->GetGroups())) { if (!CModule::IncludeModule("iblock")) { $this->AbortResultCache(); ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED")); return; } if ($arParams["ELEMENT_ID"] > 0) { $ELEMENT_ID = $arParams["ELEMENT_ID"]; } else { //Handle case when ELEMENT_CODE used $ELEMENT_ID = CIBlockFindTools::GetElementID($arParams["ELEMENT_ID"], $arParams["ELEMENT_CODE"], false, false, array("IBLOCK_ACTIVE" => "Y", "IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y")); } if ($ELEMENT_ID) { $WF_SHOW_HISTORY = "N"; if ($arParams["SHOW_WORKFLOW"] && CModule::IncludeModule("workflow")) { $WF_ELEMENT_ID = CIBlockElement::WF_GetLast($ELEMENT_ID); $WF_STATUS_ID = CIBlockElement::WF_GetCurrentStatus($WF_ELEMENT_ID, $WF_STATUS_TITLE); $WF_STATUS_PERMISSION = CIBlockElement::WF_GetStatusPermission($WF_STATUS_ID); if ($WF_STATUS_ID == 1 || $WF_STATUS_PERMISSION < 1) { $WF_ELEMENT_ID = $ELEMENT_ID; } else { $WF_SHOW_HISTORY = "Y"; } $ELEMENT_ID = $WF_ELEMENT_ID; } //SELECT
$arFilter = array( "IBLOCK_LID" => SITE_ID, "IBLOCK_ACTIVE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "SHOW_HISTORY" => $arParams["SHOW_WORKFLOW"]? "Y": "N", ); if(intval($arParams["IBLOCK_ID"]) > 0) $arFilter["IBLOCK_ID"] = $arParams["IBLOCK_ID"]; if($arParams["ELEMENT_ID"] <= 0): $arParams["ELEMENT_ID"] = CIBlockFindTools::GetElementID( $arParams["ELEMENT_ID"], $arParams["ELEMENT_CODE"], false, false, $arFilter ); endif; $arFilter["ID"] = $arParams["ELEMENT_ID"]; $WF_SHOW_HISTORY = "N"; if ($arParams["SHOW_WORKFLOW"] && CModule::IncludeModule("workflow")) { $WF_ELEMENT_ID = CIBlockElement::WF_GetLast($arParams["ELEMENT_ID"]); $WF_STATUS_ID = CIBlockElement::WF_GetCurrentStatus($WF_ELEMENT_ID, $WF_STATUS_TITLE); $WF_STATUS_PERMISSION = CIBlockElement::WF_GetStatusPermission($WF_STATUS_ID);