public static function getSefviceMediaspect($service_id, $section_id = false) { $result = false; if (!$section_id) { $res = CIBlockElement::GetByID($service_id); if ($element = $res->GetNext()) { $section_id = $element["IBLOCK_SECTION_ID"]; } } if ($section_id) { $section = DrclinicsHelper::getMediaspects($section_id); $section = end($section); if ($section) { $result = $section; } else { $nav = CIBlockSection::GetNavChain(false, $section_id, array("ID", "CODE", "SECTION_PAGE_URL", "DEPTH_LEVEL")); while (($arSectionPath = $nav->GetNext()) && $arSectionPath["DEPTH_LEVEL"] != 2) { } if ($arSectionPath) { $result = $arSectionPath; } } } return $result; }
function getBreadcrumbs() { $sections = array(); $getResult = CIBlockSection::GetNavChain((int) $GLOBALS['AQW_STORE']['IBLOCK_ID'], $this->getSectionID()); while ($section = $getResult->GetNext()) { $sections[] = $section; } return $sections; }
protected static function getCategoriesPath($categoryId) { $result = array($categoryId); $nav = \CIBlockSection::GetNavChain(false, $categoryId); while ($arSectionPath = $nav->GetNext()) { if (!in_array($arSectionPath['ID'], $result)) { $result[] = $arSectionPath['ID']; } } return $result; }
public static function get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = false) { global $adminMenu; if (false === $arSectionsChain) { $arSectionsChain = array(); if (isset($_REQUEST['admin_mnu_menu_id'])) { $menu_id = "menu_catalog_category_" . $IBLOCK_ID . "/"; if (0 == strncmp($_REQUEST['admin_mnu_menu_id'], $menu_id, strlen($menu_id))) { $rsSections = CIBlockSection::GetNavChain($IBLOCK_ID, substr($_REQUEST['admin_mnu_menu_id'], strlen($menu_id)), array('ID', 'IBLOCK_ID')); while ($arSection = $rsSections->Fetch()) { $arSectionsChain[$arSection["ID"]] = $arSection["ID"]; } } } if (isset($_REQUEST["find_section_section"]) && (int) $_REQUEST["find_section_section"] > 0 && isset($_REQUEST["IBLOCK_ID"]) && $_REQUEST["IBLOCK_ID"] == $IBLOCK_ID) { $rsSections = CIBlockSection::GetNavChain($IBLOCK_ID, $_REQUEST["find_section_section"], array('ID', 'IBLOCK_ID')); while ($arSection = $rsSections->Fetch()) { $arSectionsChain[$arSection["ID"]] = $arSection["ID"]; } } } $urlSectionAdminPage = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array('catalog' => null)); $arSections = array(); $rsSections = CIBlockSection::GetList(array("left_margin" => "ASC"), array("IBLOCK_ID" => $IBLOCK_ID, "SECTION_ID" => $SECTION_ID), false, array("ID", "IBLOCK_SECTION_ID", "NAME", "LEFT_MARGIN", "RIGHT_MARGIN")); $intCount = 0; $arOtherSectionTmp = array(); $limit = (int) COption::GetOptionInt("iblock", "iblock_menu_max_sections"); while ($arSection = $rsSections->Fetch()) { if ($limit > 0 && $intCount >= $limit) { if (empty($arOtherSectionTmp)) { $arOtherSectionTmp = array("text" => Loc::getMessage("CAT_MENU_ALL_OTH"), "url" => $urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"], "more_url" => array(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null))), "title" => Loc::getMessage("CAT_MENU_ALL_OTH_TITLE"), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"], "module_id" => "catalog", "items" => array()); CCatalogAdmin::get_other_elements_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $arSection, $arOtherSectionTmp["more_url"]); } else { $arOtherSectionTmp['more_url'][] = $urlSectionAdminPage . "&find_section_section=" . (int) $arSection["ID"]; $arOtherSectionTmp['more_url'][] = CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null)); } } else { $arSectionTmp = array("text" => htmlspecialcharsex($arSection["NAME"]), "url" => $urlSectionAdminPage . "&find_section_section=" . $arSection["ID"], "more_url" => array(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null))), "title" => htmlspecialcharsex($arSection["NAME"]), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"], "module_id" => "catalog", "dynamic" => $arSection["RIGHT_MARGIN"] - $arSection["LEFT_MARGIN"] > 1, "items" => array()); if (isset($arSectionsChain[$arSection["ID"]])) { $arSectionTmp["items"] = CCatalogAdmin::get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain); } elseif (method_exists($adminMenu, "IsSectionActive")) { if ($adminMenu->IsSectionActive("menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"])) { $arSectionTmp["items"] = CCatalogAdmin::get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain); } } $arSections[] = $arSectionTmp; } $intCount++; } if (!empty($arOtherSectionTmp)) { $arSections[] = $arOtherSectionTmp; } return $arSections; }
function _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = false) { //Determine opened sections if ($arSectionsChain === false) { $arSectionsChain = array(); if (isset($_REQUEST['admin_mnu_menu_id'])) { $menu_id = "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/"; if (strncmp($_REQUEST['admin_mnu_menu_id'], $menu_id, strlen($menu_id)) == 0) { $rsSections = CIBlockSection::GetNavChain($arIBlock["ID"], substr($_REQUEST['admin_mnu_menu_id'], strlen($menu_id)), array('ID', 'IBLOCK_ID')); while ($arSection = $rsSections->Fetch()) { $arSectionsChain[$arSection["ID"]] = $arSection["ID"]; } } } if (isset($_REQUEST["find_section_section"]) && (int) $_REQUEST["find_section_section"] > 0 && isset($_REQUEST["IBLOCK_ID"]) && $_REQUEST["IBLOCK_ID"] == $arIBlock["ID"]) { $rsSections = CIBlockSection::GetNavChain($arIBlock["ID"], $_REQUEST["find_section_section"], array('ID', 'IBLOCK_ID')); while ($arSection = $rsSections->Fetch()) { $arSectionsChain[$arSection["ID"]] = $arSection["ID"]; } } } $urlSectionAdminPage = CIBlock::GetAdminSectionListLink($arIBlock["ID"], array("menu" => null)); $arSections = array(); if (CIBlock::GetAdminListMode($arIBlock["ID"]) == 'S') { $arSections[] = _get_elements_menu($arType, $arIBlock, $SECTION_ID); } $rsSections = CIBlockSection::GetList(array("left_margin" => "ASC"), array("IBLOCK_ID" => $arIBlock["ID"], "SECTION_ID" => $SECTION_ID), false, array("ID", "IBLOCK_SECTION_ID", "NAME", "LEFT_MARGIN", "RIGHT_MARGIN")); $sectionCount = 0; $limit = COption::GetOptionInt("iblock", "iblock_menu_max_sections"); while ($arSection = $rsSections->Fetch()) { if ($limit > 0 && $sectionCount >= $limit) { $arSections[] = array("text" => GetMessage("IBLOCK_MENU_ALL_OTH"), "url" => htmlspecialcharsbx($urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"]), "more_url" => array($urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"], $urlSectionAdminPage, "iblock_section_edit.php?" . $arIBlock["URL_PART"], "iblock_element_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"], "iblock_history_list.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"]), "title" => GetMessage("IBLOCK_MENU_ALL_OTH_TITLE"), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"], "module_id" => "iblock", "items" => array()); _get_other_elements_menu($arType, $arIBlock, $arSection, $arSections[0]["more_url"]); break; } $arSectionTmp = array("text" => htmlspecialcharsex($arSection["NAME"]), "url" => htmlspecialcharsbx($urlSectionAdminPage . "&find_section_section=" . $arSection["ID"]), "more_url" => array($urlSectionAdminPage . "&find_section_section=" . $arSection["ID"], "iblock_section_edit.php?" . $arIBlock["URL_PART"] . "&ID=" . $arSection["ID"], "iblock_section_edit.php?" . $arIBlock["URL_PART"] . "&ID=0&find_section_section=" . $arSection["ID"], "iblock_element_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"] . "&find_section_section=" . $arSection["ID"], "iblock_history_list.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"] . "&find_section_section=" . $arSection["ID"]), "title" => htmlspecialcharsex($arSection["NAME"]), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "dynamic" => CIBlock::GetAdminListMode($arIBlock["ID"]) == 'S' || $arSection["RIGHT_MARGIN"] - $arSection["LEFT_MARGIN"] > 1, "items_id" => "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"], "module_id" => "iblock", "items" => array()); if (array_key_exists($arSection["ID"], $arSectionsChain)) { $arSectionTmp["items"] = _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain); } elseif (method_exists($GLOBALS["adminMenu"], "IsSectionActive")) { if ($GLOBALS["adminMenu"]->IsSectionActive("menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"])) { $arSectionTmp["items"] = _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain); } } $arSections[] = $arSectionTmp; $sectionCount++; } while ($arSection = $rsSections->Fetch()) { $urlElementAdminPage = CIBlock::GetAdminElementListLink($arIBlock["ID"], array("menu" => null)); $arSections[0]["more_url"][] = $urlElementAdminPage . "&find_section_section=" . (int) $arSection["ID"]; } return $arSections; }
function getBreadcrumbs() { $item = $this->getItem(); if ($item) { $sections = array(); $getResult = CIBlockSection::GetNavChain($item['IBLOCK_ID'], $item['IBLOCK_SECTION_ID']); while ($section = $getResult->GetNext()) { $sections[] = $section; } return $sections; } return false; }
function get_section_path($section_id) { $nav = CIBlockSection::GetNavChain(IntVal($arParams["IBLOCK_ID"]), IntVal($section_id)); $index = 100; while ($ar = $nav->GetNext()) { ?> <a href="<?php echo $ar["SECTION_PAGE_URL"]; ?> "><?php echo $ar["NAME"]; ?> </a><span class="chain">→</span><?php } }
function GetIBlockTopSection($SECTION_ID) { if (is_array($SECTION_ID)) { $SECTION_ID = $SECTION_ID[0]; } $dbRes = CIBlockSection::GetNavChain(0, $SECTION_ID); $arSection = $dbRes->Fetch(); // hack to check "virtual" root insted of a real one $arSection = $dbRes->Fetch(); if ($arSection) { return $arSection['ID']; } else { return $SECTION_ID; } }
function getStructure($id, $section=false) { $id = (int)$id; if (!$id) { return false; } if (!$section) { $res = CIBlockElement::GetByID($id); if ( $ar = $res->GetNext() ){ $id = $ar['IBLOCK_SECTION_ID']; } else { return false; } } $res = CIBlockSection::GetNavChain(false, $id); $arStructure = array(); while($ar = $res->GetNext()){ $arStructure[] = $ar; } return $arStructure; }
/** * @param $iblockId * @param $sectionId * @param bool $returnFalseIfTrash * @return array|bool */ function WDUGetNavChainSections($iblockId, $sectionId, $returnFalseIfTrash = true) { static $cache = array(); if (isset($cache[$iblockId][$sectionId])) { return $cache[$iblockId][$sectionId]; } $cache[$iblockId][$sectionId] = array(); $db_nav = CIBlockSection::GetNavChain($iblockId, $sectionId); if ($db_nav && ($arSection = $db_nav->Fetch())) { if ($returnFalseIfTrash && $arSection['NAME'] == '.Trash') { return false; } do { $cache[$iblockId][$sectionId][] = $arSection; } while ($arSection = $db_nav->Fetch()); } return $cache[$iblockId][$sectionId]; }
function __InTaskDeleteTask($delTaskId, $iblockId, $taskType, $ownerId, $arParams) { $delTaskId = IntVal($delTaskId); $iblockId = IntVal($iblockId); $ownerId = IntVal($ownerId); if ($delTaskId <= 0 || $iblockId <= 0 || $ownerId <= 0) { return ""; } $errorMessage = ""; if (StrLen($errorMessage) <= 0) { $sectionId = 0; $dbElementSections = CIBlockElement::GetElementGroups($delTaskId); while ($arElementSection = $dbElementSections->Fetch()) { if ($arElementSection["IBLOCK_ID"] == $iblockId) { $sectionId = $arElementSection["ID"]; break; } } if ($sectionId <= 0) { $errorMessage .= GetMessage("INTL_TASK_NOT_FOUND") . "."; } } if (StrLen($errorMessage) <= 0) { $dbSectionsChain = CIBlockSection::GetNavChain($iblockId, $sectionId); if ($arSect = $dbSectionsChain->GetNext()) { if ($taskType == 'group' && $arSect["XML_ID"] != $ownerId) { $errorMessage .= GetMessage("INTL_TASK_INTERNAL_ERROR") . " GTK003" . ". "; } elseif ($taskType != 'group' && $arSect["XML_ID"] != "users_tasks") { $errorMessage .= GetMessage("INTL_TASK_INTERNAL_ERROR") . " GTK004" . ". "; } } else { $errorMessage .= GetMessage("INTL_FOLDER_NOT_FOUND") . ". "; } } if (StrLen($errorMessage) <= 0) { if (!CIBlockElement::Delete($delTaskId)) { $errorMessage .= GetMessage("INTL_ERROR_DELETE_TASK") . ". "; } CAgent::RemoveAgent("CIntranetTasks::SendRemindEventAgent(" . $iblockId . ", " . $delTaskId . ", \"" . $arParams[$taskType == "user" ? "PATH_TO_USER_TASKS_TASK" : "PATH_TO_GROUP_TASKS_TASK"] . "\");", "intranet"); } return $errorMessage; }
public function getCrumbs($catalogId, $sectionId, $urlTemplate) { $arCrumbs = array(); $arCrumb = array('ID' => 0, 'NAME' => GetMessage('CRM_PRODUCT_SECTION_ROOT_CRUMB_NAME'), 'LINK' => str_replace('#section_id#', '0', $urlTemplate), 'CHILDREN' => array()); $resRootElements = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $catalogId, '=DEPTH_LEVEL' => 1, 'CHECK_PERMISSIONS' => 'N'), array('ID', 'NAME')); while ($arElement = $resRootElements->Fetch()) { $arCrumb['CHILDREN'][] = array('ID' => $arElement['ID'], 'NAME' => $arElement['NAME'], 'LINK' => str_replace('#section_id#', $arElement['ID'], $urlTemplate), 'CHILDREN' => array()); } $arCrumbs[] = $arCrumb; $resElements = CIBlockSection::GetNavChain($catalogId, $sectionId, array('ID', 'NAME', 'DEPTH_LEVEL')); while ($arElement = $resElements->Fetch()) { $arCrumb = array('ID' => $arElement['ID'], 'NAME' => $arElement['NAME'], 'LINK' => str_replace('#section_id#', $arElement['ID'], $urlTemplate), 'CHILDREN' => array()); $resElement = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $catalogId, '=SECTION_ID' => $arElement['ID'], '=DEPTH_LEVEL' => 1 + $arElement['DEPTH_LEVEL'], 'CHECK_PERMISSIONS' => 'N'), array('ID', 'NAME')); while ($arElement = $resElement->Fetch()) { $arCrumb['CHILDREN'][] = array('ID' => $arElement['ID'], 'NAME' => $arElement['NAME'], 'LINK' => str_replace('#section_id#', $arElement['ID'], $urlTemplate), 'CHILDREN' => array()); } $arCrumbs[] = $arCrumb; } return $arCrumbs; }
public function getInitialTree($catalogId, $sectionId) { $initialTree = array(); $resRootElements = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $catalogId, '=DEPTH_LEVEL' => 1, 'CHECK_PERMISSIONS' => 'N'), array('ID', 'NAME', 'LEFT_MARGIN', 'RIGHT_MARGIN')); $parentIndex = array(); $i = 0; while ($arElement = $resRootElements->Fetch()) { $bSelected = intval($arElement['ID']) === intval($sectionId); $initialTree[$i] = array('ID' => $arElement['ID'], 'NAME' => $arElement['NAME'], 'SELECTED' => $bSelected ? 'Y' : 'N', 'HAS_CHILDREN' => intval($arElement["RIGHT_MARGIN"]) - intval($arElement["LEFT_MARGIN"]) > 1 ? 'Y' : 'N', 'CHILDREN' => array()); $parentIndex[$arElement['ID']] = $i; $i++; } $resHeadElements = CIBlockSection::GetNavChain($catalogId, $sectionId, array('ID', 'NAME', 'DEPTH_LEVEL', 'LEFT_MARGIN', 'RIGHT_MARGIN')); $parentElement = null; while ($arHead = $resHeadElements->Fetch()) { /*if (intval($arHead['ID']) === intval($sectionId)) break;*/ if ($parentElement === null) { $parentElement =& $initialTree[$parentIndex[$arHead['ID']]]; } else { $tmp =& $parentElement['CHILDREN'][$parentIndex[$arHead['ID']]]; unset($parentElement); $parentElement =& $tmp; unset($tmp); } $resElement = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $catalogId, '=SECTION_ID' => $arHead['ID'], '=DEPTH_LEVEL' => 1 + $arHead['DEPTH_LEVEL'], 'CHECK_PERMISSIONS' => 'N'), array('ID', 'NAME', 'LEFT_MARGIN', 'RIGHT_MARGIN')); $parentIndex = array(); $i = 0; while ($arElement = $resElement->Fetch()) { $bSelected = intval($arElement['ID']) === intval($sectionId); $parentElement['CHILDREN'][$i] = array('ID' => $arElement['ID'], 'NAME' => $arElement['NAME'], 'SELECTED' => $bSelected ? 'Y' : 'N', 'HAS_CHILDREN' => intval($arElement["RIGHT_MARGIN"]) - intval($arElement["LEFT_MARGIN"]) > 1 ? 'Y' : 'N', 'CHILDREN' => array()); $parentIndex[$arElement['ID']] = $i; $i++; } } return $initialTree; }
$arItem["description"] = str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["description"]); } else { $arItem["description"] = htmlspecialcharsbx($arElement["PREVIEW_TEXT"] || $arParams["YANDEX"] ? $arElement["PREVIEW_TEXT"] : $arElement["DETAIL_TEXT"]); } if (strlen($arResult["NODES"]["enclosure"]) > 0) { $arItem["enclosure"] = array("url" => str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["enclosure"]), "length" => str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["enclosure_length"]), "type" => str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["enclosure_type"])); } elseif (is_array($arElement["arr_PREVIEW_PICTURE"])) { $arItem["enclosure"] = array("url" => CHTTP::URN2URI($arElement["arr_PREVIEW_PICTURE"]["SRC"], $arResult["SERVER_NAME"]), "length" => $arElement["arr_PREVIEW_PICTURE"]["FILE_SIZE"], "type" => $arElement["arr_PREVIEW_PICTURE"]["CONTENT_TYPE"]); } else { $arItem["enclosure"] = false; } if (strlen($arResult["NODES"]["category"]) > 0) { $arItem["category"] = str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["category"]); } else { $arItem["category"] = ""; $rsNavChain = CIBlockSection::GetNavChain($arResult["ID"], $arElement["IBLOCK_SECTION_ID"]); while ($arNavChain = $rsNavChain->Fetch()) { $arItem["category"] .= htmlspecialcharsbx($arNavChain["NAME"]) . "/"; } } if ($arParams["YANDEX"]) { $arItem["full-text"] = htmlspecialcharsbx(htmlspecialcharsback($arElement["DETAIL_TEXT"])); } if (strlen($arResult["NODES"]["pubDate"]) > 0) { $arItem["pubDate"] = str_replace($arNodesSearch, $arNodesReplace, $arResult["NODES"]["pubDate"]); } elseif (strlen($arElement["ACTIVE_FROM"]) > 0) { $arItem["pubDate"] = date("r", MkDateTime($DB->FormatDate($arElement["ACTIVE_FROM"], Clang::GetDateFormat("FULL"), "DD.MM.YYYY H:I:S"), "d.m.Y H:i:s")); } elseif (strlen($arElement["DATE_CREATE"]) > 0) { $arItem["pubDate"] = date("r", MkDateTime($DB->FormatDate($arElement["DATE_CREATE"], Clang::GetDateFormat("FULL"), "DD.MM.YYYY H:I:S"), "d.m.Y H:i:s")); } else { $arItem["pubDate"] = date("r");
function IndexIBlockSection($arFields, $entity_id, $entity_type, $feature, $operation, $path_template) { $rSection = CIBlockSection::GetByID($arFields['ID']); $arSection = $rSection->Fetch(); $path = array(); $rsPath = CIBlockSection::GetNavChain($arFields["IBLOCK_ID"], $arFields['ID']); while ($arPath = $rsPath->Fetch()) { $path[] = $arPath['NAME']; } $path = implode("/", array_slice($path, 1)); $ID = intval($arFields["ID"]); $IBLOCK_ID = intval($arFields["IBLOCK_ID"]); $arItem = array(); if ($entity_type == "G") { $url = str_replace(array("#group_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#", "#name#", "#path#"), array($entity_id, "group_" . $entity_id, $arFields["IBLOCK_SECTION"], $arFields["ID"], "view", $arFields["ID"], urlencode($arFields["NAME"]), $path), $path_template); } else { $url = str_replace(array("#user_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#", "#path#"), array($entity_id, "user_" . $entity_id, $arFields["IBLOCK_SECTION"], $arFields["ID"], "view", $arFields["ID"], $path), $path_template); } $body = ""; $title = $arFields["NAME"]; $arPermissions = $this->GetSearchGroups($entity_type, $entity_id, $feature, $operation); if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") == "E") { $obSectionRights = new CIBlockSectionRights($IBLOCK_ID, $arFields["ID"]); $arPermissions = $obSectionRights->GetGroups(array("section_read")); } $arSearchIndexParams = $this->GetSearchParams($entity_type, $entity_id, $feature, $operation); CSearch::Index("socialnetwork", 'S' . $ID, array("LAST_MODIFIED" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "TITLE" => $title, "BODY" => $body, "SITE_ID" => array(SITE_ID => $url), "PARAM1" => CIBlock::GetArrayByID($IBLOCK_ID, "IBLOCK_TYPE_ID"), "PARAM2" => $IBLOCK_ID, "PARAM3" => $feature, "TAGS" => "", "PERMISSIONS" => $arPermissions, "PARAMS" => $arSearchIndexParams), true); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_search_" . $entity_type . "_" . $entity_id); } }
$arSubordination = CIntranetUtils::GetSubordinateDepartments($USER->GetID(), true); $arChains = array(); $section_url = "/company/structure.php?set_filter_structure=Y&structure_UF_DEPARTMENT=#ID#"; $iblockId = COption::GetOptionInt('intranet', 'iblock_structure', 0); $arSectionFilter = array('IBLOCK_ID' => $iblockId, 'ID' => array_unique($arSections)); $dbRes = CIBlockSection::GetList(array('LEFT_MARGIN' => 'DESC'), $arSectionFilter, false, array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_HEAD')); $chain_root = null; while ($arRes = $dbRes->Fetch()) { $arRes['CHAIN'] = array(); if (isset($arChains[$arRes['ID']])) { $arRes['CHAIN'] = $arChains[$arRes['ID']]; } elseif ($arRes['IBLOCK_SECTION_ID'] > 0 && isset($arChains[$arRes['IBLOCK_SECTION_ID']])) { $arRes['CHAIN'] = $arChains[$arRes['IBLOCK_SECTION_ID']]; $arRes['CHAIN'][] = array('ID' => $arRes['ID'], 'NAME' => $arRes['NAME'], 'URL' => str_replace('#ID#', $arRes['ID'], $section_url)); } else { $db1 = CIBlockSection::GetNavChain($iblockId, $arRes['ID']); while ($sect = $db1->Fetch()) { $arRes['CHAIN'][] = array('ID' => $sect['ID'], 'NAME' => $sect['NAME'], 'URL' => str_replace('#ID#', $sect['ID'], $section_url)); } } if (!isset($arChains[$sect['ID']])) { $arChains[$sect['ID']] = $arRes['CHAIN']; } if (null === $chain_root) { $chain_root = $arRes['CHAIN'][0]['ID']; } elseif (false !== $chain_root && $chain_root != $arRes['CHAIN'][0]['ID']) { $chain_root = false; } $arRes["SETTINGS"] = CReportSettings::GetSectionSettings($arRes["ID"], true); $arRes["CAN_EDIT_TIME"] = "N"; $arRes["HAS_SETTINGS"] = "N";
//Check if have to show root elements if(!$arResult && (strlen($arParams["SECTION_CODE"]) < 1) && !$arParams["SECTION_ID"]) { $arResult = array( "ID" => $arParams["SECTION_ID"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], ); } if($arResult) { $arResult["PATH"] = array(); if($arParams["ADD_SECTIONS_CHAIN"]) { $rsPath = CIBlockSection::GetNavChain($arResult["IBLOCK_ID"], $arResult["ID"]); $rsPath->SetUrlTemplates("", $arParams["SECTION_URL"]); while($arPath=$rsPath->GetNext()) { $arResult["PATH"][] = $arPath; } } $arResult["USER_HAVE_ACCESS"] = $bUSER_HAVE_ACCESS; $arResult["PICTURE"] = CFile::GetFileArray($arResult["PICTURE"]); $arResult["DETAIL_PICTURE"] = CFile::GetFileArray($arResult["DETAIL_PICTURE"]); //SELECT $arSelect = array_merge($arParams["FIELD_CODE"], array( "ID",
$chain = $lAdmin->CreateChain(); if(!defined("CATALOG_PRODUCT")) { $chain->AddItem(array( "TEXT" => htmlspecialcharsex($arIBlock["NAME"]), "LINK" => htmlspecialcharsbx($sSectionUrl), "ONCLICK" => $lAdmin->ActionAjaxReload($sSectionUrl).';return false;', )); } if($find_section_section > 0) { $sLastFolder = $sSectionUrl; $nav = CIBlockSection::GetNavChain($IBLOCK_ID, $find_section_section, array('ID', 'NAME')); while($ar_nav = $nav->GetNext()) { $sSectionUrl = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array('find_section_section'=>$ar_nav["ID"])); $chain->AddItem(array( "TEXT" => $ar_nav["NAME"], "LINK" => htmlspecialcharsbx($sSectionUrl), "ONCLICK" => $lAdmin->ActionAjaxReload($sSectionUrl).';return false;', )); if($ar_nav["ID"] != $find_section_section) $sLastFolder = $sSectionUrl; } } $lAdmin->ShowChain($chain);
public function ReceiveMessage($senderJId, array $arMessage, CXMPPClient $senderClient) { if (!$senderClient->IsAuthenticated()) { return false; } if (strlen($senderJId) <= 0) { return false; } if (!array_key_exists("iq", $arMessage)) { return false; } if ($arMessage['iq']['query']['.']['xmlns'] != 'jabber:iq:roster' && ($arMessage['iq']['query']['.']['xmlns'] != 'jabber:iq:private' || $arMessage['iq']['query']['roster']['.']['xmlns'] != 'roster:delimiter')) { return false; } if ($arMessage['iq']['query']['.']['xmlns'] == 'jabber:iq:roster') { $arResult = array("iq" => array("." => array("type" => "result", "to" => $senderJId, "id" => $arMessage['iq']['.']['id']), "query" => array("." => array("xmlns" => $arMessage['iq']['query']['.']['xmlns'])))); if ($this->intranet) { $clientDomain = $senderClient->GetClientDomain(); if (!array_key_exists($clientDomain, $this->rosterCache)) { $this->rosterCache[$clientDomain] = array(); } if (!array_key_exists($clientDomain, $this->rosterCacheAlt)) { $this->rosterCacheAlt[$clientDomain] = array(); } if ($senderClient->IsSubGroupsSupported() && count($this->rosterCache[$clientDomain]) <= 0 || !$senderClient->IsSubGroupsSupported() && count($this->rosterCacheAlt[$clientDomain]) <= 0) { $arDepCache = array(); $arDepCacheValue = array(); $dbUsers = CUser::GetList($b = "LAST_NAME", $o = "asc", array("ACTIVE" => "Y", "!UF_DEPARTMENT" => false), array('SELECT' => array('UF_*'))); while ($arUser = $dbUsers->Fetch()) { $arT = array("." => array("subscription" => "both", "name" => CUser::FormatName($this->nameTemplate, $arUser), "jid" => CXMPPUtility::GetJId($arUser, $clientDomain))); if (is_array($arUser['UF_DEPARTMENT']) && count($arUser['UF_DEPARTMENT']) > 0) { $arNewDep = array_diff($arUser['UF_DEPARTMENT'], $arDepCache); if (count($arNewDep) > 0) { $dbRes = CIBlockSection::GetList(array('SORT' => 'ASC'), array('ID' => $arNewDep)); while ($arSect = $dbRes->Fetch()) { $arDepCache[] = $arSect['ID']; $dbRes1 = CIBlockSection::GetNavChain($arSect['IBLOCK_ID'], $arSect['ID']); while ($arSect1 = $dbRes1->Fetch()) { if ($senderClient->IsSubGroupsSupported()) { if (strlen($arDepCacheValue[$arSect['ID']]) > 0) { $arDepCacheValue[$arSect['ID']] .= "/"; } $arDepCacheValue[$arSect['ID']] .= htmlspecialcharsbx($arSect1['NAME']); } else { if (strlen($arDepCacheValue[$arSect['ID']]) > 0) { $arDepCacheValue[$arSect['ID']] = "/" . $arDepCacheValue[$arSect['ID']]; } $arDepCacheValue[$arSect['ID']] = htmlspecialcharsbx($arSect1['NAME']) . $arDepCacheValue[$arSect['ID']]; } } } } foreach ($arUser['UF_DEPARTMENT'] as $key => $sect) { if (strlen($arDepCacheValue[$sect]) > 0) { $arT["group"][] = array("#" => $arDepCacheValue[$sect]); if (!is_array($GLOBALS["BX_JHGDHGFJKDFSDG67"])) { $GLOBALS["BX_JHGDHGFJKDFSDG67"] = array(); } if (!is_array($GLOBALS["BX_JHGDHGFJKDFSDG67"][$clientDomain])) { $GLOBALS["BX_JHGDHGFJKDFSDG67"][$clientDomain] = array(); } if (!in_array($arDepCacheValue[$sect], $GLOBALS["BX_JHGDHGFJKDFSDG67"][$clientDomain])) { $GLOBALS["BX_JHGDHGFJKDFSDG67"][$clientDomain][] = $arDepCacheValue[$sect]; } } } } if ($senderClient->IsSubGroupsSupported()) { $this->rosterCache[$clientDomain][] = $arT; } else { $this->rosterCacheAlt[$clientDomain][] = $arT; } } } if ($senderClient->IsSubGroupsSupported()) { foreach ($this->rosterCache[$clientDomain] as $ar) { if ($senderClient->GetJId() != $ar["."]["jid"]) { $arResult["iq"]["query"]["item"][] = $ar; } } } else { foreach ($this->rosterCacheAlt[$clientDomain] as $ar) { if ($senderClient->GetJId() != $ar["."]["jid"]) { $arResult["iq"]["query"]["item"][] = $ar; } } } } else { $ar = array(); $dbFriends = CSocNetUserRelations::GetRelatedUsers($senderClient->GetId(), SONET_RELATIONS_FRIEND); while ($arFriends = $dbFriends->GetNext()) { $pref = $senderClient->GetId() == $arFriends["FIRST_USER_ID"] ? "SECOND" : "FIRST"; $name = CUser::FormatName($this->nameTemplate, array("NAME" => $arFriends[$pref . "_USER_NAME"], "LAST_NAME" => $arFriends[$pref . "_USER_LAST_NAME"], "SECOND_NAME" => $arFriends[$pref . "_USER_SECOND_NAME"], "LOGIN" => $arFriends[$pref . "_USER_LOGIN"]), true); $arT = array("." => array("subscription" => "both", "name" => $name, "jid" => CXMPPUtility::GetJId(array("LOGIN" => $arFriends[$pref . "_USER_LOGIN"]), $senderClient->GetClientDomain()))); $ar[] = $arT; } $arResult["iq"]["query"]["item"] = $ar; } $senderClient->Send($arResult); $server = CXMPPServer::GetServer(); $server->SendPresenceMessages($senderJId, $senderClient->GetClientDomain()); $server->SendPresenceMessages2($senderJId, $senderClient->GetClientDomain()); } elseif ($arMessage['iq']['query']['.']['xmlns'] == 'jabber:iq:private' && $arMessage['iq']['query']['roster']['.']['xmlns'] == 'roster:delimiter') { $arResult = array("iq" => array("." => array("type" => "result", "to" => $senderJId, "id" => $arMessage['iq']['.']['id']), "query" => array("." => array("xmlns" => 'jabber:iq:private'), "roster" => array("." => array("xmlns" => 'roster:delimiter'), "#" => "/")))); $senderClient->SetSubGroupsSupport(true); $senderClient->Send($arResult); } return true; }
private function PrepareSectionForPrint($value, $iblockId = 0) { if ($iblockId <= 0) { $iblockId = COption::GetOptionInt("intranet", "iblock_tasks", 0); } if ($iblockId <= 0) { return false; } $arReturn = array(); $valueTmp = $value; if (!is_array($valueTmp)) { $valueTmp = array($valueTmp); } foreach ($valueTmp as $val) { $ar = array(); $dbSectionsList = CIBlockSection::GetNavChain($iblockId, $val); while ($arSection = $dbSectionsList->GetNext()) { $ar[$arSection["ID"]] = array("NAME" => $arSection["NAME"], "XML_ID" => $arSection["XML_ID"]); } $arReturn[] = $ar; } return is_array($value) ? $arReturn : (count($arReturn) > 0 ? $arReturn[0] : array()); }
} if ($arUser = $arUsersCache[$f_MODIFIED_BY]) { $row->AddViewField("CREATED_BY", '[<a href="/bitrix/admin/user_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $f_CREATED_BY . '" title="' . GetMessage("BX_MOD_CATALOG_ADMIN_CSS_HEAD_USERINFO") . '">' . $f_CREATED_BY . "</a>] (" . $arUser["LOGIN"] . ") " . $arUser["NAME"] . " " . $arUser["LAST_NAME"]); } } $row->AddActions(array(array("DEFAULT" => "Y", "TEXT" => GetMessage("BX_MOD_CATALOG_ADMIN_CSS_SELECT"), "ACTION" => "javascript:SelEl('" . ($get_xml_id ? $f_XML_ID : $f_ID) . "', '" . $jsPath . htmlspecialcharsbx(CUtil::JSEscape($arRes["NAME"]), ENT_QUOTES) . " / " . "')"))); } $lAdmin->AddFooter(array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $rsData->SelectedRowsCount()), array("counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0"))); if ($m) { $lAdmin->AddGroupActionTable(array(array("action" => "SelAll()", "value" => "select", "type" => "button", "name" => GetMessage("BX_MOD_CATALOG_ADMIN_CSS_SELECT"))), array("disable_action_target" => true)); } $lAdmin->AddAdminContextMenu(array(), false); if ($IBLOCK_ID > 0) { $chain = $lAdmin->CreateChain(); if (intval($find_section_section) > 0) { $nav = CIBlockSection::GetNavChain($IBLOCK_ID, $find_section_section); while ($ar_nav = $nav->GetNext()) { if ($find_section_section == $ar_nav["ID"]) { $chain->AddItem(array("TEXT" => $ar_nav["NAME"])); } else { $chain->AddItem(array("TEXT" => $ar_nav["NAME"], "LINK" => '/bitrix/admin/cat_section_search.php?lang=' . LANGUAGE_ID . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=-1' . '&n=' . urlencode($n) . '&k=' . urlencode($k) . ($m ? "&m=y" : ""), "ONCLICK" => $lAdmin->ActionAjaxReload('/bitrix/admin/cat_section_search.php?lang=' . LANGUAGE_ID . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=' . $ar_nav["ID"] . '&n=' . urlencode($n) . '&k=' . urlencode($k) . ($m ? "&m=y" : "")) . ';return false;')); } } } $lAdmin->ShowChain($chain); } else { $lAdmin->BeginPrologContent(); $message = new CAdminMessage(array("MESSAGE" => GetMessage("BX_MOD_CATALOG_ADMIN_CSS_IBLOCK"), "TYPE" => "OK")); echo $message->Show(); $lAdmin->EndPrologContent(); }
} $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["IBLOCK_ID"], $arResult["PRICES"], $arItem); $arItem['~BUY_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['~BUY_URL_TEMPLATE']); $arItem['BUY_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['BUY_URL_TEMPLATE']); $arItem['~ADD_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['~ADD_URL_TEMPLATE']); $arItem['ADD_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['ADD_URL_TEMPLATE']); $arItem['~SUBSCRIBE_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['~SUBSCRIBE_URL_TEMPLATE']); $arItem['SUBSCRIBE_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['SUBSCRIBE_URL_TEMPLATE']); if ($arParams['DISPLAY_COMPARE']) { $arItem['~COMPARE_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['~COMPARE_URL_TEMPLATE']); $arItem['COMPARE_URL'] = str_replace('#ID#', $arItem["ID"], $arResult['COMPARE_URL_TEMPLATE']); } if ($arParams["BY_LINK"] === "Y") { if (!isset($arSections[$arItem["IBLOCK_SECTION_ID"]])) { $arSections[$arItem["IBLOCK_SECTION_ID"]] = array(); $rsPath = CIBlockSection::GetNavChain($arItem["IBLOCK_ID"], $arItem["IBLOCK_SECTION_ID"]); $rsPath->SetUrlTemplates("", $arParams["SECTION_URL"]); while ($arPath = $rsPath->GetNext()) { $arSections[$arItem["IBLOCK_SECTION_ID"]][] = $arPath; } } $arItem["SECTION"]["PATH"] = $arSections[$arItem["IBLOCK_SECTION_ID"]]; } else { $arItem["SECTION"]["PATH"] = array(); } if ('Y' == $arParams['CONVERT_CURRENCY']) { if ($arParams["USE_PRICE_COUNT"]) { if (!empty($arItem["PRICE_MATRIX"]) && is_array($arItem["PRICE_MATRIX"])) { if (isset($arItem["PRICE_MATRIX"]['CURRENCY_LIST']) && is_array($arItem["PRICE_MATRIX"]['CURRENCY_LIST'])) { //TODO: replace this code after catalog 15.5.4 foreach ($arItem['PRICE_MATRIX']['CURRENCY_LIST'] as $oneCurrency) {
$arResult["LIST_URL"] = htmlspecialcharsbx($arResult["~LIST_URL"]); $APPLICATION->AddChainItem($arResult["IBLOCK"]["NAME"], $arResult["~LIST_URL"]); } if ($arParams["ADD_NAVCHAIN_SECTIONS"] !== "N") { $arResult["~LIST_SECTION_URL"] = str_replace(array("#list_id#", "#section_id#", "#group_id#"), array($arResult["IBLOCK_ID"], intval($arParams["~SECTION_ID"]), $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_URL"]); $arResult["LIST_SECTION_URL"] = htmlspecialcharsbx($arResult["~LIST_SECTION_URL"]); $rsElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arResult["IBLOCK_ID"], "=ID" => $arParams["ELEMENT_ID"], "CHECK_PERMISSIONS" => $lists_perm >= CListPermissions::CAN_READ ? "N" : "Y"), false, false, array("ID", "NAME", "IBLOCK_SECTION_ID")); $arResult["ELEMENT"] = $rsElement->GetNext(); if (is_array($arResult["ELEMENT"])) { $arResult["ELEMENT_ID"] = intval($arResult["ELEMENT"]["ID"]); } else { $arResult["ELEMENT_ID"] = 0; } $arResult["SECTION_PATH"] = array(); if ($arResult["ELEMENT_ID"] && $arResult["ELEMENT"]["IBLOCK_SECTION_ID"]) { $rsPath = CIBlockSection::GetNavChain($arResult["IBLOCK_ID"], $arResult["ELEMENT"]["IBLOCK_SECTION_ID"]); while ($arPath = $rsPath->Fetch()) { $arResult["SECTION_PATH"][] = array("NAME" => htmlspecialcharsex($arPath["NAME"]), "URL" => str_replace(array("#list_id#", "#section_id#", "#group_id#"), array($arIBlock["ID"], intval($arPath["ID"]), $arParams["SOCNET_GROUP_ID"]), $arParams["LIST_URL"])); } } foreach ($arResult["SECTION_PATH"] as $arPath) { $APPLICATION->AddChainItem($arPath["NAME"], $arPath["URL"]); } } if ($arParams["ADD_NAVCHAIN_ELEMENT"] !== "N") { if (!array_key_exists("ELEMENT_ID", $arResult)) { $rsElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arResult["IBLOCK_ID"], "=ID" => $arParams["ELEMENT_ID"], "CHECK_PERMISSIONS" => $lists_perm >= CListPermissions::CAN_READ ? "N" : "Y"), false, false, array("ID", "NAME", "IBLOCK_SECTION_ID")); $arResult["ELEMENT"] = $rsElement->GetNext(); if (is_array($arResult["ELEMENT"])) { $arResult["ELEMENT_ID"] = intval($arResult["ELEMENT"]["ID"]); } else {
protected function getNavChainBySectionId($sectionId) { $nav = CIBlockSection::GetNavChain(false, $sectionId); while ($ar_result = $nav->GetNext()) { $this->arResult['CHAIN'][] = array('NAME' => $ar_result['NAME'], 'LINK' => $ar_result['SECTION_PAGE_URL']); } }
} else { $arSrc[$arFields["NAME"]][$arFields["DEPTH_LEVEL"]] = array("ID" => $arFields["ID"], "ACTIVE" => $arFields["ACTIVE"], "PATH" => $arPath); } } } /*******************************************************************/ $ib_id = "33"; $arFilter = array("IBLOCK_ID" => $ib_id); $rsItems = $bs->GetList($arSort, $arFilter, false); //, $arSelect); print_r($rsItems); print "---=== Ошибочно деактивирован у дилера ===---\n"; while ($arFields = $rsItems->GetNext()) { // print_r($arFields); $arPath = ""; $nav = CIBlockSection::GetNavChain($ib_id, $arFields["ID"], array("ID", "NAME", "ACTIVE")); while ($arNav = $nav->GetNext()) { $arPath = $arPath . $arNav["NAME"]; if ($arFields["ID"] != $arNav["ID"]) { $arPath = $arPath . "->"; } else { //$key = array("NAME"=>$arFields["NAME"], "DEPTH_LEVEL"=>$arFields["DEPTH_LEVEL"]); //$arCat[$key] = array("ID"=>$arFields["ID"], "ACTIVE"=>$arFields["ACTIVE"], "PATH"=>$arPath) ; $arCat[$arFields["NAME"]][$arFields["DEPTH_LEVEL"]] = array("ID" => $arFields["ID"], "ACTIVE" => $arFields["ACTIVE"], "PATH" => $arPath); if ($arFields["NAME"] == "Распродажа") { continue; } if ($arFields["NAME"] == "Программное обеспечение") { continue; } $srcElem = $arSrc[$arFields["NAME"]][$arFields["DEPTH_LEVEL"]];
protected function getParentSectionId() { if (!$this->getSectionId()) { return -1; } $nav = \CIBlockSection::GetNavChain($this->getIblockId(), $this->getSectionId(), array('ID', 'IBLOCK_ID', 'NAME')); $navIds = array(); while ($tmp = $nav->Fetch()) { $navIds[] = $tmp["ID"]; } array_pop($navIds); $parentId = 0; if ($navIds) { $parentId = end($navIds); } return $parentId; }
public function Execute() { if (!CModule::IncludeModule("intranet")) { $this->UserType = "random"; $this->SkipAbsent = "N"; } $arUsers = array(); if ($this->UserType == "boss") { if ($this->SkipAbsent != "Y" && $this->SkipAbsent != "N") { $this->SkipAbsent = "N"; } $arUsers = $this->GetUsersList($this->UserParameter, false); if (count($arUsers) <= 0) { $this->GetUser = null; return CBPActivityExecutionStatus::Closed; } $userId = $arUsers[0]; $arUserDepartmentId = null; $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { if (isset($arUser["UF_DEPARTMENT"])) { if (!is_array($arUser["UF_DEPARTMENT"])) { $arUser["UF_DEPARTMENT"] = array($arUser["UF_DEPARTMENT"]); } foreach ($arUser["UF_DEPARTMENT"] as $v) { $arUserDepartmentId[] = $v; } } } $arUserDepartments = array(); $departmentIBlockId = COption::GetOptionInt('intranet', 'iblock_structure'); foreach ($arUserDepartmentId as $departmentId) { $ar = array(); $dbPath = CIBlockSection::GetNavChain($departmentIBlockId, $departmentId); while ($arPath = $dbPath->GetNext()) { $ar[] = $arPath["ID"]; } $arUserDepartments[] = array_reverse($ar); } $arBoss = array(); foreach ($arUserDepartments as $arV) { $maxLevel = $this->MaxLevel; foreach ($arV as $level => $deptId) { if ($maxLevel > 0 && $level + 1 > $maxLevel) { break; } $dbRes = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $departmentIBlockId, 'ID' => $deptId), false, array('ID', 'UF_HEAD')); while ($arRes = $dbRes->Fetch()) { if ($arRes["UF_HEAD"] == $userId || intval($arRes["UF_HEAD"]) <= 0 || $this->SkipAbsent == "Y" && CIntranetUtils::IsUserAbsent($arRes["UF_HEAD"])) { $maxLevel++; continue; } if (!in_array($arRes["UF_HEAD"], $arBoss)) { $arBoss[] = $arRes["UF_HEAD"]; } } } } $ar = array(); foreach ($arBoss as $v) { $ar[] = "user_" . $v; } if (count($ar) == 0) { $ar = null; } elseif (count($ar) == 1) { $ar = $ar[0]; } if ($ar !== null) { $this->GetUser = $ar; return CBPActivityExecutionStatus::Closed; } } else { if ($this->SkipAbsent != "Y" && $this->SkipAbsent != "N") { $this->SkipAbsent = "Y"; } $arUsers = $this->GetUsersList($this->UserParameter, $this->SkipAbsent == "Y"); if ($this->SkipAbsent == "Y") { $arUsers = array_values($arUsers); } if (count($arUsers) > 0) { $rnd = mt_rand(0, count($arUsers) - 1); $this->GetUser = "******" . $arUsers[$rnd]; return CBPActivityExecutionStatus::Closed; } } $arReserveUsers = $this->GetUsersList($this->ReserveUserParameter, $this->SkipAbsent == "Y"); if (count($arReserveUsers) > 0) { if ($this->UserType == 'random') { $this->GetUser = '******' . $arReserveUsers[0]; } else { foreach ($arReserveUsers as &$user) { $user = '******' . $user; } unset($user); $this->GetUser = $arReserveUsers; } } return CBPActivityExecutionStatus::Closed; }
if ($CURRENT_STEP > 1 && is_array($_POST['wizard'])) { foreach ($_POST['wizard'] as $k => $v) { if (is_array($v)) { foreach ($v as $k1 => $v1) { if (trim($v1)) { $arHidden[$k][$k1] = htmlspecialcharsbx($v1); } } } elseif (trim($v)) { $arHidden[$k] = htmlspecialcharsbx($v); } } } // NavChain if ($CURRENT_STEP > 1 && $arParams['INCLUDE_IBLOCK_INTO_CHAIN'] == 'Y') { $rs = CIBlockSection::GetNavChain($IBLOCK_ID, $SECTION_ID); while ($f = $rs->Fetch()) { $APPLICATION->AddChainItem($f['NAME']); } } // Step decription if ($CURRENT_STEP == 1) { $rs = CIBlock::GetById($arParams['IBLOCK_ID']); } else { $rs = CIBlockSection::GetById($SECTION_ID); } if ($f = $rs->GetNext()) { $arResult['TOP_MESSAGE'] = $f['DESCRIPTION']; } // Sections $arResult['SECTIONS'] = array();
function GetRSSText($arIBLOCK, $LIMIT_NUM = false, $LIMIT_DAY = false, $yandex = false) { global $DB; $strRes = ""; $serverName = ""; if (isset($arIBLOCK["SERVER_NAME"]) && strlen($arIBLOCK["SERVER_NAME"]) > 0) { $serverName = $arIBLOCK["SERVER_NAME"]; } if (strlen($serverName) <= 0 && !isset($arIBLOCK["SERVER_NAME"])) { $dbSite = CSite::GetList($b = "sort", $o = "asc", array("LID" => $arIBLOCK["LID"])); if ($arSite = $dbSite->Fetch()) { $serverName = $arSite["SERVER_NAME"]; } } if (strlen($serverName) <= 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", "www.bitrixsoft.com"); } } $strRes .= "<channel>\n"; $strRes .= "<title>" . htmlspecialcharsbx($arIBLOCK["NAME"]) . "</title>\n"; $strRes .= "<link>http://" . $serverName . "</link>\n"; $strRes .= "<description>" . htmlspecialcharsbx($arIBLOCK["DESCRIPTION"]) . "</description>\n"; $strRes .= "<lastBuildDate>" . date("r") . "</lastBuildDate>\n"; $strRes .= "<ttl>" . $arIBLOCK["RSS_TTL"] . "</ttl>\n"; $db_img_arr = CFile::GetFileArray($arIBLOCK["PICTURE"]); if ($db_img_arr) { if (substr($db_img_arr["SRC"], 0, 1) == "/") { $strImage = "http://" . $serverName . $db_img_arr["SRC"]; } else { $strImage = $db_img_arr["SRC"]; } $strRes .= "<image>\n"; $strRes .= "<title>" . htmlspecialcharsbx($arIBLOCK["NAME"]) . "</title>\n"; $strRes .= "<url>" . $strImage . "</url>\n"; $strRes .= "<link>http://" . $serverName . "</link>\n"; $strRes .= "<width>" . $db_img_arr["WIDTH"] . "</width>\n"; $strRes .= "<height>" . $db_img_arr["HEIGHT"] . "</height>\n"; $strRes .= "</image>\n"; } $arNodes = array(); $db_res = $DB->Query("SELECT NODE, NODE_VALUE FROM b_iblock_rss WHERE IBLOCK_ID = " . IntVal($arIBLOCK["ID"])); while ($db_res_arr = $db_res->Fetch()) { $arNodes[$db_res_arr["NODE"]] = $db_res_arr["NODE_VALUE"]; } CTimeZone::Disable(); $strSql = "SELECT DISTINCT BE.*, " . "\t" . $DB->DateToCharFunction("BE.TIMESTAMP_X") . " as TIMESTAMP_X, " . "\t" . $DB->DateToCharFunction("BE.ACTIVE_FROM", "FULL") . " as ACTIVE_FROM, " . "\t" . $DB->DateToCharFunction("BE.ACTIVE_TO", "FULL") . " as ACTIVE_TO, " . "\tL.DIR as LANG_DIR, B.DETAIL_PAGE_URL, B.LIST_PAGE_URL, B.LID, L.SERVER_NAME " . "FROM b_iblock_element BE, b_lang L, b_iblock B " . "\tLEFT JOIN b_iblock_group IBG ON IBG.IBLOCK_ID=B.ID " . "WHERE BE.IBLOCK_ID = B.ID " . "\tAND B.LID = L.LID " . "\tAND IBG.GROUP_ID IN (2) " . "\tAND BE.WF_STATUS_ID = 1 AND BE.WF_PARENT_ELEMENT_ID is null " . "\tAND IBG.PERMISSION>='R' " . "\tAND (IBG.PERMISSION='X' OR B.ACTIVE='Y') " . "\tAND (BE.IBLOCK_ID = " . IntVal($arIBLOCK["ID"]) . ") " . "\tAND ((BE.ACTIVE_TO >= " . $DB->GetNowFunction() . " OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= " . $DB->GetNowFunction() . " OR BE.ACTIVE_FROM IS NULL)) " . "\tAND (BE.ACTIVE = 'Y') "; if ($LIMIT_DAY !== false) { $strSql .= " AND (BE.ACTIVE_FROM>=" . $DB->CharToDateFunction($DB->ForSql(date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL")), mktime(date("H"), date("i"), date("s"), date("m"), date("d") - IntVal($LIMIT_DAY), date("Y")))), "FULL") . " OR BE.ACTIVE_FROM IS NULL) "; } $strSql .= "ORDER BY BE.ACTIVE_FROM DESC, BE.SORT ASC "; $res = $DB->Query($strSql); CTimeZone::Enable(); $items = new CIBlockResult($res->result); if ($LIMIT_NUM !== False && IntVal($LIMIT_NUM) > 0) { $items->NavStart($LIMIT_NUM); } while ($arItem = $items->GetNext()) { $props = CIBlockElement::GetProperty($arIBLOCK["ID"], $arItem["ID"], "sort", "asc", array("ACTIVE" => "Y", "NON_EMPTY" => "Y")); $arProps = array(); while ($arProp = $props->Fetch()) { if (strlen($arProp["CODE"]) > 0) { $arProps[$arProp["CODE"]] = array("NAME" => htmlspecialcharsbx($arProp["NAME"]), "VALUE" => htmlspecialcharsex($arProp["VALUE"])); } else { $arProps[$arProp["ID"]] = array("NAME" => htmlspecialcharsbx($arProp["NAME"]), "VALUE" => htmlspecialcharsex($arProp["VALUE"])); } } $arLinkProp = $arProps["DOC_LINK"]; $strRes .= "<item>\n"; if (strlen($arNodes["title"]) > 0) { $strRes .= "<title>" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["title"], $arProps, $arItem)) . "</title>\n"; } else { $strRes .= "<title>" . htmlspecialcharsbx($arItem["~NAME"]) . "</title>\n"; } if (strlen($arNodes["link"]) > 0) { $strRes .= "<link>" . CIBlockRSS::ExtractProperties($arNodes["link"], $arProps, $arItem) . "</link>\n"; } else { $strRes .= "<link>http://" . $serverName . ($arLinkProp["VALUE"] ? $arLinkProp["VALUE"] : $arItem["DETAIL_PAGE_URL"]) . "</link>\n"; } if (strlen($arNodes["description"]) > 0) { $strRes .= "<description>" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["description"], $arProps, $arItem)) . "</description>\n"; } else { $strRes .= "<description>" . ($arItem["PREVIEW_TEXT"] || $yandex ? htmlspecialcharsbx($arItem["PREVIEW_TEXT"]) : htmlspecialcharsbx($arItem["DETAIL_TEXT"])) . "</description>\n"; } if (strlen($arNodes["enclosure"]) > 0) { $strRes .= "<enclosure url=\"" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["enclosure"], $arProps, $arItem)) . "\" length=\"" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["enclosure_length"], $arProps, $arItem)) . "\" type=\"" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["enclosure_type"], $arProps, $arItem)) . "\"/>\n"; } else { $db_img_arr = CFile::GetFileArray($arItem["PREVIEW_PICTURE"]); if ($db_img_arr) { if (substr($db_img_arr["SRC"], 0, 1) == "/") { $strImage = "http://" . $serverName . $db_img_arr["SRC"]; } else { $strImage = $db_img_arr["SRC"]; } $strRes .= "<enclosure url=\"" . $strImage . "\" length=\"" . $db_img_arr["FILE_SIZE"] . "\" type=\"" . $db_img_arr["CONTENT_TYPE"] . "\" width=\"" . $db_img_arr["WIDTH"] . "\" height=\"" . $db_img_arr["HEIGHT"] . "\"/>\n"; } } if (strlen($arNodes["category"]) > 0) { $strRes .= "<category>" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["category"], $arProps, $arItem)) . "</category>\n"; } else { $strPath = ""; $nav = CIBlockSection::GetNavChain($arIBLOCK["ID"], $arItem["IBLOCK_SECTION_ID"]); while ($ar_nav = $nav->GetNext()) { $strPath .= $ar_nav["NAME"] . "/"; } if (strlen($strPath) > 0) { $strRes .= "<category>" . htmlspecialcharsbx($strPath) . "</category>\n"; } } if ($yandex) { $strRes .= "<yandex:full-text>" . htmlspecialcharsbx($arItem["DETAIL_TEXT"]) . "</yandex:full-text>\n"; } if (strlen($arNodes["pubDate"]) > 0) { $strRes .= "<pubDate>" . htmlspecialcharsbx(CIBlockRSS::ExtractProperties($arNodes["pubDate"], $arProps, $arItem)) . "</pubDate>\n"; } else { if (strlen($arItem["ACTIVE_FROM"]) > 0) { $strRes .= "<pubDate>" . date("r", MkDateTime($DB->FormatDate($arItem["ACTIVE_FROM"], Clang::GetDateFormat("FULL"), "DD.MM.YYYY H:I:S"), "d.m.Y H:i:s")) . "</pubDate>\n"; } else { $strRes .= "<pubDate>" . date("r") . "</pubDate>\n"; } } $strRes .= "</item>\n"; } $strRes .= "</channel>\n"; return $strRes; }
$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); } } } $GLOBALS["APPLICATION"]->SetTitle($arFolder ? $arFolder["NAME"] : $arIBlock["NAME"]); if ($bShowHeader) { if ($arFolder && (strlen($arFolder["DESCRIPTION"]) > 0 || IntVal($arFolder["PICTURE"]) > 0) || !$arFolder && (strlen($arIBlock["DESCRIPTION"]) > 0 || IntVal($arIBlock["PICTURE"]) > 0)) { ?> <table border="0" cellpadding="4" cellspacing="2" width="100%" style="border: 1px solid #C7DAE4;"> <tr> <td width="100%" valign="top"> <font class="text">