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;
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
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;
 }
Beispiel #7
0
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">&rarr;</span><?php 
    }
}
Beispiel #8
0
 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;
     }
 }
Beispiel #9
0
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;
}
Beispiel #10
0
/**
 * @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];
}
Beispiel #11
0
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;
}
Beispiel #12
0
 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;
 }
Beispiel #13
0
 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;
 }
Beispiel #14
0
     $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");
Beispiel #15
0
 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);
     }
 }
Beispiel #16
0
 $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";
Beispiel #17
0
	//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",
Beispiel #18
0
$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);
Beispiel #19
0
 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;
 }
Beispiel #20
0
 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>]&nbsp;(" . $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) . "&nbsp;/&nbsp;" . "')")));
}
$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 . '&amp;IBLOCK_ID=' . $IBLOCK_ID . '&amp;find_section_section=-1' . '&amp;n=' . urlencode($n) . '&amp;k=' . urlencode($k) . ($m ? "&amp;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();
}
Beispiel #22
0
 }
 $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) {
Beispiel #23
0
    $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 {
Beispiel #24
0
 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"]];
Beispiel #26
0
 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;
 }
Beispiel #27
0
 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;
 }
Beispiel #28
0
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();
Beispiel #29
0
 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;
 }
Beispiel #30
0
        $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">