/** * Генерация создания * * generateAddCode * @param array $params * @return string * @throws \Exception */ public function generateAddCode($params) { $this->checkParams($params); $return = ""; $hlBlockData = $this->ownerItemDbData['hlblockData']; if ($hlFieldData = $this->ownerItemDbData['hlFieldData']) { unset($hlFieldData['ID']); unset($hlFieldData['ENTITY_ID']); # add iblock code to if (($hlFieldData['USER_TYPE_ID'] == "iblock_element" || $hlFieldData['USER_TYPE_ID'] == "iblock_section") && isset($hlFieldData['SETTINGS']['IBLOCK_ID'])) { if (!empty($hlFieldData['SETTINGS']['IBLOCK_ID'])) { $iblockId = $hlFieldData['SETTINGS']['IBLOCK_ID']; unset($hlFieldData['SETTINGS']['IBLOCK_ID']); $rsIBlock = $this->iblock->GetList(array(), array('ID' => $iblockId, 'CHECK_PERMISSIONS' => 'N')); if ($arIBlock = $rsIBlock->Fetch()) { $hlFieldData['SETTINGS']['IBLOCK_CODE'] = $arIBlock['CODE']; } else { throw new BimException(' Not found iblock with id ' . $iblockId); } } } $return = $this->getMethodContent('Bim\\Db\\Iblock\\HighloadblockFieldIntegrate', 'Add', array($hlBlockData['NAME'], $hlFieldData)); } return $return; }
/** * Генерация создания Информационного блока * * generateAddCode * @param array $IblockCode * @return bool|string */ public function generateAddCode($IblockCode) { $return = array(); $iblockObject = $this->iblock->GetList(array(), array('CODE' => $IblockCode, 'CHECK_PERMISSIONS' => 'N')); if ($item = $iblockObject->Fetch()) { # Установка групп пользователей $this->setUserGroupId($item['ID'], $item); $item['FIELDS'] = \CIBlock::GetFields($item['ID']); Helper::unsetFields(array('ID'), $item); if ($return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockIntegrate', 'Add', array($item))) { $IblockProperty = new \CIBlockProperty(); $iblockPropertyQuery = $IblockProperty->GetList(array(), array('IBLOCK_CODE' => $item['CODE'])); while ($iblockProperty = $iblockPropertyQuery->Fetch()) { Helper::unsetFields(array('ID'), $iblockProperty); $iblockProperty['IBLOCK_CODE'] = $item['CODE']; $propertyQuery = \CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $iblockProperty['IBLOCK_ID'], "CODE" => $iblockProperty['CODE'])); while ($propertyValues = $propertyQuery->Fetch()) { Helper::unsetFields(array('ID', 'PROPERTY_ID'), $propertyValues); $iblockProperty['VALUES'][] = $propertyValues; } if (!is_null($iblockProperty['LINK_IBLOCK_ID'])) { $linkedIBlock = $this->iblock->GetList(array(), array('ID' => $iblockProperty['LINK_IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N'))->Fetch(); $iblockProperty['LINK_IBLOCK_CODE'] = $linkedIBlock['CODE']; } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockPropertyIntegrate', 'Add', array($iblockProperty)); } return implode(PHP_EOL, $return); } else { return false; } } else { return false; } }
/** * Генерация создания * * generateAddCode * @param array $hlBlockId * @return string * @throws \Exception */ public function generateAddCode($hlBlockId) { $return = array(); $hlBlock = HL\HighloadBlockTable::getById($hlBlockId)->fetch(); if (!$hlBlock) { throw new BimException('Not found highload block with id = ' . $hlBlockId); } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\HighloadblockIntegrate', 'Add', array($hlBlock['NAME'], $hlBlock['TABLE_NAME'])); $hlQuery = $this->userType->GetList(array(), array("ENTITY_ID" => "HLBLOCK_" . $hlBlockId)); while ($hlData = $hlQuery->Fetch()) { $fullData = $this->userType->GetByID($hlData['ID']); unset($fullData['ID']); unset($fullData['ENTITY_ID']); if (($fullData['USER_TYPE_ID'] == "iblock_element" || $fullData['USER_TYPE_ID'] == "iblock_section") && isset($fullData['SETTINGS']['IBLOCK_ID'])) { if (!empty($fullData['SETTINGS']['IBLOCK_ID'])) { $iblockId = $fullData['SETTINGS']['IBLOCK_ID']; unset($fullData['SETTINGS']['IBLOCK_ID']); $blockQuery = $this->iblock->GetList(array(), array('ID' => $iblockId, 'CHECK_PERMISSIONS' => 'N')); if ($iBlockData = $blockQuery->Fetch()) { $fullData['SETTINGS']['IBLOCK_CODE'] = $iBlockData['CODE']; } else { throw new BimException(' Not found iblock with id ' . $iblockId); } } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\HighloadblockFieldIntegrate', 'Add', array($hlBlock['NAME'], $fullData)); } return implode(PHP_EOL, $return); }
/** * Add * @param $arFields * @return bool * @throws \Exception */ public static function Add($arFields) { $iblock = new \CIBlock(); if (isset($arFields['SORT'])) { if (!is_int($arFields['SORT'])) { if (intval($arFields['SORT'])) { $arFields['SORT'] = intval($arFields['SORT']); } else { $arFields['SORT'] = 500; } } } else { $arFields['SORT'] = 500; } # default $arDefaultValues = array('MULTIPLE' => false, 'IS_REQUIRED' => false, 'ACTIVE' => true, 'PROPERTY_TYPE' => 'S', 'USER_TYPE' => false, 'FILE_TYPE' => '', 'LIST_TYPE' => 'L', 'ROW_COUNT' => 1, 'COL_COUNT' => 30, 'LINK_IBLOCK_ID' => null, 'DEFAULT_VALUE' => null, 'WITH_DESCRIPTION' => 'N', 'SEARCHABLE' => 'N', 'FILTRABLE' => 'N', 'MULTIPLE_CNT' => 5, 'HINT' => '', 'SECTION_PROPERTY' => 'Y', 'SMART_FILTER' => 'N', 'USER_TYPE_SETTINGS' => array(), 'VALUES' => array()); if ($arFields['IBLOCK_CODE']) { unset($arFields['IBLOCK_ID']); $rsIBlock = $iblock->GetList(array(), array('CODE' => $arFields['IBLOCK_CODE'], 'CHECK_PERMISSIONS' => 'N')); if ($arIBlock = $rsIBlock->Fetch()) { $arFields['IBLOCK_ID'] = $arIBlock['ID']; } else { throw new BimException(__METHOD__ . ' Not found iblock with code ' . $arFields['IBLOCK_CODE']); } } if (!strlen($arFields['CODE'])) { throw new BimException(__METHOD__ . ' Not found property code'); } $iblockPropDbRes = \CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $arFields['IBLOCK_ID'], 'CODE' => $arFields['CODE'])); if ($iblockPropDbRes !== false && $iblockPropDbRes->SelectedRowsCount()) { throw new BimException(__METHOD__ . 'Property with code = "' . $arFields['CODE'] . '" '); } if ($arFields['LINK_IBLOCK_CODE']) { unset($arFields['LINK_IBLOCK_ID']); $rsIBlock = $iblock->GetList(array(), array('CODE' => $arFields['LINK_IBLOCK_CODE'], 'CHECK_PERMISSIONS' => 'N')); if ($arIBlock = $rsIBlock->Fetch()) { $arFields['LINK_IBLOCK_ID'] = $arIBlock['ID']; } } foreach ($arDefaultValues as $DefaultName => $DefaultValue) { if (!isset($arFields[$DefaultName]) || empty($arFields[$DefaultName])) { $arFields[$DefaultName] = $DefaultValue; } } $objCIBlockProperty = new \CIBlockProperty(); unset($arFields['ID']); $iId = $objCIBlockProperty->Add($arFields); if ($iId) { return $iId; } else { throw new BimException(__METHOD__ . ' ' . $objCIBlockProperty->LAST_ERROR); } }
public function selectIBlock($iblockCode) { $this->_bIBlockSelected = false; if (!array_key_exists($iblockCode, $this->_arConfig['IBLOCK'])) { return false; } $arConfig =& $this->_arConfig['IBLOCK'][$iblockCode]; $this->_iblockCode = $iblockCode; $this->_iblockXmlID = $arConfig['XML_ID']; $this->_iblockType = $arConfig['IBLOCK_TYPE_ID']; $this->_iblockXMLFile = WIZARD_RELATIVE_PATH . '/site/services/iblock/xml/' . LANGUAGE_ID . '/' . $arConfig['XML_FILE']; $this->_iblockXMLDir = WIZARD_RELATIVE_PATH . '/site/services/iblock/xml/' . LANGUAGE_ID . '/' . str_replace('.xml', '_files', $arConfig['XML_FILE']); $this->_iblockFormSettingsFile = WIZARD_RELATIVE_PATH . '/site/services/iblock/xml/' . LANGUAGE_ID . '/' . $arConfig['FORM_SETTINGS']; if (!is_file($_SERVER['DOCUMENT_ROOT'] . $this->_iblockXMLFile) || !file_exists($_SERVER['DOCUMENT_ROOT'] . $this->_iblockXMLFile)) { return false; } if (!is_dir($_SERVER['DOCUMENT_ROOT'] . $this->_iblockXMLDir) || !file_exists($_SERVER['DOCUMENT_ROOT'] . $this->_iblockXMLDir)) { return false; } $rsIBlock = \CIBlock::GetList(array(), array("XML_ID" => $this->_iblockXmlID, "TYPE" => $this->_iblockType)); if ($arIBlock = $rsIBlock->Fetch()) { $this->_iblockID = $arIBlock['ID']; } $this->_bIBlockSelected = true; return true; }
function storeResult($arResult, $arParams) { $iblock = CIBlock::GetList( array(), array( 'TYPE' => $arParams['IBLOCK_TYPE'], 'CODE' => $arParams['IBLOCK_CODE'], ) ); $iblock = $iblock->Fetch(); $el = new CIBlockElement; $props = array(); foreach ($arResult['FIELDS_LIST'] as $arField) { if ($arField['FIELD_TYPE'] == 'TEXT' || $arField['FIELD_TYPE'] == 'NUMBER') { $props[$arField['CODE']] = array( 'VALUE' => $arResult['POST_DATA']['~'.$arField['CODE']], ); } elseif ($arField['FIELD_TYPE'] == 'TEXTAREA') { $props[$arField['CODE']] = array( 'VALUE' => array( 'TYPE' => 'text', 'TEXT' => $arResult['POST_DATA']['~'.$arField['CODE']], ), ); } elseif ($arField['FIELD_TYPE'] == 'LIST') { $propEnum = CIBlockPropertyEnum::GetList( array(), array( 'XML_ID' => $arResult['POST_DATA']['~'.$arField['CODE']], 'CODE' => $arField['CODE'], 'IBLOCK_ID' => $iblock['ID'], ) ); $propEnum = $propEnum->Fetch(); if ( ! $propEnum) return false; $props[$arField['CODE']] = array( 'VALUE' => $propEnum['ID'], ); } } $res = $el->Add(array( 'IBLOCK_TYPE' => $arParams['IBLOCK_TYPE'], 'IBLOCK_ID' => $iblock['ID'], 'ACTIVE' => 'Y', 'PROPERTY_VALUES' => $props, 'ACTIVE_FROM' => ConvertTimeStamp(time()+CTimeZone::GetOffset(), 'FULL'), 'NAME' => 'Form result', # !!! NEED TO REPLACE TO DEFAULT VALUE )); if (!$res) { return array( 'MESSAGE' => $el->LAST_ERROR, ); } return true; }
/** * Ищент инфоблок по указанному фильтру и добавляет его в общий список * @param array $filter * @return array */ protected static function findBy(array $filter) { if (!\CModule::IncludeModule('iblock')) { return null; } $res = \CIBlock::GetList(array(), array_merge($filter, ['CHECK_PERMISSIONS' => 'N']), false); if ($ob = $res->GetNext()) { $iblock = array(); foreach ($ob as $key => $value) { if (strpos($key, '~') !== 0) { continue; } $iblock[substr($key, 1)] = $value; } $pRes = \CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $ob['ID'])); while ($pOb = $pRes->GetNext()) { $property = array(); foreach ($pOb as $key => $value) { if (strpos($key, '~') !== 0) { continue; } $property[substr($key, 1)] = $value; } $iblock['PROPERTIES'][] = $property; } self::$_list[] = $iblock; return $iblock; } return null; }
public function GetIBlockTypes($lid, $catalogOnly = true, $hideOffers = true) { CModule::IncludeModule("iblock"); $arTypeAll = array(); $dbIBlock = CIBlock::GetList(array("IBLOCK_TYPE" => "ASC", "NAME" => "ASC"), array("LID" => $lid)); while ($arIBlock = $dbIBlock->Fetch()) { if (true == $catalogOnly) { if (CModule::IncludeModule("catalog") && CCatalog::GetByID($arIBlock["ID"])) { if ($hideOffers == true && CCatalogSKU::GetInfoByOfferIBlock($arIBlock["ID"])) { continue; } $arTypeIblock[] = $arIBlock; } } else { $arTypeIblock[] = $arIBlock; } } unset($dbIBlock); foreach ($arTypeIblock as $arIBlock) { $arType = CIBlockType::GetByIDLang($arIBlock["IBLOCK_TYPE_ID"], LANG); $arTypeAll[$arType["ID"]]["ID"] = $arType["ID"]; $arTypeAll[$arType["ID"]]["NAME"] = "{$arType["NAME"]} [{$arType["ID"]}]"; $arTypeAll[$arType["ID"]]["IBLOCK"][$arIBlock["ID"]] = "{$arIBlock["NAME"]} [{$arIBlock["ID"]}]"; unset($arType); } unset($arTypeIblock); return $arTypeAll; }
function Init(&$next_step, $files_dir, $arParams = array()) { $this->next_step =& $next_step; $this->files_dir = $files_dir; $this->arParams = $arParams; //if (is_array($this->next_step['_TEMPORARY']['DEPARTMENTS'])) $this->arSectionCache =& $this->next_step['_TEMPORARY']['DEPARTMENTS']; $this->DEPARTMENTS_IBLOCK_ID = $this->arParams['DEPARTMENTS_IBLOCK_ID']; $this->ABSENCE_IBLOCK_ID = $this->arParams['ABSENCE_IBLOCK_ID']; $this->STATE_HISTORY_IBLOCK_ID = $this->arParams['STATE_HISTORY_IBLOCK_ID']; $dbRes = CIBlock::GetList(array(), array('TYPE' => $arParams['IBLOCK_TYPE'] ? $arParams['IBLOCK_TYPE'] : 'STRUCTURE', 'ID' => array($this->DEPARTMENTS_IBLOCK_ID, $this->ABSENCE_IBLOCK_ID, $this->STATE_HISTORY_IBLOCK_ID))); $bError = false; if (intval($dbRes->SelectedRowsCount()) < 3) { if (ToUpper($GLOBALS['DBType']) != 'MYSQL') { $i = 0; while ($arRes = $dbRes->Fetch()) { $i++; } $bError = $i < 3; } else { $bError = true; } } if ($bError) { $GLOBALS['APPLICATION']->ThrowException(GetMessage('IBLOCK_XML2_USER_ERROR_IBLOCK_MISSING')); return false; } $def_group = COption::GetOptionString("main", "new_user_registration_def_group", ""); if ($def_group != "") { $this->arUserGroups = explode(",", $def_group); } return true; }
/** * Генерация создания * * generateAddCode * @param array $IblockTypeId * @return bool|string */ public function generateAddCode($IblockTypeId) { $iBlock = new \CIBlock(); $CIblockType = new \CIBlockType(); $lang = new \CLanguage(); $return = array(); $dbIblockType = $CIblockType->GetByID($IblockTypeId); if ($arIblockType = $dbIblockType->GetNext()) { $Iblock = new \CIBlock(); $dbIblock = $Iblock->GetList(array(), array('TYPE' => $IblockTypeId, 'CHECK_PERMISSIONS' => 'N')); while ($arIblock = $dbIblock->GetNext()) { $IblockProperty = new \CIBlockProperty(); $dbIblockProperty = $IblockProperty->GetList(array(), array('IBLOCK_CODE' => $arIblock['CODE'], 'CHECK_PERMISSIONS' => 'N')); while ($arIblockProperty = $dbIblockProperty->GetNext()) { $dbPropertyValues = \CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $arIblockProperty['IBLOCK_ID'], "CODE" => $arIblockProperty['CODE'])); while ($arPropertyValues = $dbPropertyValues->Fetch()) { $arIblockProperty['VALUES'][$arPropertyValues['ID']] = $arPropertyValues; } Helper::unsetFields(array('ID', '~ID', 'IBLOCK_ID', '~IBLOCK_ID'), $arIblockProperty); $arIblockProperty['IBLOCK_CODE'] = $arIblock['CODE']; foreach ($arIblockProperty as $k => $v) { if (strstr($k, "~") || is_null($v)) { unset($arIblockProperty[$k]); } } if (isset($arIblockProperty['LINK_IBLOCK_ID'])) { $res = $iBlock->GetList(array(), array("ID" => $arIblockProperty['LINK_IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N')); if ($ar_res = $res->GetNext()) { unset($arIblockProperty['LINK_IBLOCK_ID']); $arIblockProperty['LINK_IBLOCK_CODE'] = $ar_res['CODE']; } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockPropertyIntegrate', 'Add', array($arIblockProperty)); } foreach ($arIblock as $k => $v) { if (strstr($k, "~") || $k == 'ID') { unset($arIblock[$k]); } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockIntegrate', 'Add', array($arIblock)); } foreach ($arIblockType as $k => $v) { if (strstr($k, "~") || is_null($v)) { unset($arIblockType[$k]); } } $rsLang = $lang->GetList($by = "lid", $order = "desc"); while ($arLang = $rsLang->Fetch()) { $arTypeLang = $CIblockType->GetByIDLang($IblockTypeId, $arLang['LID']); $arIblockType["LANG"][$arLang['LID']] = array('NAME' => $arTypeLang['NAME'], 'SECTION_NAME' => $arTypeLang['SECTION_NAME'], 'ELEMENT_NAME' => $arTypeLang['ELEMENT_NAME']); } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockTypeIntegrate', 'Add', array($arIblockType)); $return = array_reverse($return); return implode(PHP_EOL, $return); } else { return false; } }
static function showIblockListSelect() { $res = CIBlock::GetList(array("ID" => "ASC"), array(), false); echo '<select name="IBLOCK_ID">'; while ($ar_res = $res->Fetch()) { echo "<option value='{$ar_res['ID']}'>[{$ar_res['ID']}] {$ar_res['NAME']}</option>"; } echo '</select>'; }
protected function execute(InputInterface $input, OutputInterface $output) { $type = $input->getArgument('type'); \CModule::IncludeModule('iblock'); $resIBlocks = \CIBlock::GetList(array('NAME' => 'asc'), array('TYPE' => $type)); while ($arIBlock = $resIBlocks->Fetch()) { $output->writeln("<info>" . $arIBlock['NAME'] . " (" . $arIBlock['ID'] . ") </info>"); } }
/** * Собирает массив индентификаторов инфоблоков CODE => ID * @return array Массив идентификаторов инфоблоков в виде array(CODE => ID) */ function _getIblocks() { $resIblocks = \CIBlock::GetList(array('ID' => 'ASC'), array()); $arIb = array(); while ($ar = $resIblocks->Fetch()) { $arIb[$ar['CODE']] = $ar['ID']; } return $arIb; }
/** * @param string $code код инфблока * @return int ID инфоблока */ public static function GetIdByCode($code) { $res = CIBlock::GetList(array(), array('TYPE' => 'bizproc_iblockx', 'SITE_ID' => SITE_ID, 'ACTIVE' => 'Y', "CODE" => $code), true); if (empty($res)) { ShowError("Инфоблок с кодом=" . $code . " не найден"); return 0; } $data = $res->GetNext(); return $data["ID"]; }
public function getIblocks($filter = array()) { $filter['CHECK_PERMISSIONS'] = 'N'; /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $dbResult = \CIBlock::GetList(array('SORT' => 'ASC'), $filter); $list = array(); while ($aItem = $dbResult->Fetch()) { $list[] = $aItem; } return $list; }
/** * Получить ID инфоблока по коду * * @param string $code * @return int|bool */ public static function getIblockId($code) { if (!empty(self::$iblockId[$code])) { return self::$iblockId[$code]; } if ($iblock = \CIBlock::GetList([], ['CODE' => $code])->fetch()) { self::$iblockId[$code] = $iblock['ID']; return $iblock['ID']; } return false; }
function get_iblocks_by_type($id) { $arIBlocks = array(); $result = CIBlock::GetList(array('SORT' => 'ASC'), array('ACTIVE' => 'Y')); while ($iblock = $result->GetNext()) { if ($iblock['IBLOCK_TYPE_ID'] == $id) { $arIBlocks[] = $iblock; } } return $arIBlocks; }
/** * Функция получения ID инфоблока по его коду */ public static function getIBlockIDbyCode($code) { $strCode = trim($code); if (!empty($strCode)) { $res = CIBlock::GetList(array(), array('ACTIVE' => 'Y', "=CODE" => $strCode), true); while ($ar_res = $res->Fetch()) { $IBLOCK_ID = $ar_res["ID"]; } } return $IBLOCK_ID; }
function __getRMIblockID() { if ($this->RMIblockID) { return $this->RMIblockID; } else { $dbRes = CIBlock::GetList(array('SORT' => 'ASC'), array('CODE' => 'meeting_rooms'), false); if ($arRes = $dbRes->Fetch()) { return $this->RMIblockID = $arRes['ID']; } } return false; }
function getIblockNames($arIblockIDs) { $str = ""; if (CModule::IncludeModule("iblock")) { $res = CIBlock::GetList(array(), array("ID" => $arIblockIDs, "ACTIVE" => "Y"), true); while ($ar_res = $res->Fetch()) { $str .= "\"" . $ar_res["NAME"] . "\", "; } $str .= "#"; } return str_replace(", #", "", $str); }
function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu) { global $USER; if (!CModule::IncludeModule("iblock")) { return; } //When UnRegisterModuleDependences is called from module uninstall //cached EventHandlers may be called if (defined("BX_CATALOG_UNINSTALLED")) { return; } $aMenu = array("text" => GetMessage("CAT_MENU_ROOT"), "title" => "", "items_id" => "menu_catalog_list", "items" => array()); $arCatalogs = array(); $rsCatalog = CCatalog::GetList(array("sort" => "asc")); while ($ar = $rsCatalog->Fetch()) { if ($ar["PRODUCT_IBLOCK_ID"]) { $arCatalogs[$ar["PRODUCT_IBLOCK_ID"]] = 1; } else { $arCatalogs[$ar["IBLOCK_ID"]] = 1; } } $rsIBlocks = CIBlock::GetList(array("SORT" => "asc", "NAME" => "ASC"), array("MIN_PERMISSION" => "U")); while ($arIBlock = $rsIBlocks->Fetch()) { if (array_key_exists($arIBlock["ID"], $arCatalogs)) { $arItems = array(array("text" => GetMessage("CAT_MENU_PRODUCT_LIST"), "url" => "cat_product_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . urlencode($arIBlock["IBLOCK_TYPE_ID"]), "more_url" => array("cat_product_admin.php?IBLOCK_ID=" . $arIBlock["ID"], "cat_product_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_elements", "items_id" => "menu_catalog_goods_" . $arIBlock["ID"], "module_id" => "catalog"), array("text" => htmlspecialcharsex(CIBlock::GetArrayByID($arIBlock["ID"], "SECTIONS_NAME")), "url" => "cat_section_admin.php?lang=" . LANGUAGE_ID . "&type=" . $arIBlock["IBLOCK_TYPE_ID"] . "&IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "more_url" => array("cat_section_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "cat_section_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0"), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_category_" . $arIBlock["ID"], "module_id" => "catalog", "items" => CCatalogAdmin::get_sections_menu($arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], 1, 0))); if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_PRODUCT_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arIBlock["ID"], "module_id" => "catalog"); } $arCatalog = false; if (CModule::IncludeModule("catalog")) { $arCatalog = CCatalog::GetSkuInfoByProductID($arIBlock["ID"]); } if (is_array($arCatalog) && CIBlockRights::UserHasRightTo($arCatalog["IBLOCK_ID"], $arCatalog["IBLOCK_ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_SKU_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arCatalog["IBLOCK_ID"], "module_id" => "catalog"); } if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_CATALOG_SETTINGS"), "url" => "cat_catalog_edit.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"], "more_url" => array("cat_catalog_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_edit_" . $arIBlock["ID"], "module_id" => "catalog"); } $aMenu["items"][] = array("text" => htmlspecialcharsEx($arIBlock["NAME"]), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_" . $arIBlock["ID"], "module_id" => "catalog", "items" => $arItems); } } if (!empty($aMenu["items"])) { if (count($aMenu["items"]) == 1) { $aMenu = $aMenu["items"][0]; } $aMenu["parent_menu"] = "global_menu_store"; $aMenu["section"] = "catalog_list"; $aMenu["sort"] = 200; $aMenu["icon"] = "iblock_menu_icon_sections"; $aMenu["page_icon"] = "iblock_page_icon_types"; $aModuleMenu[] = $aMenu; } }
/** * Gets block object via Bitrix API by its alias. * */ private function getVariableBlockId($_blockAlias, $language) { $blockAlias = str_replace('{ALIAS}', $_blockAlias, $this->config->variables->{$language}->aliasPattern); $blocksList = CIBlock::GetList(array(), array("CODE" => $blockAlias), false); if ($blocksList->SelectedRowsCount() != 0) { $block = $blocksList->Fetch(); $blockId = $block['ID']; } else { throw new Exception("Access denied for '{$blockAlias}' block!"); $blockId = null; } return new BitrixAdapterBlockPrototype($blockId); }
public static function GetCatalogId($externalName = "", $originatorID = 0, $siteID = null) { $iblockType = self::GetCatalogTypeID(); $iblockId = 0; $catalogId = 0; if ($siteID == null) { $siteID = SITE_ID; } $dbIBlockType = CIBlockType::GetList(array(), array("=ID" => $iblockType)); if (!($arIBlockType = $dbIBlockType->Fetch())) { $langTmp = ""; $dbSite = CSite::GetById($siteID); if ($arSite = $dbSite->Fetch()) { $langTmp = $arSite["LANGUAGE_ID"]; } $ib = new CIBlockType(); $arFields = array("ID" => $iblockType, "LANG" => array($langTmp => array("NAME" => GetMessage("CRM_PROCUCT_CATALOG_TITLE")))); $ib->Add($arFields); } $dbIBlock = CIBlock::GetList(array(), array("XML_ID" => "crm_external_" . $originatorID, "IBLOCK_TYPE_ID" => $iblockType)); if ($arIBlock = $dbIBlock->Fetch()) { $iblockId = $arIBlock["ID"]; } if ($iblockId == 0) { $ib = new CIBlock(); $arFields = array("IBLOCK_TYPE_ID" => $iblockType, "XML_ID" => "crm_external_" . $originatorID, "LID" => $siteID, "NAME" => $externalName, "ACTIVE" => 'Y', "SORT" => 100, "INDEX_ELEMENT" => "N", "WORKFLOW" => 'N', "BIZPROC" => 'N', "VERSION" => 1, "GROUP_ID" => array(2 => "R")); $iblockId = $ib->Add($arFields); $iblockId = intval($iblockId); if ($iblockId <= 0) { self::RegisterError($ib->LAST_ERROR); return false; } } $dbCatalog = CCrmCatalog::GetList(array(), array("IBLOCK_ID" => $iblockId)); if ($arCatalog = $dbCatalog->Fetch()) { $catalogId = $arCatalog["ID"]; } if ($catalogId == 0) { $res = CCrmCatalog::Add(array("ID" => $iblockId, "ORIGINATOR_ID" => $originatorID)); if (!$res) { if (($ex = $GLOBALS["APPLICATION"]->GetException()) !== false) { self::RegisterError($ex->GetString()); } else { self::RegisterError('Catalog creation error'); } return false; } $catalogId = $iblockId; } return $catalogId; }
protected function getIblockIdsWithCommonFiles() { static $commonIblockIds = array(); if ($commonIblockIds) { return $commonIblockIds; } $q = CIBlock::GetList(array('ID' => 'ASC'), array('!CODE' => array('group_files%', 'user_files%'), 'TYPE' => 'library')); if ($q) { while ($iblock = $q->fetch()) { $commonIblockIds[$iblock['ID']] = $iblock; } } return $commonIblockIds; }
public function checkCode($params) { global $APPLICATION; if (isset($params['CODE']) && $params['CODE'] !== '') { CModule::IncludeModule('iblock'); $iblocks = CIBlock::GetList(); while ($iblock = $iblocks->Fetch()) { if ($iblock['CODE'] === $params['CODE']) { $APPLICATION->ThrowException(new CApplicationException('Инфоблок с таким CODE уже существует.')); return false; } } } }
/** * Delete * @param $IblockTypeCode * @return bool * @throws \Exception */ public static function Delete($IblockTypeCode) { $Iblock = new \CIBlock(); $iblockEl = new \CIBlockElement(); $dbIblock = $Iblock->GetList(array(), array('TYPE' => $IblockTypeCode)); while ($dbRow = $dbIblock->Fetch()) { $iblockElDbRes = $iblockEl->GetList(array(), array('IBLOCK_ID' => $dbRow['ID'])); if ($iblockElDbRes !== false && $iblockElDbRes->SelectedRowsCount()) { throw new BimException('Can not delete iblock type: iblock id =' . $dbRow['ID'] . ' have elements'); } } if (!\CIBlockType::Delete($IblockTypeCode)) { throw new BimException('Delete iblock type error!'); } return true; }
function getIBlocksFormatted() { $out = ''; $type = filter_input(INPUT_POST, 'iblock_type', FILTER_SANITIZE_STRING); if ($type == 'notype') { return $out; } $rResult = CIBlock::GetList( array('SORT' => 'ASC'), array( 'TYPE' => $type, 'ACTIVE' => 'Y', ) ); while (false !== ($iblock = $rResult->GetNext())) { $out .= sprintf('<option value="%s">%s</option>', $iblock['ID'], $iblock['NAME']); } return $out; }
public static function getIBlockId($code, $site_id, $use_cache = true) { $iblock_list = null; $arIblock = null; $result = array(); if ($use_cache) { $iblock_list = static::getCache(__FUNCTION__ . '_list'); } if (!is_array($iblock_list['RESULT'])) { \CModule::IncludeModule('iblock'); $dbResult = \CIBlock::GetList(); while ($next = $dbResult->fetch()) { $iblock_list['RESULT'][] = $next; } static::setCache(__FUNCTION__ . '_list', $iblock_list['RESULT']); } if ($use_cache) { $arIblock = static::getCache(__FUNCTION__ . '_iblock'); } if (!is_array($arIblock['RESULT'])) { \CModule::IncludeModule('iblock'); foreach ($iblock_list['RESULT'] as $iblock) { if ($iblock['CODE'] == $code) { $dbResult = \CIBlock::GetSite($iblock['ID']); while ($next = $dbResult->getNext()) { if ($next['SITE_ID'] == $site_id) { $arIblock['RESULT'][] = $iblock; } } } } static::setCache(__FUNCTION__ . '_iblock', $arIblock['RESULT']); } if (is_array($arIblock['RESULT']) && count($arIblock['RESULT']) > 0) { foreach ($arIblock['RESULT'] as $iblock) { $result[] = $iblock['ID']; } } return $result; }
protected function initializeVars($iblockId) { $this->iblock = \CIBlock::GetList(array('SORT' => 'ASC'), array('ID' => $iblockId))->Fetch(); if (!$this->iblock) { $this->throwException(__METHOD__, 'Iblock %d not found', $iblockId); } $dbResult = \CIBlockProperty::GetList(array("sort" => "asc"), array("IBLOCK_ID" => $iblockId, "CHECK_PERMISSIONS" => "N")); while ($aItem = $dbResult->Fetch()) { if (!empty($aItem['CODE'])) { $this->titles['PROPERTY_' . $aItem['ID']] = $aItem['NAME']; $this->props[$aItem['CODE']] = $aItem; } } $iblockMess = \IncludeModuleLangFile('/bitrix/modules/iblock/iblock.php', 'ru', true); $iblockMess['IBLOCK_FIELD_ACTIVE_FROM'] = $iblockMess['IBLOCK_FIELD_ACTIVE_PERIOD_FROM']; $iblockMess['IBLOCK_FIELD_ACTIVE_TO'] = $iblockMess['IBLOCK_FIELD_ACTIVE_PERIOD_TO']; foreach ($iblockMess as $code => $value) { if (false !== strpos($code, 'IBLOCK_FIELD_')) { $fcode = str_replace('IBLOCK_FIELD_', '', $code); $this->titles[$fcode] = $value; } } }
/** * Add * @param $entityName * @param $fields * @return mixed * @throws \Exception */ public static function Add($entityName, $fields) { if (empty($entityName) || empty($fields)) { throw new \Exception('entityName or fields is empty'); } if (empty($fields['FIELD_NAME'])) { throw new \Exception('Field FIELD_NAME is required.'); } if (empty($fields['USER_TYPE_ID'])) { throw new \Exception('Field USER_TYPE_ID is required.'); } if (isset($fields['ID'])) { unset($fields['ID']); } $userFieldEntity = self::_getEntityId($entityName); $fields['ENTITY_ID'] = $userFieldEntity; $typeEntityDbRes = \CUserTypeEntity::GetList(array(), array("ENTITY_ID" => $fields["ENTITY_ID"], "FIELD_NAME" => $fields["FIELD_NAME"])); if ($typeEntityDbRes !== false && $typeEntityDbRes->SelectedRowsCount()) { throw new \Exception('Hlblock field with name = "' . $fields["FIELD_NAME"] . '" already exist.'); } #if if (($fields['USER_TYPE_ID'] == "iblock_element" || $fields['USER_TYPE_ID'] == "iblock_section") && isset($fields['SETTINGS']['IBLOCK_CODE'])) { unset($fields['SETTINGS']['IBLOCK_CODE']); $rsIBlock = \CIBlock::GetList(array(), array('CODE' => $fields['SETTINGS']['IBLOCK_CODE'], 'CHECK_PERMISSIONS' => 'N')); if ($arIBlock = $rsIBlock->Fetch()) { $fields['SETTINGS']['IBLOCK_ID'] = $arIBlock['ID']; } else { throw new \Exception(__METHOD__ . ' Not found iblock with code ' . $fields['SETTINGS']['IBLOCK_CODE']); } } $UserType = new \CUserTypeEntity(); $ID = $UserType->Add($fields); if (!(int) $ID) { throw new \Exception('Not added Hlblock field'); } return $ID; }