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>'; }
function AttachUsersToIBlock($iblockID) { $iblockID = intval($iblockID); if (CModule::IncludeModule("iblock") && $iblockID > 0) { $dbIblock = CIBlock::GetByID($iblockID); if ($dbIblock->Fetch()) { $this->attachIBlockID = $iblockID; } } }
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; }
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)); } }
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"]; }
<?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']))); }
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;
<?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));
<?if(CModule::IncludeModule("iblock")) { $res = CIBlock::GetByID($arParams["IBLOCK_ID"]); if($ar_res = $res->GetNext()) $arResult["IBLOCK_NAME"] = $ar_res['NAME']; } ?>
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; }
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); } } } } }
<?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"]);
/** * @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; }
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 {
<?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('<', '<', $content); ?> </textarea> <?php include $_SERVER['DOCUMENT_ROOT'] . '/local/vendor/techart/bitrix.tao/include/epilog_admin.php';
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; }
} 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]); } }
/** *Удаляем установленный инфоблок с примерами. Его 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(); } } } } }
<?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 } ?>
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; ?> &IBLOCK_ID=<?php echo $arRes['IBLOCK_ID']; ?> &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);" /> <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);" /> <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'); } } }
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()) {
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")) {
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"]; }
$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"); }
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; } }
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; }
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 }
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; }