$GLOBALS["APPLICATION"]->AddChainItem($arSectionPath4Cache[$i][0], $arSectionPath4Cache[$i][1]); } $cache->Output(); } else { if ($CACHE_TIME > 0) { $cache->StartDataCache($CACHE_TIME, $cache_id, "/" . SITE_ID . "/catalog/uni_section.php/"); } $arSectionPath4Cache = array(); $arFolder = False; $dbIBlock = CIBlock::GetByID($IBLOCK_ID); if ($arIBlock = $dbIBlock->Fetch()) { if (strlen($DETAIL_PAGE_TEMPLATE) <= 0) { $DETAIL_PAGE_TEMPLATE = $arIBlock["DETAIL_PAGE_URL"]; } if ($bDisplayPanel) { CIBlock::ShowPanel($IBLOCK_ID, 0, $ID, $arIBlock["IBLOCK_TYPE_ID"]); } $strPath_tmp = UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => 0)); $GLOBALS["APPLICATION"]->AddChainItem($arIBlock["NAME"], $strPath_tmp); $arSectionPath4Cache[] = array($arIBlock["NAME"], $strPath_tmp); if (IntVal($ID) > 0) { $dbFolder = CIBlockSection::GetByID($ID); if ($arFolder = $dbFolder->Fetch()) { $dbSectionPath = CIBlockSection::GetNavChain($IBLOCK_ID, $ID); while ($arSectionPath = $dbSectionPath->Fetch()) { $strPath_tmp = UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => $arSectionPath["ID"])); $GLOBALS["APPLICATION"]->AddChainItem($arSectionPath["NAME"], $strPath_tmp); $arSectionPath4Cache[] = array($arSectionPath["NAME"], $strPath_tmp); } } }
<tr> <td>' . htmlspecialcharsbx($matches[3]) . '</td> </tr> </table> '); } } global $APPLICATION, $USER; foreach ($arResult['ITEMS'] as $key => $val) { $arResult['ITEMS'][$key]["DETAIL_TEXT"] = preg_replace_callback("/(<|\\[)CODE(>|\\])(.+?)(<|\\[)\\/CODE(>|\\])/is", code_replace_func, $arResult['ITEMS'][$key]["DETAIL_TEXT"]); if (strtoupper($arResult['ITEMS'][$key]["PREVIEW_TEXT_TYPE"]) == "TEXT") { $arResult['ITEMS'][$key]["PREVIEW_TEXT"] = nl2br($arResult['ITEMS'][$key]["PREVIEW_TEXT"]); } if (strtoupper($arResult['ITEMS'][$key]["DETAIL_TEXT_TYPE"]) == "TEXT") { $arResult['ITEMS'][$key]["DETAIL_TEXT"] = nl2br($arResult['ITEMS'][$key]["DETAIL_TEXT"]); } //create button if ($USER->IsAuthorized()) { if ($APPLICATION->GetShowIncludeAreas()) { $ar = CIBlock::ShowPanel($arParams['IBLOCK_ID'], $val['ID'], 0, $arParams["IBLOCK_TYPE"], true); if (is_array($ar)) { foreach ($ar as $arButton) { if (preg_match("/[^A-Z0-9_]ID=\\d+/", $arButton["URL"])) { $arButton["URL"] = preg_replace("/&return_url=(.+?)&/", "&", $arButton["URL"]); $arResult['ITEMS'][$key]['EDIT_BUTTON'] = '<a href="' . htmlspecialcharsbx($arButton["URL"]) . '" title="' . htmlspecialcharsbx($arButton["TITLE"]) . '"><img src="' . $arButton["IMAGE"] . '" width="20" height="20" border="0" /></a>'; } } } } } }
********************************************************************/ if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle($arParams["ACTION"] == "CLONE" ? GetMessage("WD_TITLE_CLONE") : GetMessage("WD_TITLE")); } if ($arParams["SET_NAV_CHAIN"] == "Y") { $res = array("section_id" => !empty($arResult["ELEMENT_ORIGINAL"]) ? $arResult["ELEMENT_ORIGINAL"]["IBLOCK_SECTION_ID"] : $arResult["ELEMENT"]["IBLOCK_SECTION_ID"]); $arResult["NAV_CHAIN"] = $ob->GetNavChain($res, "array"); $arNavChain = array(); foreach ($arResult["NAV_CHAIN"] as $res) { $arNavChain[] = $res["URL"]; $url = CComponentEngine::MakePathFromTemplate($arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arNavChain), "SECTION_ID" => $res["ID"], "ELEMENT_ID" => "files", "ELEMENT_NAME" => "files")); $GLOBALS["APPLICATION"]->AddChainItem(htmlspecialcharsEx($res["NAME"]), $url); } if (!empty($arResult["ELEMENT_ORIGINAL"])) { $GLOBALS["APPLICATION"]->AddChainItem(GetMessage("WD_ORIGINAL") . ": " . htmlspecialcharsEx($arResult["ELEMENT_ORIGINAL"]["~NAME"]), WDAddPageParams(CComponentEngine::MakePathFromTemplate($arParams["~ELEMENT_URL"], array("PATH" => $arResult["ELEMENT_ORIGINAL"]["PATH"], "SECTION_ID" => intVal(${$arResult}["ELEMENT_ORIGINAL"]["IBLOCK_SECTION_ID"]), "ELEMENT_ID" => $arResult["ELEMENT_ORIGINAL"]["ID"], "ELEMENT_NAME" => $arResult["ELEMENT_ORIGINAL"]["~NAME"])), array($arParams["FORM_ID"] . "_active_tab" => "tab_version"))); } $GLOBALS["APPLICATION"]->AddChainItem(htmlspecialcharsEx($arResult["ELEMENT"]["~NAME"]), $arResult["ELEMENT"]["URL"]["VIEW"]); } if ($arParams["DISPLAY_PANEL"] == "Y" && $USER->IsAuthorized()) { CIBlock::ShowPanel($arParams["IBLOCK_ID"], 0, $arParams["SECTION_ID"], $arParams["IBLOCK_TYPE"], false, $this->GetName()); } /******************************************************************** /Standart operations ********************************************************************/ if ($arParams["WORKFLOW"] == "workflow" && (!empty($arResult["ELEMENT"]["ORIGINAL"]) && intVal($arResult["ELEMENT"]["ORIGINAL"]["WF_STATUS_ID"]) > 1 || empty($arResult["ELEMENT"]["ORIGINAL"]) && intVal($arResult["ELEMENT"]["WF_STATUS_ID"]) > 1)) { return array("ELEMENT_ID" => false); } elseif (!empty($arResult["ELEMENT"]["ORIGINAL"])) { return array("ELEMENT_ID" => $arResult["ELEMENT"]["ORIGINAL"]["ID"], "ELEMENT" => $arResult["ELEMENT"]); } else { return array("ELEMENT_ID" => $arParams["ELEMENT_ID"], "ELEMENT" => $arResult["ELEMENT"]); }
} $arResult["NAV_STRING"] = $rsElement->GetPageNavStringEx($navComponentObject, $arParams["PAGER_TITLE"], $arParams["PAGER_TEMPLATE"], $arParams["PAGER_SHOW_ALWAYS"]); $arResult["NAV_CACHED_DATA"] = $navComponentObject->GetTemplateCachedData(); $arResult["NAV_RESULT"] = $rsElement; $this->SetResultCacheKeys(array("ID", "IBLOCK_TYPE_ID", "NAV_CACHED_DATA", "NAME", "SECTION")); $this->IncludeComponentTemplate(); } else { $this->AbortResultCache(); ShowError(GetMessage("T_DOCS_DOCS_NA")); @define("ERROR_404", "Y"); } } if (isset($arResult["ID"])) { if ($USER->IsAuthorized()) { if ($GLOBALS["APPLICATION"]->GetShowIncludeAreas() && CModule::IncludeModule("iblock")) { $this->AddIncludeAreaIcons(CIBlock::ShowPanel($arResult["ID"], 0, 0, $arResult["IBLOCK_TYPE_ID"], true)); } } $this->SetTemplateCachedData($arResult["NAV_CACHED_DATA"]); if ($arParams["SET_TITLE"]) { $APPLICATION->SetTitle($arResult["NAME"]); } if ($arParams["INCLUDE_IBLOCK_INTO_CHAIN"] && isset($arResult["NAME"])) { $APPLICATION->AddChainItem($arResult["NAME"]); } if ($arParams["ADD_SECTIONS_CHAIN"] && is_array($arResult["SECTION"])) { foreach ($arResult["SECTION"]["PATH"] as $arPath) { $APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]); } } }
$arParams["IBLOCK_TYPE"] = trim($arParams["IBLOCK_TYPE"]); $arParams["IBLOCK_URL"] = trim($arParams["IBLOCK_URL"]); /************************************************************************* Work with cache *************************************************************************/ $arResult["ITEMS"] = array(); if ($this->StartResultCache(false, $arParams["CACHE_GROUPS"] === "N" ? false : $USER->GetGroups())) { if (!CModule::IncludeModule("iblock")) { $this->AbortResultCache(); ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED")); return; } //WHERE $arFilter = array("TYPE" => $arParams["IBLOCK_TYPE"], "SITE_ID" => SITE_ID, "ACTIVE" => "Y"); //ORDER BY $arSort = array("SORT" => "ASC", "NAME" => "ASC"); $rsIBlocks = CIBlock::GetList($arSort, $arFilter); while ($arIBlock = $rsIBlocks->GetNext()) { $arIBlock["PICTURE"] = CFile::GetFileArray($arIBlock["PICTURE"]); $arIBlock["~LIST_PAGE_URL"] = str_replace(array("#SERVER_NAME#", "#SITE_DIR#", "#IBLOCK_TYPE_ID#", "#IBLOCK_ID#", "#IBLOCK_CODE#", "#IBLOCK_EXTERNAL_ID#", "#CODE#"), array(SITE_SERVER_NAME, SITE_DIR, $arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], $arIBlock["CODE"], $arIBlock["EXTERNAL_ID"], $arIBlock["CODE"]), strlen($arParams["IBLOCK_URL"]) ? trim($arParams["~IBLOCK_URL"]) : $arIBlock["~LIST_PAGE_URL"]); $arIBlock["~LIST_PAGE_URL"] = preg_replace("'/+'s", "/", $arIBlock["~LIST_PAGE_URL"]); $arIBlock["LIST_PAGE_URL"] = htmlspecialcharsbx($arIBlock["~LIST_PAGE_URL"]); $arResult["ITEMS"][] = $arIBlock; } $this->IncludeComponentTemplate(); } if (count($arResult["ITEMS"]) > 0 && $USER->IsAuthorized()) { if ($APPLICATION->GetShowIncludeAreas() && CModule::IncludeModule("iblock")) { $this->AddIncludeAreaIcons(CIBlock::ShowPanel(0, 0, 0, $arParams["IBLOCK_TYPE"], true)); } }
return preg_replace("/\n/is", "", ' <table cellpadding="0" cellspacing="0" class="data-table"> <tr> <td>' . htmlspecialcharsbx($matches[3]) . '</td> </tr> </table> '); } } global $APPLICATION, $USER; $arResult['ITEM']["DETAIL_TEXT"] = preg_replace_callback("/(<|\\[)CODE(>|\\])(.+?)(<|\\[)\\/CODE(>|\\])/is", code_replace_func, $arResult['ITEM']["DETAIL_TEXT"]); if (strtoupper($arResult['ITEM']["PREVIEW_TEXT_TYPE"]) == "TEXT") { $arResult['ITEM']["PREVIEW_TEXT"] = nl2br($arResult['ITEM']["PREVIEW_TEXT"]); } if (strtoupper($arResult['ITEM']["DETAIL_TEXT_TYPE"]) == "TEXT") { $arResult['ITEM']["DETAIL_TEXT"] = nl2br($arResult['ITEM']["DETAIL_TEXT"]); } //create button if ($USER->IsAuthorized()) { if ($APPLICATION->GetShowIncludeAreas()) { $ar = CIBlock::ShowPanel($arParams['IBLOCK_ID'], $arResult['ITEM']['ID'], 0, $arParams["IBLOCK_TYPE"], true); if (is_array($ar)) { foreach ($ar as $arButton) { if (preg_match("/[^A-Z0-9_]ID=\\d+/", $arButton["URL"])) { $arButton["URL"] = preg_replace("/&return_url=(.+?)&/", "&", $arButton["URL"]); $arResult['ITEM']['EDIT_BUTTON'] = '<a href="' . htmlspecialcharsbx($arButton["URL"]) . '" title="' . htmlspecialcharsbx($arButton["TITLE"]) . '"><img src="' . $arButton["IMAGE"] . '" width="20" height="20" border="0" /></a>'; } } } } }
ELEMENT_SORT_ORDER - element sorting order, following values can be used: asc - in ascending order desc - in descending order FILTER_NAME - name of an array with values for elements filtering CACHE_FILTER - [Y|N] use or not use cache for values selected from database if filter was set with this values? CACHE_TIME - (сек.) time for caching values selected from database ***************************************************************************/ global $USER, $APPLICATION; if (CModule::IncludeModule("iblock")) { IncludeTemplateLangFile(__FILE__); $bDisplayPanel = $DISPLAY_PANEL == "Y" ? True : False; if ($bDisplayPanel) { CIBlock::ShowPanel($IBLOCK_ID, 0, 0, $IBLOCK_TYPE); } /************************************************************************* Processing of received parameters *************************************************************************/ $LINE_ELEMENT_COUNT = intval($LINE_ELEMENT_COUNT); global ${$FILTER_NAME}; $arrFilter = ${$FILTER_NAME}; $CACHE_FILTER = $CACHE_FILTER == "Y" ? "Y" : "N"; if ($CACHE_FILTER == "N" && count($arrFilter) > 0) { $CACHE_TIME = 0; } /************************************************************************* Work with cache *************************************************************************/ $CACHE_ID = __FILE__ . md5(serialize($arParams) . serialize($arrFilter) . $USER->GetGroups());
} } $this->IncludeComponentTemplate(); } else { $this->AbortResultCache(); ShowError(GetMessage("T_NEWS_DETAIL_NF")); @define("ERROR_404", "Y"); } } if (isset($arResult["ID"])) { if (CModule::IncludeModule("iblock")) { CIBlockElement::CounterInc($arParams["ELEMENT_ID"]); if ($GLOBALS["APPLICATION"]->GetShowIncludeAreas()) { $this->AddIncludeAreaIcons(CIBlock::ShowPanel($arResult["IBLOCK_ID"], $arResult["ID"], 0, $arParams["IBLOCK_TYPE"], true)); if ($arParams["DISPLAY_PANEL"]) { CIBlock::ShowPanel($arResult["IBLOCK_ID"], $arResult["ID"], 0, $arParams["IBLOCK_TYPE"]); } } } if ($arParams["SET_TITLE"]) { $APPLICATION->SetTitle($arResult["NAME"]); } if ($arParams["ADD_SECTIONS_CHAIN"] && is_array($arResult["SECTION"])) { foreach ($arResult["SECTION"]["PATH"] as $arPath) { $APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]); } } return $arResult["ID"]; } else { return 0; }
} if ($bUserHaveAccess) { if (CModule::IncludeModule("iblock")) { CIBlockElement::CounterInc($ID); } $cache = new CPHPCache(); if ($cache->InitCache($CACHE_TIME, $CACHE_ID)) { $vars = $cache->GetVars(); CIBlock::ShowPanel($vars["IBLOCK_ID"], $ID); $APPLICATION->SetTitle($vars["NAME"]); $APPLICATION->AddChainItem($vars["IBLOCK_NAME"], $vars["LIST_PAGE_URL"]); $cache->Output(); } else { if (CModule::IncludeModule("iblock")) { if ($arIBlockElement = GetIBlockElement($ID, $IBLOCK_TYPE)) { CIBlock::ShowPanel($arIBlockElement["IBLOCK_ID"], $ID, 0, $IBLOCK_TYPE); $APPLICATION->SetTitle($arIBlockElement["NAME"]); $APPLICATION->AddChainItem($arIBlockElement["IBLOCK_NAME"], $arIBlockElement["LIST_PAGE_URL"]); $cache->StartDataCache(); ?> <?php if ($arIBlockElement["ACTIVE_FROM"]) { ?> <font class="newsdata"><?php echo $arIBlockElement["ACTIVE_FROM"]; ?> </font><?php } ?> <font class="text"> <?php
/************************************************************************* Work with cache *************************************************************************/ $CACHE_ID = SITE_ID . "|" . __FILE__ . md5(serialize($arParams) . $USER->GetGroups() . CDBResult::NavStringForCache($PAGE_LINK_ELEMENT_COUNT)); $obCache = new CPHPCache(); if ($obCache->InitCache($CACHE_TIME, $CACHE_ID, "/")) { $arVars = $obCache->GetVars(); $ELEMENT_NAME = $arVars["ELEMENT_NAME"]; } else { $rsElement = CIBlockElement::GetList(array(), array("ID" => IntVal($ELEMENT_ID), "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y"), false, false, array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL")); $arElement = $rsElement->GetNext(); $ELEMENT_NAME = $arElement["NAME"]; } if (strlen($ELEMENT_NAME) > 0) { if ($bDisplayPanel) { CIBlock::ShowPanel($LINK_IBLOCK_ID, 0, 0, $LINK_IBLOCK_TYPE); } $APPLICATION->SetTitle(str_replace("#PHONE_NAME#", $ELEMENT_NAME, $APPLICATION->GetTitle())); if ($obCache->StartDataCache()) { $arrPrice = ""; // if price type code specified if (strlen($LINK_PRICE_CODE) > 0 && CModule::IncludeModule("sale") && CModule::IncludeModule("catalog")) { $arrPrice = array(); $rsPrice = CCatalogGroup::GetList($v1, $v2, array("NAME" => $LINK_PRICE_CODE)); while ($arPrice = $rsPrice->Fetch()) { $arrPrice[$arPrice["NAME"]] = array("ID" => $arPrice["ID"], "TITLE" => $arPrice["NAME_LANG"]); } } /************************************ Elements ************************************/
$arrPath[] = array("ID" => $arPath["ID"], "NAME" => $arPath["NAME"]); } } } // if element has been found then if ($found == "Y") { $ELEMENT_NAME = $arElement["NAME"]; $IBLOCK_ID = $arElement["IBLOCK_ID"]; $SECTION_ID = $arElement["IBLOCK_SECTION_ID"]; $KEYWORDS = $arProperty["KEYWORDS"]["VALUE"]; $DESCRIPTION = $arProperty["DESCRIPTION"]["VALUE"]; $SECTION_NAME = is_array($arSection) ? $arSection["NAME"] : ""; $APPLICATION->SetPageProperty("keywords", $KEYWORDS); $APPLICATION->SetPageProperty("description", $DESCRIPTION); if ($bDisplayPanel) { CIBlock::ShowPanel($IBLOCK_ID, $ELEMENT_ID, $SECTION_ID, $IBLOCK_TYPE); } $APPLICATION->SetTitle($ELEMENT_NAME); if (is_array($arrPath)) { while (list($key, $arS) = each($arrPath)) { if ($SECTION_ID == $arS["ID"]) { $SECTION_NAME = $arS["NAME"]; } $APPLICATION->AddChainItem($arS["NAME"], $SECTION_URL . "&SECTION_ID=" . $arS["ID"]); } } CIBlockElement::CounterInc($ELEMENT_ID); if ($obCache->StartDataCache()) { // get the values for the Next and Previous links $arSelect = array("ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL"); if ($rs = GetIBlockElementList($IBLOCK_ID, $SECTION_ID, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), 0, array("ACTIVE" => "Y"), $arSelect)) {