public function getElementLink($aElement)
 {
     static $aIBTypeCache = array();
     if (!isset($aIBTypeCache[$aElement['IBLOCK_ID']])) {
         $aIBTypeCache[$aElement['IBLOCK_ID']] = CIBlock::GetByID($aElement['IBLOCK_ID'])->Fetch();
         $aIBTypeCache[$aElement['IBLOCK_ID']] = $aIBTypeCache[$aElement['IBLOCK_ID']]['IBLOCK_TYPE_ID'];
     }
     return '<a href="/bitrix/admin/iblock_element_edit.php?WF=Y&ID=' . $aElement['ID'] . '&type=' . $aIBTypeCache[$aElement['IBLOCK_ID']] . '&lang=ru&IBLOCK_ID=' . $aElement['IBLOCK_ID'] . '&find_section_section=-1">' . @$aElement['NAME'] . ' </a>';
 }
示例#2
0
 function AttachUsersToIBlock($iblockID)
 {
     $iblockID = intval($iblockID);
     if (CModule::IncludeModule("iblock") && $iblockID > 0) {
         $dbIblock = CIBlock::GetByID($iblockID);
         if ($dbIblock->Fetch()) {
             $this->attachIBlockID = $iblockID;
         }
     }
 }
示例#3
0
 protected function getOffers()
 {
     $arPropertyMap = array();
     $arSelectedPropTypes = array('S', 'N', 'L', 'E', 'G');
     $this->arSelectOfferProps = array();
     $arOffers = \CCatalogSKU::GetInfoByProductIBlock($this->iBlockId);
     if (empty($arOffers['IBLOCK_ID'])) {
         return array();
     }
     $this->intOfferIBlockID = $arOffers['IBLOCK_ID'];
     $rsOfferIBlocks = \CIBlock::GetByID($this->intOfferIBlockID);
     if (!($this->arOfferIBlock = $rsOfferIBlocks->Fetch())) {
         throw new SystemException("Bad offers iBlock ID  (" . __CLASS__ . "::" . __METHOD__ . ")");
     }
     $rsProps = \CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N'));
     while ($arProp = $rsProps->Fetch()) {
         $arProp['ID'] = (int) $arProp['ID'];
         if ($arOffers['SKU_PROPERTY_ID'] != $arProp['ID']) {
             $arProp['USER_TYPE'] = (string) $arProp['USER_TYPE'];
             $arProp['CODE'] = (string) $arProp['CODE'];
             $this->arIblock['OFFERS_PROPERTY'][$arProp['ID']] = $arProp;
             $this->arProperties[$arProp['ID']] = $arProp;
             if (in_array($arProp['PROPERTY_TYPE'], $arSelectedPropTypes)) {
                 $this->arSelectOfferProps[] = $arProp['ID'];
             }
             if ($arProp['CODE'] !== '') {
                 foreach ($this->arIblock['PROPERTY'] as &$arMainProp) {
                     if ($arMainProp['CODE'] == $arProp['CODE']) {
                         $arPropertyMap[$arProp['ID']] = $arMainProp['CODE'];
                         break;
                     }
                 }
                 if (isset($arMainProp)) {
                     unset($arMainProp);
                 }
             }
         }
     }
     $this->arOfferIBlock['LID'] = $this->arIblock['LID'];
     $this->arOfferIBlock['PROPERTY'] = array();
     $rsProps = \CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N'));
     while ($arProp = $rsProps->Fetch()) {
         $arProp['ID'] = (int) $arProp['ID'];
         $arProp['USER_TYPE'] = (string) $arProp['USER_TYPE'];
         $arProp['CODE'] = (string) $arProp['CODE'];
         $this->arOfferIBlock['PROPERTY'][$arProp['ID']] = $arProp;
     }
     return $arOffers;
 }
示例#4
0
 function __call($name, $arguments)
 {
     if (isset($this->events[$name])) {
         $eventParams =& $arguments['0'];
         $arEvent = $this->events[$name];
         $description['ID'] = $eventParams['ELEMENT']['id'];
         if ($name == "OnFileRename" || $name == "OnFolderRename") {
             $description["NAME_BEFORE"] = $eventParams['ELEMENT']['name'];
             $description['NAME'] = $eventParams['OPERATION']['TO'];
         } else {
             $description['NAME'] = $eventParams['ELEMENT']['name'];
         }
         $description['URL'] = $eventParams['ELEMENT']['url'];
         $res = CIBlock::GetByID($this->iblock_id);
         if ($arEvent['object'] == 'ELEMENT') {
             if ($ar_res = $res->GetNext()) {
                 $description['ELEMENT_NAME'] = $ar_res['ELEMENT_NAME'];
             }
             $rsIBlock = CIBlockElement::GetList(array(), array("=ID" => $description['ID']), false, false, array("LIST_PAGE_URL"));
             $arIBlock = $rsIBlock->GetNext();
         } else {
             if ($ar_res = $res->GetNext()) {
                 $description['SECTION_NAME'] = $ar_res['SECTION_NAME'];
             }
             $rsIBlock = CIBlockSection::GetList(array(), array("=ID" => $description['ID']), false, array("LIST_PAGE_URL"));
             $arIBlock = $rsIBlock->GetNext();
         }
         $description["IBLOCK_PAGE_URL"] = $arIBlock["LIST_PAGE_URL"];
         $description['IBLOCK_NAME'] = $ar_res['NAME'];
         if ($name == "OnFolderMove" || $name == "OnFileMove") {
             $this->SectionURL = "";
             $this->MakeSectionURL($eventParams['OPERATION']['TO']);
             $description['MOVE_TO'] = $this->SectionURL;
             if ($description['MOVE_TO'] == "") {
                 $description['MOVE_TO'] = $description['IBLOCK_NAME'];
             }
         }
         $this->Log($arEvent['object'], $arEvent['action'], $this->iblock_id, serialize($description));
     }
 }
示例#5
0
 function GetIBlockTypeID($intSubIBlockID)
 {
     $intSubIBlockID = IntVal($intSubIBlockID);
     if (0 > $intSubIBlockID) {
         $intSubIBlockID = 0;
     }
     static $cache = array();
     if (!array_key_exists($intSubIBlockID, $cache)) {
         $rsIBlock = CIBlock::GetByID($intSubIBlockID);
         if (!($cache[$intSubIBlockID] = $rsIBlock->GetNext())) {
             $cache[$intSubIBlockID] = array("IBLOCK_TYPE_ID" => "");
         }
     }
     return $cache[$intSubIBlockID]["IBLOCK_TYPE_ID"];
 }
示例#6
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (0 < $arResult['SECTIONS_COUNT'] && \Bitrix\Main\Loader::includeModule('iblock') && ($arResult['IBLOCK'] = CIBlock::GetByID($arParams['IBLOCK_ID'])->Fetch())) {
    $arResult['IBLOCK']['LIST_PAGE_URL'] = str_replace('//', '/', CComponentEngine::MakePathFromTemplate($arResult['IBLOCK']['LIST_PAGE_URL'], array('IBLOCK_CODE' => $arResult['IBLOCK']['CODE'])));
}
示例#7
0
 if(in_array($item['offer']['externalId'], $bItms)){
     if ((int) $item['quantity'] != (int) $bItms[$item['offer']['externalId']]['QUANTITY']) {
         $arProduct['QUANTITY'] = $item['quantity'];                    
         $g = CSaleBasket::Update($bItms[$item['offer']['externalId']]['ID'], $arProduct);
         //резерв
         $ar_res = CCatalogProduct::GetByID($item['offer']['externalId']);                   
         $arFields = array(
             'QUANTITY' => (int)$ar_res['QUANTITY'] + (int)$bItms[$item['offer']['externalId']]['QUANTITY'] - (int) $item['quantity'],
             'QUANTITY_RESERVED' => (int)$ar_res['QUANTITY_RESERVED'] - (int)$bItms[$item['offer']['externalId']]['QUANTITY'] + (int) $item['quantity'],
         );
         $d = CCatalogProduct::Update($item['offer']['externalId'], $arFields);
     }
 }//если нет, добавляем
 else{
     $p = CIBlockElement::GetByID($item['offer']['externalId'])->Fetch();
     $iblock = CIBlock::GetByID($p['IBLOCK_ID'])->Fetch();
     $p['CATALOG_XML_ID'] = $iblock['XML_ID'];
     $p['PRODUCT_XML_ID'] = $p['XML_ID'];
     $arProduct = array(
         'FUSER_ID'               => $userId,
         'ORDER_ID'               => $order['externalId'],
         'QUANTITY'               => $item['quantity'],
         'CURRENCY'               => CCurrency::GetBaseCurrency(),
         'LID'                    => $LID,
         'PRODUCT_ID'             => $item['offer']['externalId'],
         'PRODUCT_PRICE_ID'       => $p['PRODUCT_PRICE_ID'],
         'WEIGHT'                 => $p['WEIGHT'],
         'DELAY'                  => $p['DELAY'],
         'CAN_BUY'                => $p['CAN_BUY'],
         'MODULE'                 => $p['MODULE'],
         'NOTES'                  => $item['comment'] ?: $p['NOTES'],
    echo ShowError(str_replace('#ID#', $intIBlockID, GetMessage("YANDEX_ERR_NO_IBLOCK_FOUND_EXT")));
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
    die;
}
$boolOffers = false;
$arOffers = false;
$arOfferIBlock = false;
$intOfferIBlockID = 0;
$arSelectOfferProps = array();
$arSelectedPropTypes = array('S', 'N', 'L', 'E', 'G');
$arOffersSelectKeys = array(YANDEX_SKU_EXPORT_ALL, YANDEX_SKU_EXPORT_MIN_PRICE, YANDEX_SKU_EXPORT_PROP);
$arOffers = CCatalogSKU::GetInfoByProductIBlock($intIBlockID);
if (!empty($arOffers['IBLOCK_ID'])) {
    $intOfferIBlockID = $arOffers['IBLOCK_ID'];
    $strPerm = 'D';
    $rsOfferIBlocks = CIBlock::GetByID($intOfferIBlockID);
    if ($arOfferIBlock = $rsOfferIBlocks->Fetch()) {
        $bBadBlock = !CIBlockRights::UserHasRightTo($intOfferIBlockID, $intOfferIBlockID, "iblock_admin_display");
        if ($bBadBlock) {
            require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
            echo ShowError(GetMessage('YANDEX_ERR_NO_ACCESS_IBLOCK_SKU'));
            require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
            die;
        }
    } else {
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
        echo ShowError(str_replace('#ID#', $intIBlockID, GetMessage("YANDEX_ERR_NO_IBLOCK_SKU_FOUND")));
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
        die;
    }
    $boolOffers = true;
示例#9
0
<?php

require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php";
if (CModule::IncludeModule("iblock")) {
    $res = CIBlock::GetByID($_GET["BID"]);
    if ($ar_res = $res->GetNext()) {
        $APPLICATION->SetTitle($ar_res['NAME']);
        ?>

    <?php 
        $APPLICATION->IncludeComponent("bitrix:news.list", "geekcon", array("DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "AJAX_MODE" => "Y", "IBLOCK_TYPE" => "news", "IBLOCK_ID" => $_GET["ID"], "NEWS_COUNT" => "", "SORT_BY1" => "ACTIVE_FROM", "SORT_ORDER1" => "DESC", "SORT_BY2" => "SORT", "SORT_ORDER2" => "ASC", "FILTER_NAME" => "", "FIELD_CODE" => array("ID"), "PROPERTY_CODE" => array("DESCRIPTION"), "CHECK_DATES" => "Y", "DETAIL_URL" => "", "PREVIEW_TRUNCATE_LEN" => "", "ACTIVE_DATE_FORMAT" => "d.m.Y", "SET_TITLE" => "Y", "SET_BROWSER_TITLE" => "Y", "SET_META_KEYWORDS" => "Y", "SET_META_DESCRIPTION" => "Y", "SET_LAST_MODIFIED" => "Y", "INCLUDE_IBLOCK_INTO_CHAIN" => "Y", "ADD_SECTIONS_CHAIN" => "Y", "HIDE_LINK_WHEN_NO_DETAIL" => "Y", "PARENT_SECTION" => "", "PARENT_SECTION_CODE" => "", "INCLUDE_SUBSECTIONS" => "Y", "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "CACHE_FILTER" => "Y", "CACHE_GROUPS" => "Y", "DISPLAY_TOP_PAGER" => "Y", "DISPLAY_BOTTOM_PAGER" => "Y", "PAGER_TITLE" => $ar_res['NAME'], "PAGER_SHOW_ALWAYS" => "Y", "PAGER_TEMPLATE" => "", "PAGER_DESC_NUMBERING" => "Y", "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", "PAGER_SHOW_ALL" => "Y", "PAGER_BASE_LINK_ENABLE" => "Y", "SET_STATUS_404" => "Y", "SHOW_404" => "Y", "MESSAGE_404" => "", "PAGER_BASE_LINK" => "", "PAGER_PARAMS_NAME" => "arrPager", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N", "AJAX_OPTION_ADDITIONAL" => ""));
        ?>

    <?php 
    }
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php";
$buyerId = intval($USER->GetID());
$sTableID = "tbl_product_search";
if ($caller) {
    if (!isset($_REQUEST["set_filter"])) {
        $addURLParam = "&set_filter=Y";
        if (!isset($_REQUEST["IBLOCK_ID"])) {
            $addURLParam .= CUserOptions::getOption("catalog", "product_search_" . $caller, "", $buyerId);
            LocalRedirect($GLOBALS['APPLICATION']->GetCurPageParam() . $addURLParam);
        }
    }
    $addURLParam = CUserOptions::getOption("catalog", "product_search_storeDocs", "", $userId);
    $sTableID .= '_' . $caller;
}
$oSort = new CAdminSorting($sTableID, "ID", "asc");
$lAdmin = new CAdminList($sTableID, $oSort);
$dbIBlock = CIBlock::GetByID($iblockId);
if (!($arIBlock = $dbIBlock->Fetch())) {
    $arFilterTmp = array("MIN_PERMISSION" => "R");
    if (strlen($lid) > 0) {
        $arFilterTmp["LID"] = $lid;
    }
    $arCatalogFilter = array();
    if ($boolSubscribe) {
        $arCatalogFilter['SUBSCRIPTION'] = 'Y';
    }
    $dbItem = CCatalog::GetList(array(), $arCatalogFilter, false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID'));
    while ($arItems = $dbItem->Fetch()) {
        $arFilterTmp["ID"][] = $arItems["IBLOCK_ID"];
    }
    foreach (GetModuleEvents("sale", "OnProductSearchFormIBlock", true) as $arEvent) {
        $arFilterTmp = ExecuteModuleEventEx($arEvent, array($arFilterTmp));
示例#11
0
<?if(CModule::IncludeModule("iblock"))
   {
       $res = CIBlock::GetByID($arParams["IBLOCK_ID"]);
       if($ar_res = $res->GetNext())
           $arResult["IBLOCK_NAME"] = $ar_res['NAME'];

   }
?>
示例#12
0
 public static function __GetParam($lang, $site_id, $module_id = false, $param1 = false, $param2 = false, $item_id = false)
 {
     $name = "";
     if ($module_id == "iblock" && CModule::IncludeModule("iblock")) {
         if ($item_id !== false) {
             $rs = CIBlockElement::GetByID($item_id);
             if ($ar = $rs->GetNext()) {
                 $name = $ar["NAME"];
             }
         } elseif ($param2 !== false) {
             $rs = CIBlock::GetByID($param2);
             if ($ar = $rs->GetNext()) {
                 $name = $ar["NAME"];
             }
         } elseif ($param1 !== false) {
             $rs = CIBlockType::GetByIDLang($param1, $lang);
             if (is_array($rs)) {
                 $name = $rs["NAME"];
             }
         } else {
             $name = GetMessage("customrank_iblocks");
         }
     } elseif ($module_id == "forum" && CModule::IncludeModule("forum")) {
         if ($item_id !== false) {
             $name = "";
         } elseif ($param2 !== false) {
             $rs = CForumTopic::GetByID($param2);
             if (is_array($rs)) {
                 $name = htmlspecialcharsex($rs["TITLE"]);
             }
         } elseif ($param1 !== false) {
             $rs = CForumNew::GetByID($param1);
             if (is_array($rs)) {
                 $name = htmlspecialcharsex($rs["NAME"]);
             }
         } else {
             $name = GetMessage("customrank_forum");
         }
     } elseif ($module_id == "main") {
         if ($item_id !== false) {
             $name = "";
         } else {
             $name = GetMessage("customrank_files");
         }
     } elseif ($module_id === false) {
         $rs = CSite::GetByID($site_id);
         if ($ar = $rs->GetNext()) {
             $name = $ar["NAME"];
         }
     } else {
         $name = false;
     }
     return $name;
 }
示例#13
0
 public function OnAfterPhotoCommentAddBlog($ID, $arFields)
 {
     if (!CModule::IncludeModule('iblock')) {
         return;
     }
     if (!$this->IsSocnet) {
         return;
     }
     if (intval($this->PhotoElementID) > 0) {
         $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "photo_photo", "SOURCE_ID" => $this->PhotoElementID), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "TMP_ID", "TITLE", "URL", "USER_ID", "PARAMS"));
         $bSocNetLogRecordExists = false;
         if ($arRes = $dbRes->Fetch()) {
             $log_id = $arRes["ID"];
             $entity_type = $arRes["ENTITY_TYPE"];
             $entity_id = $arRes["ENTITY_ID"];
             $log_title = $arRes["TITLE"];
             $log_url = $arRes["URL"];
             $log_user_id = $arRes["USER_ID"];
             $bSocNetLogRecordExists = true;
             if (strlen($arRes["PARAMS"]) > 0) {
                 $arTmp = unserialize($arRes["PARAMS"]);
                 if ($arTmp) {
                     if (array_key_exists("SECTION_NAME", $arTmp) && strlen($arTmp["SECTION_NAME"]) > 0) {
                         $log_section_name = $arTmp["SECTION_NAME"];
                     }
                     if (array_key_exists("SECTION_URL", $arTmp) && strlen($arTmp["SECTION_URL"]) > 0) {
                         $log_section_url = $arTmp["SECTION_URL"];
                     }
                 }
             }
         } else {
             $rsElement = CIBlockElement::GetByID($this->PhotoElementID);
             if ($arElement = $rsElement->Fetch()) {
                 $url = $this->arPath["DETAIL_URL"];
                 $sAuthorName = GetMessage("SONET_PHOTO_LOG_GUEST");
                 if (intval($arElement["CREATED_BY"]) > 0) {
                     $rsUser = CUser::GetByID($arElement["CREATED_BY"]);
                     if ($arUser = $rsUser->Fetch()) {
                         $sAuthorName = CUser::FormatName(CSite::GetNameFormat(false), $arUser, true, false);
                     }
                 }
                 if (in_array($this->entity_type, array(SONET_ENTITY_USER, SONET_ENTITY_GROUP)) && intval($this->entity_id) > 0) {
                     $entity_type = $this->entity_type;
                     $entity_id = $this->entity_id;
                     $alias = ($this->entity_type == SONET_ENTITY_GROUP ? "group" : "user") . "_" . $this->entity_id;
                 }
                 $arLogParams = array("BLOG_ID" => intval($this->BlogID));
                 $rsIBlock = CIBlock::GetByID($arElement["IBLOCK_ID"]);
                 if ($arIBlock = $rsIBlock->Fetch()) {
                     $arLogParams["IBLOCK_ID"] = $arIBlock["ID"];
                     $arLogParams["IBLOCK_TYPE"] = $arIBlock["IBLOCK_TYPE_ID"];
                 }
                 $rsSection = CIBlockSection::GetByID($arElement["IBLOCK_SECTION_ID"]);
                 if ($arSection = $rsSection->Fetch()) {
                     $arLogParams["SECTION_ID"] = $arSection["ID"];
                     $arLogParams["SECTION_NAME"] = $arSection["NAME"];
                     $arLogParams["SECTION_URL"] = str_replace("#SECTION_ID#", $arSection["ID"], $this->arPath["SECTION_URL"]);
                     $arSectionPath = array();
                     $bPassword = false;
                     $dbSectionPath = CIBlockSection::GetList(array("LEFT_MARGIN" => "ASC"), array("IBLOCK_ID" => intval($arLogParams["IBLOCK_ID"]), "<=LEFT_BORDER" => intval($arSection["LEFT_MARGIN"]), ">=RIGHT_BORDER" => intval($arSection["RIGHT_MARGIN"]), "<=DEPTH_LEVEL" => intval($arSection["DEPTH_LEVEL"])), false, array("ID", "IBLOCK_ID", "NAME", "CREATED_BY", "DEPTH_LEVEL", "LEFT_MARGIN", "RIGHT_MARGIN", "UF_PASSWORD"));
                     while ($arPath = $dbSectionPath->Fetch()) {
                         $arSectionPath[] = $arPath;
                         if (strlen(trim($arPath["UF_PASSWORD"])) > 0) {
                             $bPassword = true;
                             break;
                         }
                     }
                     if (!$alias) {
                         $entity_type = SONET_ENTITY_USER;
                         $entity_id = $arSectionPath[0]["CREATED_BY"];
                         $alias = $arSectionPath[0]["CODE"];
                     }
                 }
                 $arLogParams["ALIAS"] = $alias;
                 $arSonetFields = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_photo", "LOG_DATE" => $arElement["TIMESTAMP_X"], "TITLE_TEMPLATE" => str_replace("#AUTHOR_NAME#", $sAuthorName, GetMessage("SONET_PHOTOPHOTO_LOG_1")), "TITLE" => $arElement["NAME"], "MESSAGE" => "", "TEXT_MESSAGE" => "", "URL" => CComponentEngine::MakePathFromTemplate($url, array("ELEMENT_ID" => $arElement["ID"], "element_id" => $arElement["ID"], "SECTION_ID" => $arElement["IBLOCK_SECTION_ID"], "section_id" => $arElement["IBLOCK_SECTION_ID"])), "MODULE_ID" => false, "CALLBACK_FUNC" => false, "SOURCE_ID" => $arElement["ID"], "PARAMS" => serialize($arLogParams), "RATING_TYPE_ID" => "IBLOCK_ELEMENT", "RATING_ENTITY_ID" => $arElement["ID"]);
                 if (intval($arElement["CREATED_BY"]) > 0) {
                     $arSonetFields["USER_ID"] = $arElement["CREATED_BY"];
                 }
                 $log_id = CSocNetLog::Add($arSonetFields, false);
                 if (intval($log_id) > 0) {
                     $log_title = $arSonetFields["TITLE"];
                     $log_url = $arSonetFields["URL"];
                     $log_section_name = $arLogParams["SECTION_NAME"];
                     $log_section_url = $arLogParams["SECTION_URL"];
                     $log_user_id = $arSonetFields["USER_ID"];
                     CSocNetLog::Update($log_id, array("TMP_ID" => $log_id));
                     if ($bPassword) {
                         CSocNetLogRights::DeleteByLogID($log_id);
                         CSocNetLogRights::Add($log_id, array("U" . $GLOBALS["USER"]->GetID(), "SA"));
                     } else {
                         CSocNetLogRights::SetForSonet($log_id, $entity_type, $entity_id, "photo", "view", true);
                     }
                 }
             }
         }
         if (intval($log_id) > 0) {
             $parserBlog = new blogTextParser(false, $this->arPath["PATH_TO_SMILE"]);
             $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N");
             if ($bSocNetLogRecordExists) {
                 $text4message = $parserBlog->convert($arFields["POST_TEXT"], true, array(), $arAllow);
                 $text4mail = $parserBlog->convert4mail($arFields["POST_TEXT"]);
                 $arFieldsForSocnet = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_comment", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => false, "SOURCE_ID" => $ID, "LOG_ID" => $log_id, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => $ID);
                 if (intval($arFields["AUTHOR_ID"]) > 0) {
                     $arFieldsForSocnet["USER_ID"] = $arFields["AUTHOR_ID"];
                 }
                 $comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false);
                 if ($comment_id) {
                     CSocNetLog::CounterIncrement($comment_id, false, false, "LC");
                     $arFieldsIM = array("TYPE" => "COMMENT", "TITLE" => $log_title, "MESSAGE" => $arFieldsForSocnet["MESSAGE"], "URL" => $log_url, "SECTION_NAME" => $log_section_name, "SECTION_URL" => $log_section_url, "ID" => $this->PhotoElementID, "PHOTO_AUTHOR_ID" => $log_user_id, "COMMENT_AUTHOR_ID" => $arFields["AUTHOR_ID"]);
                     CSocNetPhotoCommentEvent::NotifyIm($arFieldsIM);
                 }
             } else {
                 $dbComments = CBlogComment::GetList(array(), array("BLOG_ID" => intval($this->BlogID), "POST_ID" => intval($this->PostID)), false, false, array("ID", "BLOG_ID", "POST_ID", "AUTHOR_ID", "POST_TEXT", "DATE_CREATE"));
                 while ($arComment = $dbComments->GetNext()) {
                     $text4message = $parserBlog->convert($arComment["POST_TEXT"], true, array(), $arAllow);
                     $text4mail = $parserBlog->convert4mail($arComment["POST_TEXT"]);
                     $arFieldsForSocnet = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_comment", "=LOG_DATE" => $GLOBALS["DB"]->CharToDateFunction($arComment["DATE_CREATE"], "FULL", SITE_ID), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => false, "SOURCE_ID" => intval($arComment["ID"]), "LOG_ID" => $log_id, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => intval($arComment["ID"]));
                     if (intval($arFields["AUTHOR_ID"]) > 0) {
                         $arFieldsForSocnet["USER_ID"] = $arFields["AUTHOR_ID"];
                     }
                     $comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false);
                     if ($comment_id) {
                         CSocNetLog::CounterIncrement($comment_id, false, false, "LC");
                         $arFieldsIM = array("TYPE" => "COMMENT", "TITLE" => $log_title, "MESSAGE" => $arFieldsForSocnet["MESSAGE"], "URL" => $log_url, "SECTION_NAME" => $log_section_name, "SECTION_URL" => $log_section_url, "ID" => $this->PhotoElementID, "PHOTO_AUTHOR_ID" => $log_user_id, "COMMENT_AUTHOR_ID" => $arFields["AUTHOR_ID"]);
                         CSocNetPhotoCommentEvent::NotifyIm($arFieldsIM);
                     }
                 }
                 if ($arElement) {
                     self::InheriteAlbumFollow($arElement["IBLOCK_SECTION_ID"], $log_id, intVal($arElement["CREATED_BY"]) > 0 ? $arElement["CREATED_BY"] : false);
                 }
             }
         }
     }
 }
示例#14
0
<?php

/**
 * @author Gennadiy Hatuntsev
 * @package catalog.menu
 *
 * @var array $arParams
 * @var array $arResult
 * @var CDatabase $DB
 */
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$arResult = array();
$iblockID = intval($arParams['IBLOCK_ID']);
$iblock = CIBlock::GetByID($iblockID)->Fetch();
if ($iblock) {
    $sortField = isset($arParams["SORT_FIELD"]) && in_array($arParams["SORT_FIELD"], array("NAME", "SORT")) ? $arParams["SORT_FIELD"] : "NAME";
    $sortOrder = isset($arParams["SORT_ORDER"]) && in_array($arParams["SORT_ORDER"], array("ASC", "DESC")) ? $arParams["SORT_ORDER"] : "ASC";
    // Разделы первого уровня
    $sort = array($sortField => $sortOrder);
    $filter = array('IBLOCK_ID' => $iblockID, 'ACTIVE' => 'Y', 'DEPTH_LEVEL' => 1);
    $result = CIBlockSection::GetList($sort, $filter);
    while ($section = $result->GetNext()) {
        $arResult[1][$section["ID"]] = $section;
    }
    // Разделы второго уровня
    $sql = "\n            SELECT T.*\n            FROM `b_iblock_section` AS T\n                JOIN `b_iblock_section` AS SUB\n                    ON T.IBLOCK_SECTION_ID = SUB.ID\n            WHERE\n                T.ACTIVE = 'Y' AND\n                T.IBLOCK_ID = " . $iblockID . "\n            ORDER BY\n                SUB.LEFT_MARGIN, T." . $sortField . " " . $sortOrder . ", T.LEFT_MARGIN\n        ";
    $result = $DB->Query($sql);
    while ($section = $result->GetNext()) {
        $replace = array("#SITE_DIR#" => '', "#SECTION_ID#" => $section["ID"], "#SECTION_CODE#" => $section["CODE"]);
示例#15
0
 /**
  * @param $id
  * @param bool|false $forCache
  * @return bool|string
  */
 public static function run($id, $forCache = false)
 {
     $data = \CIBlock::GetByID($id)->Fetch();
     if ($data) {
         $code = $data['CODE'];
         $name = $data['NAME'];
         $isactive = $data['ACTIVE'] == 'Y';
         $sort = $data['SORT'];
         $description = (string) $data['DESCRIPTION'];
         $descriptionType = $data['DESCRIPTION_TYPE'];
         $className = $forCache ? \TAO::normalizeMnemocode($code) : \TAO::chunkCap($code);
         unset($data['ID']);
         unset($data['TIMESTAMP_X']);
         unset($data['IBLOCK_TYPE_ID']);
         unset($data['CODE']);
         unset($data['NAME']);
         unset($data['LANG_DIR']);
         unset($data['SERVER_NAME']);
         unset($data['LID']);
         unset($data['ACTIVE']);
         unset($data['SORT']);
         unset($data['DESCRIPTION']);
         unset($data['DESCRIPTION_TYPE']);
         $defs = array('RSS_ACTIVE' => 'Y', 'RSS_TTL' => '24', 'RSS_FILE_ACTIVE' => 'N', 'RSS_YANDEX_ACTIVE' => 'N', 'INDEX_ELEMENT' => 'Y', 'INDEX_SECTION' => 'N', 'WORKFLOW' => 'Y', 'VERSION' => '1', 'BIZPROC' => 'N', 'SECTION_CHOOSER' => 'L', 'RIGHTS_MODE' => 'S', 'SECTION_PROPERTY' => 'N', 'PROPERTY_INDEX' => 'N');
         foreach (array_keys($data) as $k) {
             if (empty($data[$k])) {
                 unset($data[$k]);
             }
             if (isset($defs[$k]) && $defs[$k] == $data[$k]) {
                 unset($data[$k]);
             }
         }
         $sites = '';
         $res = \CIBlock::GetSite($id);
         while ($row = $res->Fetch()) {
             $sites .= $sites != '' ? ',' : '';
             $sites .= "'" . $row['SITE_ID'] . "'";
         }
         unset($data['ELEMENTS_NAME']);
         unset($data['ELEMENT_NAME']);
         $sData = self::generateArrayExport($data, '        ');
         $sDescription = self::generateSimpleStringFunctionText('description', $description, '');
         $sDescriptionType = self::generateSimpleStringFunctionText('descriptionType', $descriptionType, 'text');
         $sIsActive = self::generateSimpleStringFunctionText('isActive', $isactive, true);
         $sSort = self::generateSimpleStringFunctionText('sort', $sort, '500');
         $sSites = "\n\n    public function sites()\n    {\n        return array({$sites});\n    }";
         $properties = array();
         $result = \CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $id, 'CHECK_PERMISSIONS' => 'N'));
         $defs = array('VERSION' => '1', 'FILTRABLE' => 'N', 'SEARCHABLE' => 'N', 'LIST_TYPE' => 'L', 'COL_COUNT' => '30', 'ROW_COUNT' => '1', 'MULTIPLE' => 'N', 'SORT' => '500', 'IS_REQUIRED' => 'N', 'WITH_DESCRIPTION' => 'N', 'MULTIPLE_CNT' => '5');
         while ($row = $result->Fetch()) {
             $code = trim($row['CODE']);
             if ($code == '') {
                 $code = 'PROP_' . $row['ID'];
             }
             $pid = $row['ID'];
             unset($row['ID']);
             unset($row['TIMESTAMP_X']);
             unset($row['IBLOCK_ID']);
             unset($row['ACTIVE']);
             unset($row['CODE']);
             foreach (array_keys($row) as $k) {
                 if (empty($row[$k])) {
                     unset($row[$k]);
                 }
                 if (isset($defs[$k]) && $defs[$k] == $row[$k]) {
                     unset($row[$k]);
                 }
             }
             if ($row['PROPERTY_TYPE'] == 'L') {
                 $items = array();
                 $res = \CIBlockPropertyEnum::GetList(array(), array('PROPERTY_ID' => $pid, 'CHECK_PERMISSIONS' => 'N'));
                 while ($lrow = $res->Fetch()) {
                     $iid = $lrow['ID'];
                     $eid = $lrow['EXTERNAL_ID'];
                     unset($lrow['ID']);
                     unset($lrow['EXTERNAL_ID']);
                     unset($lrow['XML_ID']);
                     unset($lrow['TMP_ID']);
                     unset($lrow['PROPERTY_ID']);
                     unset($lrow['PROPERTY_NAME']);
                     unset($lrow['PROPERTY_CODE']);
                     unset($lrow['PROPERTY_SORT']);
                     if ($lrow['SORT'] == '500') {
                         unset($lrow['SORT']);
                     }
                     if ($lrow['DEF'] == 'N') {
                         unset($lrow['DEF']);
                     }
                     if (count($lrow) == 1 && isset($lrow['VALUE'])) {
                         $lrow = $lrow['VALUE'];
                     }
                     $items[$eid] = $lrow;
                 }
                 $row['ITEMS'] = $items;
             }
             if (isset($row['LINK_IBLOCK_ID']) && !$forCache) {
                 $row['LINK_IBLOCK_CODE'] = \TAO::getInfoblockCode($row['LINK_IBLOCK_ID']);
                 unset($row['LINK_IBLOCK_ID']);
             }
             $properties[$code] = $row;
         }
         $sProperties = self::generateArrayExport($properties, '        ');
         $messages = \CIBlock::GetMessages($id);
         $sMessages = self::generateArrayExport($messages, '        ');
         $fields = self::trimArrayValues(\CIBlock::GetFields($id));
         $defFields = self::defaultFields();
         foreach (array_keys($fields) as $field) {
             if (isset($defFields[$field])) {
                 $md5 = md5(serialize($fields[$field]));
                 $def = md5(serialize($defFields[$field]));
                 if ($md5 == $def) {
                     //unset($fields[$field]);
                 } else {
                     //var_dump($fields[$field], $defFields[$field]);
                 }
             }
         }
         $sFields = self::generateArrayExport($fields, '        ');
         $permissions = \CIBlock::GetGroupPermissions($id);
         $sPermissions = self::generateArrayExport($permissions, '        ');
         ob_start();
         include \TAO::taoDir() . '/views/template-iblock.phtml';
         $content = "<?php\n" . ob_get_clean();
         return $content;
     }
     return false;
 }
示例#16
0
                 default:
                     $arEventFields["PARAMS"] .= $f["NAME"] . ": " . $_REQUEST[$f['CODE']] . "\n";
                     $arIBlockFields["PROPERTY_VALUES"][$f['CODE']] = prepareIBlockPropertyValue($_REQUEST[$f["CODE"]], $f);
                     break;
             }
             break;
         default:
             break;
     }
 }
 $el = new CIBlockElement();
 if (!($result = $el->Add($arIBlockFields))) {
     $arResult["ERROR_MESSAGE"][] = $el->LAST_ERROR;
 } else {
     if (($rsIBlock = CIBlockElement::GetIBlockByID($result)) !== FALSE) {
         $dbIBlock = CIBlock::GetByID($rsIBlock);
         if ($arIBlock = $dbIBlock->GetNext()) {
             $rsIBlockType = $arIBlock["IBLOCK_TYPE_ID"];
             $arEventFields["EDIT_LINK"] = "http://" . $_SERVER["HTTP_HOST"] . "/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=" . $rsIBlock . "&type=" . $rsIBlockType . "&ID=" . $result . "&lang=ru&find_section_section=-1&WF=Y";
         }
     }
 }
 if (empty($arResult["ERROR_MESSAGE"])) {
     if ($arParams["SEND_EMAIL"] == "Y") {
         if (!empty($arParams["EVENT_MESSAGE_ID"])) {
             foreach ($arParams["EVENT_MESSAGE_ID"] as $v) {
                 if (IntVal($v) > 0) {
                     CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arEventFields, "N", IntVal($v));
                 }
             }
         } else {
示例#17
0
<?php

include $_SERVER['DOCUMENT_ROOT'] . '/local/vendor/techart/bitrix.tao/include/prolog_admin.php';
$id = $_GET['id'];
$data = CIBlock::GetByID($id)->Fetch();
if ($data) {
    $code = $data['CODE'];
    $name = $data['NAME'];
    ?>
    <h2>Экспорт схемы инфоблока "<?php 
    echo $name;
    ?>
"</h2>
    <?php 
    \TAO::load('infoblock_export');
    $content = \TAO\InfoblockExport::run($id);
}
?>


<textarea wrap="off" style="width:90%; height: 400px; padding: 10px; border: 1px solid #888; background-color: white; font-family: monospace; font-size: 10px;"><?php 
echo str_replace('<', '&lt;', $content);
?>
</textarea>


<?php 
include $_SERVER['DOCUMENT_ROOT'] . '/local/vendor/techart/bitrix.tao/include/epilog_admin.php';
示例#18
0
 public function CheckFields($ACTION, &$arFields, $ID = 0)
 {
     global $APPLICATION;
     $arMsg = array();
     $boolResult = true;
     $ID = (int) $ID;
     $arCatalog = false;
     if (0 < $ID) {
         $arCatalog = CCatalog::GetByID($ID);
     }
     if ($boolResult) {
         if ('UPDATE' == $ACTION && false == $arCatalog) {
             $boolResult = false;
             $arMsg[] = array('id' => 'ID', 'text' => Loc::getMessage('BT_MOD_CATALOG_ERR_UPDATE_BAD_ID'));
         }
     }
     if ($boolResult) {
         if ('ADD' == $ACTION || is_set($arFields, 'IBLOCK_ID')) {
             if (!is_set($arFields, 'IBLOCK_ID')) {
                 $arMsg[] = array('id' => 'IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_IBLOCK_ID_FIELD_ABSENT'));
                 $boolResult = false;
             } elseif ((int) $arFields['IBLOCK_ID'] <= 0) {
                 $arMsg[] = array('id' => 'IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_IBLOCK_ID_INVALID'));
                 $boolResult = false;
             } else {
                 $arFields['IBLOCK_ID'] = (int) $arFields['IBLOCK_ID'];
                 $rsIBlocks = CIBlock::GetByID($arFields['IBLOCK_ID']);
                 if (!($arIBlock = $rsIBlocks->Fetch())) {
                     $arMsg[] = array('id' => 'IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_IBLOCK_ID_ABSENT'));
                     $boolResult = false;
                 }
             }
         }
         if ((is_set($arFields, "SUBSCRIPTION") || $ACTION == "ADD") && $arFields["SUBSCRIPTION"] != "Y") {
             $arFields["SUBSCRIPTION"] = "N";
         }
         if ((is_set($arFields, "YANDEX_EXPORT") || $ACTION == "ADD") && $arFields["YANDEX_EXPORT"] != "Y") {
             $arFields["YANDEX_EXPORT"] = "N";
         }
         if (is_set($arFields, 'VAT_ID') || 'ADD' == $ACTION) {
             $arFields['VAT_ID'] = intval($arFields['VAT_ID']);
             if (0 > $arFields['VAT_ID']) {
                 $arFields['VAT_ID'] = 0;
             }
         }
     }
     if ($boolResult) {
         if ('ADD' == $ACTION) {
             if (!is_set($arFields, "PRODUCT_IBLOCK_ID")) {
                 $arFields["PRODUCT_IBLOCK_ID"] = 0;
             } elseif (0 > (int) $arFields["PRODUCT_IBLOCK_ID"]) {
                 $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_INVALID'));
                 $arFields["PRODUCT_IBLOCK_ID"] = 0;
                 $boolResult = false;
             } elseif (0 < (int) $arFields["PRODUCT_IBLOCK_ID"]) {
                 $arFields["PRODUCT_IBLOCK_ID"] = (int) $arFields["PRODUCT_IBLOCK_ID"];
                 $rsIBlocks = CIBlock::GetByID($arFields['PRODUCT_IBLOCK_ID']);
                 if (!($arIBlock = $rsIBlocks->Fetch())) {
                     $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_ABSENT'));
                     $arFields["PRODUCT_IBLOCK_ID"] = 0;
                     $boolResult = false;
                 } else {
                     if ($arFields["PRODUCT_IBLOCK_ID"] == $arFields['IBLOCK_ID']) {
                         $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_SELF'));
                         $arFields["PRODUCT_IBLOCK_ID"] = 0;
                         $boolResult = false;
                     }
                 }
             } else {
                 $arFields["PRODUCT_IBLOCK_ID"] = 0;
             }
             if (!is_set($arFields, "SKU_PROPERTY_ID")) {
                 $arFields["SKU_PROPERTY_ID"] = 0;
             } elseif (0 > (int) $arFields["SKU_PROPERTY_ID"]) {
                 $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_ID_INVALID'));
                 $arFields["SKU_PROPERTY_ID"] = 0;
                 $boolResult = false;
             } else {
                 $arFields["SKU_PROPERTY_ID"] = (int) $arFields["SKU_PROPERTY_ID"];
             }
             if (0 < $arFields["PRODUCT_IBLOCK_ID"] && 0 == $arFields['SKU_PROPERTY_ID']) {
                 $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_WITHOUT_SKU_PROP'));
                 $boolResult = false;
             } elseif (0 == $arFields["PRODUCT_IBLOCK_ID"] && 0 < $arFields['SKU_PROPERTY_ID']) {
                 $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_WITHOUT_PRODUCT'));
                 $boolResult = false;
             } elseif (0 < $arFields["PRODUCT_IBLOCK_ID"] && 0 < $arFields['SKU_PROPERTY_ID']) {
                 $rsProps = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $arFields['IBLOCK_ID'], 'ID' => $arFields['SKU_PROPERTY_ID'], 'ACTIVE' => 'Y'));
                 if ($arProp = $rsProps->Fetch()) {
                     if ('E' != $arProp['PROPERTY_TYPE'] || $arFields["PRODUCT_IBLOCK_ID"] != $arProp['LINK_IBLOCK_ID']) {
                         $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_WITHOUT_PRODUCT'));
                         $boolResult = false;
                     }
                 } else {
                     $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_NOT_FOUND'));
                     $boolResult = false;
                 }
             }
         } elseif ('UPDATE' == $ACTION) {
             $boolLocalFlag = is_set($arFields, 'PRODUCT_IBLOCK_ID') == is_set($arFields, 'SKU_PROPERTY_ID');
             if (!$boolLocalFlag) {
                 $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_AND_SKU_PROPERTY_ID_NEED'));
                 $boolResult = false;
             } else {
                 if (is_set($arFields, 'PRODUCT_IBLOCK_ID')) {
                     if (0 > (int) $arFields["PRODUCT_IBLOCK_ID"]) {
                         $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_INVALID'));
                         $arFields["PRODUCT_IBLOCK_ID"] = 0;
                         $boolResult = false;
                     } elseif (0 < (int) $arFields["PRODUCT_IBLOCK_ID"]) {
                         $arFields["PRODUCT_IBLOCK_ID"] = (int) $arFields["PRODUCT_IBLOCK_ID"];
                         $rsIBlocks = CIBlock::GetByID($arFields['PRODUCT_IBLOCK_ID']);
                         if (!($arIBlock = $rsIBlocks->Fetch())) {
                             $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_ABSENT'));
                             $arFields["PRODUCT_IBLOCK_ID"] = 0;
                             $boolResult = false;
                         } else {
                             if (0 < $ID && $arFields["PRODUCT_IBLOCK_ID"] == $ID) {
                                 $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_SELF'));
                                 $arFields["PRODUCT_IBLOCK_ID"] = 0;
                                 $boolResult = false;
                             } else {
                                 if (is_set($arFields, 'IBLOCK_ID') && $arFields["PRODUCT_IBLOCK_ID"] == $arFields['IBLOCK_ID']) {
                                     $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_SELF'));
                                     $arFields["PRODUCT_IBLOCK_ID"] = 0;
                                     $boolResult = false;
                                 }
                             }
                         }
                     }
                 }
                 if (is_set($arFields, 'SKU_PROPERTY_ID')) {
                     if (0 > (int) $arFields["SKU_PROPERTY_ID"]) {
                         $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_ID_INVALID'));
                         $arFields["SKU_PROPERTY_ID"] = 0;
                         $boolResult = false;
                     } else {
                         $arFields["SKU_PROPERTY_ID"] = (int) $arFields["SKU_PROPERTY_ID"];
                     }
                 }
                 if (is_set($arFields, 'PRODUCT_IBLOCK_ID') && is_set($arFields, 'SKU_PROPERTY_ID')) {
                     if (0 < $arFields["PRODUCT_IBLOCK_ID"] && 0 == $arFields['SKU_PROPERTY_ID']) {
                         $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_WITHOUT_SKU_PROP'));
                         $boolResult = false;
                     } elseif (0 == $arFields["PRODUCT_IBLOCK_ID"] && 0 < $arFields['SKU_PROPERTY_ID']) {
                         $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_WITHOUT_PRODUCT'));
                         $boolResult = false;
                     } elseif (0 < $arFields["PRODUCT_IBLOCK_ID"] && 0 < $arFields['SKU_PROPERTY_ID']) {
                         $rsProps = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $ID, 'ID' => $arFields['SKU_PROPERTY_ID'], 'ACTIVE' => 'Y'));
                         if ($arProp = $rsProps->Fetch()) {
                             if ('E' != $arProp['PROPERTY_TYPE'] || $arFields["PRODUCT_IBLOCK_ID"] != $arProp['LINK_IBLOCK_ID']) {
                                 $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_WITHOUT_PRODUCT'));
                                 $boolResult = false;
                             }
                         } else {
                             $arMsg[] = array('id' => 'SKU_PROPERTY_ID', "text" => Loc::getMessage('BT_MOD_CATALOG_ERR_SKU_PROP_NOT_FOUND'));
                             $boolResult = false;
                         }
                     }
                 }
             }
         }
     }
     if (!$boolResult) {
         $obError = new CAdminException($arMsg);
         $APPLICATION->ResetException();
         $APPLICATION->ThrowException($obError);
     }
     return $boolResult;
 }
示例#19
0
            } else {
                COption::SetOptionString("catalog", $name, $val, $arAllOptions[$i][1]);
            }
        }
    }
    LocalRedirect(CComponentEngine::MakePathFromTemplate($arResult['PATH_TO_EXCH1C_INDEX'], array()));
}
$tabNames = array(1 => "tab_catalog_import", 2 => "tab_catalog_export");
foreach ($arAllOptions as $Option) {
    $tabNumber = $Option[5];
    if (isset($Option[4]) && $Option[4] === 'hidden') {
        continue;
    }
    if ($Option[0] === '1C_CRM_CAT_XML_ID') {
        $ib = new CIBlock();
        $arIb = $ib->GetByID($iblockId)->Fetch();
        $val = is_array($arIb) && strlen($arIb['XML_ID']) > 0 ? $arIb['XML_ID'] : '';
        unset($ib);
    } else {
        $val = COption::GetOptionString("catalog", $Option[0], $Option[2]);
    }
    $type = $Option[3];
    $fieldParams = array('id' => $tabNumber . '_' . $Option[0], 'name' => $Option[1], 'type' => $type[0] === 'mlist' ? 'list' : $type[0], 'value' => $type[0] === 'mlist' ? explode(",", $val) : $val);
    if ($type[0] === 'list' || $type[0] === 'mlist') {
        $fieldParams['items'] = $type[1];
    }
    if ($type[0] === "text" || $type[0] === "date" || $type[0] === "file") {
        if (isset($type[1])) {
            $fieldParams['params'] = array("size" => $type[1]);
        }
    }
示例#20
0
 /**
  *Удаляем установленный инфоблок с примерами. Его ID хранится в опции модуля demo_iblock_id
  */
 function removeSampleIblock()
 {
     global $DB;
     $iIblockId = intval(COption::GetOptionString("bit.includer", "demo_iblock_id", "0"));
     if ($iIblockId > 0 && CModule::IncludeModule('iblock')) {
         $res = CIBlock::GetByID($iIblockId);
         if ($arIblock = $res->GetNext()) {
             $DB->StartTransaction();
             if (!CIBlock::Delete($arIblock['ID'])) {
                 $DB->Rollback();
             } else {
                 $DB->Commit();
             }
             //Удаляем тип инфоблока если в нем нет других инфоблоков
             $res = CIBlock::GetList(array(), array('TYPE' => $arIblock['IBLOCK_TYPE_ID'], 'SITE_ID' => $arIblock['LID'], 'ACTIVE' => 'Y'), true);
             if (intval($res->SelectedRowsCount()) == 0) {
                 $DB->StartTransaction();
                 if (!CIBlockType::Delete($arIblock['IBLOCK_TYPE_ID'])) {
                     $DB->Rollback();
                 } else {
                     $DB->Commit();
                 }
             }
         }
     }
 }
示例#21
0
<?php

define("STOP_STATISTICS", true);
define("BX_SECURITY_SHOW_MESSAGE", true);
define('NO_AGENT_CHECK', true);
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php";
if (check_bitrix_sessid()) {
    echo "<script type=\"text/javascript\">\n";
    $bNoTree = True;
    $bIBlock = false;
    $IBLOCK_ID = intval($_REQUEST['IBLOCK_ID']);
    if ($IBLOCK_ID > 0) {
        CModule::IncludeModule("iblock");
        $rsIBlocks = CIBlock::GetByID($IBLOCK_ID);
        if ($arIBlock = $rsIBlocks->Fetch()) {
            $bRightBlock = CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_admin_display");
            if ($bRightBlock) {
                echo "window.parent.Tree=new Array();";
                echo "window.parent.Tree[0]=new Array();";
                $bIBlock = true;
                $db_section = CIBlockSection::GetList(array("LEFT_MARGIN" => "ASC"), array("IBLOCK_ID" => $IBLOCK_ID));
                while ($ar_section = $db_section->Fetch()) {
                    $bNoTree = False;
                    if (intval($ar_section["RIGHT_MARGIN"]) - intval($ar_section["LEFT_MARGIN"]) > 1) {
                        ?>
window.parent.Tree[<?php 
                        echo intval($ar_section["ID"]);
                        ?>
]=new Array();<?php 
                    }
                    ?>
示例#22
0
function seo_getIblock($iblockId, $sectionId, $sectionChecked, $elementChecked, $arSectionChecked = array(), $arElementChecked = array())
{
    $dbIblock = \CIBlock::GetByID($iblockId);
    $arIBlock = $dbIblock->Fetch();
    if (is_array($arIBlock)) {
        $bSection = strlen($arIBlock['SECTION_PAGE_URL']) > 0;
        $bElement = strlen($arIBlock['DETAIL_PAGE_URL']) > 0;
        $dbRes = \CIBlockSection::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $iblockId, 'SECTION_ID' => $sectionId, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'Y'));
        $bFound = false;
        while ($arRes = $dbRes->Fetch()) {
            $r = RandString(8);
            $d = $arRes['ID'];
            $bSectionChecked = $bSection && ($arSectionChecked[$d] === 'Y' || $sectionChecked && $arSectionChecked[$d] !== 'N');
            $bElementChecked = $bElement && ($arElementChecked[$d] === 'Y' || $elementChecked && $arElementChecked[$d] !== 'N');
            if (!$bFound) {
                $bFound = true;
                ?>
<table class="internal" style="width: 100%;">
	<tr class="heading">
		<td colspan="2"><?php 
                echo Loc::getMessage('SEO_SITEMAP_IBLOCK_SECTION_NAME');
                ?>
</td>
		<td width="100"><?php 
                echo Loc::getMessage('SEO_SITEMAP_IBLOCK_SECTION_SECTION');
                ?>
</td>
		<td width="100"><?php 
                echo Loc::getMessage('SEO_SITEMAP_IBLOCK_SECTION_ELEMENTS');
                ?>
</td>
	</tr>
<?php 
            }
            ?>
	<tr>
		<td width="20"><span onclick="loadIblock(this, '<?php 
            echo $arRes['IBLOCK_ID'];
            ?>
', '<?php 
            echo $d;
            ?>
', '<?php 
            echo $r;
            ?>
', BX('IBLOCK_SECTION_SECTION_<?php 
            echo $d;
            ?>
').checked, BX('IBLOCK_SECTION_ELEMENT_<?php 
            echo $d;
            ?>
').checked);" class="sitemap-tree-icon-iblock"></span></td>
		<td><a href="iblock_list_admin.php?lang=<?php 
            echo LANGUAGE_ID;
            ?>
&amp;IBLOCK_ID=<?php 
            echo $arRes['IBLOCK_ID'];
            ?>
&amp;find_section_section=<?php 
            echo $d;
            ?>
"><?php 
            echo Converter::getHtmlConverter()->encode($arRes['NAME']);
            ?>
</a></td>
		<td align="center"><input type="hidden" name="IBLOCK_SECTION_SECTION[<?php 
            echo $iblockId;
            ?>
][<?php 
            echo $d;
            ?>
]" value="N" /><input type="checkbox" name="IBLOCK_SECTION_SECTION[<?php 
            echo $iblockId;
            ?>
][<?php 
            echo $d;
            ?>
]" id="IBLOCK_SECTION_SECTION_<?php 
            echo $d;
            ?>
" value="Y"<?php 
            echo $bSection ? '' : ' disabled="disabled"';
            echo $bSectionChecked ? ' checked="checked"' : '';
            ?>
 data-type="section" onclick="checkAllSection('<?php 
            echo $r;
            ?>
', this.checked);" />&nbsp;<label for="IBLOCK_SECTION_SECTION_<?php 
            echo $d;
            ?>
"><?php 
            echo Loc::getMessage('MAIN_YES');
            ?>
</label></td>
		<td align="center"><input type="hidden" name="IBLOCK_SECTION_ELEMENT[<?php 
            echo $iblockId;
            ?>
][<?php 
            echo $d;
            ?>
]" value="N" /><input type="checkbox" name="IBLOCK_SECTION_ELEMENT[<?php 
            echo $iblockId;
            ?>
][<?php 
            echo $d;
            ?>
]" id="IBLOCK_SECTION_ELEMENT_<?php 
            echo $d;
            ?>
" value="Y"<?php 
            echo $bElement ? '' : ' disabled="disabled"';
            echo $bElementChecked ? ' checked="checked"' : '';
            ?>
 data-type="element" onclick="checkAllElement('<?php 
            echo $r;
            ?>
', this.checked);" />&nbsp;<label for="IBLOCK_SECTION_ELEMENT_<?php 
            echo $d;
            ?>
"><?php 
            echo Loc::getMessage('MAIN_YES');
            ?>
</label></td>
	</tr>
	<tr style="display: none" id="subdirs_row_<?php 
            echo $r;
            ?>
">
		<td colspan="4" id="subdirs_<?php 
            echo $r;
            ?>
" align="center"></td>
	</tr>
<?php 
        }
        if (!$bFound) {
            echo Loc::getMessage('SEO_SITEMAP_NO_DIRS_FOUND');
        }
    }
}
示例#23
0
     extract($cache->GetVars());
     if ($bDisplayPanel) {
         CIBlock::ShowPanel($IBLOCK_ID, 0, $ID, $IBLOCK_TYPE_ID);
     }
     $GLOBALS["APPLICATION"]->SetTitle($NAME);
     for ($i = 0; $i < count($arSectionPath4Cache); $i++) {
         $GLOBALS["APPLICATION"]->AddChainItem($arSectionPath4Cache[$i][0], $arSectionPath4Cache[$i][1]);
     }
     $cache->Output();
 } else {
     if ($CACHE_TIME > 0) {
         $cache->StartDataCache($CACHE_TIME, $cache_id, "/" . SITE_ID . "/catalog/uni_section.php/");
     }
     $arSectionPath4Cache = array();
     $arFolder = False;
     $dbIBlock = CIBlock::GetByID($IBLOCK_ID);
     if ($arIBlock = $dbIBlock->Fetch()) {
         if (strlen($DETAIL_PAGE_TEMPLATE) <= 0) {
             $DETAIL_PAGE_TEMPLATE = $arIBlock["DETAIL_PAGE_URL"];
         }
         if ($bDisplayPanel) {
             CIBlock::ShowPanel($IBLOCK_ID, 0, $ID, $arIBlock["IBLOCK_TYPE_ID"]);
         }
         $strPath_tmp = UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => 0));
         $GLOBALS["APPLICATION"]->AddChainItem($arIBlock["NAME"], $strPath_tmp);
         $arSectionPath4Cache[] = array($arIBlock["NAME"], $strPath_tmp);
         if (IntVal($ID) > 0) {
             $dbFolder = CIBlockSection::GetByID($ID);
             if ($arFolder = $dbFolder->Fetch()) {
                 $dbSectionPath = CIBlockSection::GetNavChain($IBLOCK_ID, $ID);
                 while ($arSectionPath = $dbSectionPath->Fetch()) {
示例#24
0
     while ($arRes = $rsIBlocks->Fetch()) {
         $arID[] = $arRes['ID'];
     }
 }
 foreach ($arID as $ID) {
     if (strlen($ID) <= 0) {
         continue;
     }
     switch ($_REQUEST['action']) {
         case "delete":
             if (!CIBlockRights::UserHasRightTo($ID, $ID, "iblock_delete")) {
                 break;
             }
             @set_time_limit(0);
             $DB->StartTransaction();
             $rsIBlock = CIBlock::GetByID($ID);
             $arIBlock = $rsIBlock->GetNext();
             if (!CIBlock::Delete($ID)) {
                 $DB->Rollback();
                 $lAdmin->AddGroupError(GetMessage("IBLOCK_ADM_DELETE_ERROR"), $ID);
             } else {
                 if (COption::GetOptionString("iblock", "event_log_iblock", "N") === "Y") {
                     $res_log["NAME"] = $arIBlock["NAME"];
                     CEventLog::Log("IBLOCK", "IBLOCK_DELETE", "iblock", $ID, serialize($res_log));
                 }
             }
             $DB->Commit();
             break;
         case "activate":
         case "deactivate":
             if (!CIBlockRights::UserHasRightTo($ID, $ID, "iblock_delete")) {
示例#25
0
function GetIBlockTypeID($IBLOCK_ID)
{
	$IBLOCK_ID = IntVal($IBLOCK_ID);
	if ($IBLOCK_ID <= 0)
		return '';
	static $cache = array();
	if(!isset($cache[$IBLOCK_ID]))
	{
		$rsIBlock = CIBlock::GetByID($IBLOCK_ID);
		if(!($cache[$IBLOCK_ID] = $rsIBlock->GetNext()))
			$cache[$IBLOCK_ID] = array("IBLOCK_TYPE_ID"=>"");
	}
	return $cache[$IBLOCK_ID]["IBLOCK_TYPE_ID"];
}
示例#26
0
        $arTypesEx[$arRes["ID"]] = "[" . $arRes["ID"] . "] " . $arIBType["NAME"];
    }
}
$arIBlocks = array("all" => GetMessage("CP_BMS_ALL"));
if (in_array("all", $arCurrentValues["IBLOCK_TYPE"])) {
    $arCurrentValues["IBLOCK_TYPE"] = array();
}
$db_iblock = CIBlock::GetList(array("SORT" => "ASC"), array("SITE_ID" => $_REQUEST["site"], "TYPE" => $arCurrentValues["IBLOCK_TYPE"]));
while ($arRes = $db_iblock->Fetch()) {
    $arIBlocks[$arRes["ID"]] = $arRes["NAME"];
}
if (is_array($arCurrentValues["IBLOCK_ID"])) {
    if (in_array("all", $arCurrentValues["IBLOCK_ID"])) {
        $arCurrentValues["IBLOCK_ID"] = array();
    }
}
$db_list = CIBlockSection::GetList(array("IBLOCK_ID" => "asc"), array('IBLOCK_ID' => $arCurrentValues["IBLOCK_ID"]), false);
while ($ar_result = $db_list->Fetch()) {
    $ibl = CIBlock::GetByID($ar_result[IBLOCK_ID])->Fetch();
    $arSection[$ar_result["ID"]] = "[" . $ar_result["ID"] . "] " . "[{$ibl[NAME]}] " . $ar_result["NAME"];
}
$depth_level = array("1" => GetMessage("CP_BMS_DEPTH_LEVEL_1"), "2" => GetMessage("CP_BMS_DEPTH_LEVEL_2"), "3" => GetMessage("CP_BMS_DEPTH_LEVEL_3"), "4" => GetMessage("CP_BMS_DEPTH_LEVEL_4"));
$depth_level_sections = array('0' => GetMessage('CP_BMS_ALL'), '1' => '1', '2' => '2', '3' => '3', '4' => '4');
$hide_values = array("ACTIVE" => GetMessage("HIDE_ELEMENT_ACTIVE"), "N" => GetMessage("HIDE_ELEMENT_NOT"));
if (CModule::IncludeModule("catalog")) {
    $hide_values["AVAILABLE"] = GetMessage("HIDE_ELEMENT_AVAILABLE");
}
$arComponentParameters = array("GROUPS" => array("SORT_PARAMS" => array("NAME" => GetMessage("SORT_PARAMS"), "SORT" => 2000)), "PARAMETERS" => array("ID" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_ID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["ID"]}'), "IBLOCK_TYPE" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_IBLOCK_TYPE"), "TYPE" => "LIST", "VALUES" => $arTypesEx, "MULTIPLE" => "Y", "DEFAULT" => "catalog", "ADDITIONAL_VALUES" => "Y", "REFRESH" => "Y"), "IBLOCK_TYPE_MASK" => array("PARENT" => "BASE", "NAME" => GetMessage("IBLOCK_TYPE_MASK"), "TYPE" => "STRING", "MULTIPLE" => "Y", "DEFAULT" => "catalog_%", "ADDITIONAL_VALUES" => "Y"), "IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_IBLOCK_ID"), "TYPE" => "LIST", "VALUES" => $arIBlocks, "DEFAULT" => '1', "MULTIPLE" => "Y", "ADDITIONAL_VALUES" => "N", "REFRESH" => "Y"), "DEPTH_LEVEL_START" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_DEPTH_LEVEL_START"), "TYPE" => "LIST", "VALUES" => $depth_level, "DEFAULT" => "1"), "DEPTH_LEVEL_FINISH" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_DEPTH_LEVEL_FINISH"), "TYPE" => "LIST", "VALUES" => $depth_level, "DEFAULT" => "4"), "DEPTH_LEVEL_SECTIONS" => array("PARENT" => "BASE", "NAME" => GetMessage("CP_BMS_DEPTH_LEVEL_SECTIONS"), "TYPE" => "LIST", "VALUES" => $depth_level_sections, "DEFAULT" => "0"), "IBLOCK_TYPE_URL" => array("PARENT" => "BASE", "NAME" => GetMessage("IBLOCK_TYPE_URL"), "TYPE" => "STRING", "DEFAULT" => "/catalog/#IBLOCK_TYPE#/"), "IBLOCK_TYPE_URL_REPLACE" => array("PARENT" => "BASE", "NAME" => GetMessage("IBLOCK_TYPE_URL_REPLACE"), "TYPE" => "STRING", "DEFAULT" => "catalog_"), "IBLOCK_TYPE_SORT_FIELD" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("IBLOCK_TYPE_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("name" => GetMessage("IBLOCK_SORT_NAME"), "sort" => GetMessage("IBLOCK_SORT_SORT"), "id" => GetMessage("IBLOCK_SORT_ID")), "DEFAULT" => "id"), "IBLOCK_TYPE_SORT_ORDER" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("SORT_ORDER"), "TYPE" => "LIST", "VALUES" => array("asc" => GetMessage("IBLOCK_SORT_ASC"), "desc" => GetMessage("IBLOCK_SORT_DESC")), "DEFAULT" => "asc"), "IBLOCK_SORT_FIELD" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("IBLOCK_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("id" => GetMessage("IBLOCK_SORT_ID"), "iblock_type" => GetMessage("IBLOCK_SORT_IBLOCK_TYPE"), "name" => GetMessage("IBLOCK_SORT_NAME"), "active" => GetMessage("IBLOCK_SORT_ACTIVE"), "code" => GetMessage("IBLOCK_SORT_CODE"), "sort" => GetMessage("IBLOCK_SORT_SORT"), "element_cnt" => GetMessage("IBLOCK_SORT_ELEMENT_CNT"), "timestamp_x" => GetMessage("IBLOCK_SORT_DATE")), "DEFAULT" => "sort"), "IBLOCK_SORT_ORDER" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("SORT_ORDER"), "TYPE" => "LIST", "VALUES" => array("asc" => GetMessage("IBLOCK_SORT_ASC"), "desc" => GetMessage("IBLOCK_SORT_DESC")), "DEFAULT" => "asc"), "SECTION_SORT_FIELD" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("SECTION_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("sort" => GetMessage("IBLOCK_SORT_SORT")), "DEFAULT" => "sort"), "SECTION_SORT_ORDER" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("SORT_ORDER"), "TYPE" => "LIST", "VALUES" => array("asc" => GetMessage("IBLOCK_SORT_ASC"), "desc" => GetMessage("IBLOCK_SORT_DESC")), "DEFAULT" => "asc"), "ELEMENT_SORT_FIELD" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("ELEMENT_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("id" => GetMessage("ELEMENT_SORT_ID"), "sort" => GetMessage("IBLOCK_SORT_SORT"), "timestamp_x" => GetMessage("IBLOCK_SORT_DATE"), "name" => GetMessage("IBLOCK_SORT_NAME"), "active_from" => GetMessage("ELEMENT_SORT_ACTIVE_FROM"), "active_to" => GetMessage("ELEMENT_SORT_ACTIVE_TO"), "code" => GetMessage("IBLOCK_SORT_CODE"), "iblock_id" => GetMessage("ELEMENT_SORT_IBLOCK_ID"), "modified_by" => GetMessage("ELEMENT_SORT_MODIFIED_BY"), "active" => GetMessage("IBLOCK_SORT_ACTIVE"), "rand" => GetMessage("ELEMENT_RAND"), "xml_id" => GetMessage("ELEMENT_XML_ID"), "tags" => GetMessage("ELEMENT_TAGS"), "created" => GetMessage("ELEMENT_CREATED"), "created_date" => GetMessage("ELEMENT_CREATED_DATE")), "DEFAULT" => "sort"), "ELEMENT_SORT_ORDER" => array("PARENT" => "SORT_PARAMS", "NAME" => GetMessage("SORT_ORDER"), "TYPE" => "LIST", "VALUES" => array("asc" => GetMessage("IBLOCK_SORT_ASC"), "nulls,asc" => GetMessage("ELEMENT_SORT_NULLS_ASC"), "asc,nulls" => GetMessage("ELEMENT_SORT_ASC_NULLS"), "desc" => GetMessage("IBLOCK_SORT_DESC"), "nulls,desc" => GetMessage("ELEMENT_SORT_NULLS_DESC"), "desc,nulls" => GetMessage("ELEMENT_SORT_DESC_NULLS")), "DEFAULT" => "asc"), "CACHE_TIME" => array("DEFAULT" => 3600), "HIDE_ELEMENT" => array("PARENT" => "BASE", "NAME" => GetMessage("HIDE_ELEMENT"), "TYPE" => "LIST", "VALUES" => $hide_values, "DEFAULT" => "N"), "ELEMENT_CNT" => array("PARENT" => "BASE", "NAME" => GetMessage("ELEMENT_CNT"), "TYPE" => "CHECKBOX", "DEFAULT" => "N")));
if (CModule::IncludeModule("catalog")) {
    $arComponentParameters['PARAMETERS']['ELEMENT_CNT_AVAILABLE'] = array("PARENT" => "BASE", "NAME" => GetMessage("ELEMENT_CNT_AVAILABLE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N");
}
示例#27
0
 function GetIBlockByID($ID)
 {
     if (!CModule::IncludeModule("iblock")) {
         return false;
     }
     $ID = IntVal($ID);
     $dbIBlock = CIBlock::GetByID($ID);
     $arIBlock = $dbIBlock->GetNext();
     if ($arIBlock) {
         $arIBlock["NAME_FORMATTED"] = $arIBlock["NAME"];
         return $arIBlock;
     } else {
         return false;
     }
 }
示例#28
0
 protected function getIblockProps($serverName)
 {
     $dbIblock = \CIBlock::GetByID($this->iBlockId);
     $arIblock = $dbIblock->Fetch();
     if ($arIblock) {
         if (strlen($serverName) <= 0) {
             if (strlen($arIblock['SERVER_NAME']) <= 0) {
                 $b = "sort";
                 $o = "asc";
                 $rsSite = \CSite::GetList($b, $o, array("LID" => $arIblock["LID"]));
                 if ($arSite = $rsSite->Fetch()) {
                     $arIblock["SERVER_NAME"] = $arSite["SERVER_NAME"];
                 }
                 if (strlen($arIblock["SERVER_NAME"]) <= 0 && defined("SITE_SERVER_NAME")) {
                     $arIblock["SERVER_NAME"] = SITE_SERVER_NAME;
                 }
                 if (strlen($arIblock["SERVER_NAME"]) <= 0) {
                     $arIblock["SERVER_NAME"] = \COption::GetOptionString("main", "server_name", "");
                 }
             }
         } else {
             $arIblock['SERVER_NAME'] = $serverName;
         }
         $arIblock['PROPERTY'] = array();
         $rsProps = \CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $this->iBlockId, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N'));
         while ($arProp = $rsProps->Fetch()) {
             $arProp['ID'] = (int) $arProp['ID'];
             $arProp['USER_TYPE'] = (string) $arProp['USER_TYPE'];
             $arProp['CODE'] = (string) $arProp['CODE'];
             $arIblock['PROPERTY'][$arProp['ID']] = $arProp;
         }
     }
     return $arIblock;
 }
示例#29
0
 function OnAfterIBlockElementDelete($arFields)
 {
     // news
     if (!array_key_exists("WF_STATUS_ID", $arFields) || $arFields["WF_STATUS_ID"] == 1) {
         $dbIBlock = CIBlock::GetByID($arFields["IBLOCK_ID"]);
         if ($arIBlock = $dbIBlock->Fetch()) {
             $rsSite = CIBlock::GetSite($arFields["IBLOCK_ID"]);
             if ($arSite = $rsSite->Fetch()) {
                 $site_id = $arSite["SITE_ID"];
             }
             $val = COption::GetOptionString("intranet", "sonet_log_news_iblock", "", $site_id);
             if (strlen($val) > 0) {
                 $arIBCode = unserialize($val);
                 if (!is_array($arIBCode) || count($arIBCode) <= 0) {
                     $arIBCode = array();
                 }
             } else {
                 $arIBCode = array();
             }
             if (in_array($arIBlock["CODE"], $arIBCode) && CModule::IncludeModule("socialnetwork")) {
                 CSocNetAllowed::GetAllowedEntityTypes();
                 $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_NEWS, "EVENT_ID" => "news", "SOURCE_ID" => $arFields["ID"]), false, false, array("ID"));
                 while ($arRes = $dbRes->Fetch()) {
                     CSocNetLog::Delete($arRes["ID"]);
                 }
             }
         }
     }
     // --news
 }
示例#30
0
 public static function GetDefaultCatalogXmlId()
 {
     static $bCheck = true;
     $result = null;
     if (self::$DEFAULT_CATALOG_XML_ID === null && $bCheck) {
         $bCheck = false;
         $catalogId = intval(self::EnsureDefaultExists());
         if ($catalogId > 0) {
             $ib = new CIBlock();
             $arIb = $ib->GetByID($catalogId)->Fetch();
             if (is_array($arIb) && strlen($arIb['XML_ID']) > 0) {
                 $result = self::$DEFAULT_CATALOG_XML_ID = $arIb['XML_ID'];
             }
         }
     }
     return $result;
 }