/** * Add * @param $arFields * @return bool * @throws \Exception */ public static function Add($arFields) { if (!isset($arFields['SECTIONS']) || empty($arFields['SECTIONS'])) { $arFields['SECTIONS'] = 'Y'; } if (!isset($arFields['IN_RSS']) || empty($arFields['IN_RSS'])) { $arFields['IN_RSS'] = 'N'; } 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; } if (!isset($arFields['LANG']) || empty($arFields['LANG'])) { $langDefaults = array('ru' => array('NAME' => 'Название', 'SECTION_NAME' => 'Разделы', 'ELEMENT_NAME' => 'Элементы'), 'en' => array('NAME' => 'Common', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements')); $l = \CLanguage::GetList($lby = "sort", $lorder = "asc"); while ($arIBTLang = $l->GetNext()) { if (array_key_exists($arIBTLang["LID"], $langDefaults)) { $arFields["LANG"][$arIBTLang["LID"]] = $langDefaults[$arIBTLang["LID"]]; } } } $CIblockType = new \CIBlockType(); if ($CIblockType->Add($arFields)) { return true; } else { throw new BimException($CIblockType->LAST_ERROR); } }
public function addIblockType($fields = array()) { $default = array('ID' => '', 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 100, 'LANG' => array('ru' => array('NAME' => 'Catalog', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'), 'en' => array('NAME' => 'Catalog', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'))); $fields = array_replace_recursive($default, $fields); $ib = new \CIBlockType(); if ($ib->Add($fields)) { return $fields['ID']; } $this->throwException(__METHOD__, $ib->LAST_ERROR); }
/** * @throws \TAOAddTypeException */ protected static function addNewType($data) { global $DB; $DB->StartTransaction(); $o = new \CIBlockType(); $res = $o->Add($data); if (!$res) { $DB->Rollback(); throw new \TAOAddTypeException("Error create type " . $data['ID']); } else { $DB->Commit(); } }
public function addIblockTypeIfNotExists($fields) { $this->checkRequiredKeys(__METHOD__, $fields, array('ID')); $id = $fields['ID']; if ($this->getIblockTypeId($id)) { return $id; } $default = array('ID' => '', 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 100, 'LANG' => array('ru' => array('NAME' => 'Catalog', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'), 'en' => array('NAME' => 'Catalog', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'))); $fields = array_merge($default, $fields); $ib = new \CIBlockType(); if ($ib->Add($fields)) { return $id; } $this->throwException(__METHOD__, $ib->LAST_ERROR); }
function CheckIBlockTypeID($strIBlockTypeID, $strNewIBlockTypeID, $strNeedAdd) { $arResult = false; $strNeedAdd = 'Y' == $strNeedAdd ? 'Y' : 'N'; $strNewIBlockTypeID = trim($strNewIBlockTypeID); $strIBlockTypeID = trim($strIBlockTypeID); if ('Y' == $strNeedAdd) { $obIBlockType = new CIBlockType(); if ('' != $strNewIBlockTypeID) { $rsIBlockTypes = CIBlockType::GetByID($strNewIBlockTypeID); if ($arIBlockType = $rsIBlockTypes->Fetch()) { $arResult = array('RESULT' => 'OK', 'VALUE' => $strNewIBlockTypeID); } else { $arFields = array('ID' => $strNewIBlockTypeID, 'SECTIONS' => 'N', 'IN_RSS' => 'N', 'SORT' => 500); $rsLanguages = CLanguage::GetList($by = "sort", $order = "desc", array('ACTIVE' => 'Y')); while ($arLanguage = $rsLanguages->Fetch()) { $arFields['LANG'][$arLanguage['LID']]['NAME'] = $strNewIBlockTypeID; } $mxOffersType = $obIBlockType->Add($arFields); if (false == $mxOffersType) { $arResult = array('RESULT' => 'ERROR', 'MESSAGE' => $obIBlockType->LAST_ERROR); } else { $arResult = array('RESULT' => 'OK', 'VALUE' => $strNewIBlockTypeID); } } } else { $arResult = array('RESULT' => 'ERROR', 'MESSAGE' => GetMessage('IB_E_OF_ERR_NEW_IBLOCK_TYPE_ABSENT')); } } else { if ('' == $strIBlockTypeID) { $arResult = array('RESULT' => 'ERROR', 'MESSAGE' => GetMessage('IB_E_OF_ERR_IBLOCK_TYPE_ABSENT')); } else { $rsIBlockTypes = CIBlockType::GetByID($strIBlockTypeID); if (!($arIBlockType = $rsIBlockTypes->Fetch())) { $arResult = array('RESULT' => 'ERROR', 'MESSAGE' => GetMessage('IB_E_OF_ERR_IBLOCK_TYPE_BAD')); } else { $arResult = array('RESULT' => 'OK', 'VALUE' => $strIBlockTypeID); } } } return $arResult; }
function CheckIBlockType($ID, $SECTIONS = "Y") { $obType = new CIBlockType(); $rsType = $obType->GetByID($ID); if ($arType = $rsType->Fetch()) { return $arType["ID"]; } else { $arFields = array("ID" => $ID, "SECTIONS" => $SECTIONS, "LANG" => array()); $rsLanguages = CLanguage::GetList($by = "sort", $order = "asc"); while ($arLanguage = $rsLanguages->Fetch()) { $MY_MESS = IncludeModuleLangFile(__FILE__, $arLanguage["LID"], true); $arFields["LANG"][$arLanguage["LID"]] = array("NAME" => $MY_MESS["IBLOCK_INSTALL_" . strtoupper($ID) . "_NAME"], "SECTION_NAME" => $MY_MESS["IBLOCK_INSTALL_" . strtoupper($ID) . "_SECTIONS_NAME"], "ELEMENT_NAME" => $MY_MESS["IBLOCK_INSTALL_" . strtoupper($ID) . "_ELEMENTS_NAME"]); } $result = $obType->Add($arFields); if ($result) { return $result; } else { return false; } } }
public function applySnapshot($data, $dbVersion = null) { $iblockData = $this->handleNullValues($data['iblock']); $typeData = $this->handleNullValues($data['type']); $res = new ApplyResult(); $type = new \CIBlockType(); if (!\CIBlockType::GetByID($typeData['ID'])->Fetch()) { $res->setSuccess($type->Add($typeData)); } else { $res->setSuccess($type->Update($typeData['ID'], $typeData)); } if (!$res->isSuccess()) { return $res->setMessage($type->LAST_ERROR); } $extId = $iblockData['ID']; if ($dbVersion) { $id = $this->getCurrentVersionId($extId, $dbVersion); } else { $id = $extId; } if (!$dbVersion && !IblockTable::getById($id)->fetch()) { $addRes = IblockTable::add(array('ID' => $id, 'IBLOCK_TYPE_ID' => $typeData['ID'], 'NAME' => 'add')); if (!$addRes->isSuccess()) { throw new \Exception('add iblock error ' . implode(', ', $addRes->getErrorMessages())); } } $iblock = new \CIBlock(); if ($id && ($currentData = IblockTable::getById($id)->fetch())) { $iblockData['PICTURE'] = $currentData['PICTURE']; $res->setSuccess((bool) $iblock->Update($id, $iblockData)); } else { unset($iblockData['PICTURE']); $res->setSuccess((bool) ($id = $iblock->Add($iblockData))); $this->registerCurrentVersionId($id, $this->getReferenceValue($extId, $dbVersion)); } $res->setId($id); return $res->setMessage($iblock->LAST_ERROR); }
private function InstallIblockType() { if ($this->arResult["INSTALLATION"]["IBLOCK_TYPE_INSTALL"]) { $arFields = array("ID" => $this->ModuleIblockType, "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 100, "LANG" => array()); foreach ($this->arResult["SETTINGS"]["LANG"] as $Lang) { $m = IncludeModuleLangFile(__FILE__, $Lang["LANGUAGE_ID"], true); $arFields["LANG"][$Lang["LANGUAGE_ID"]] = array("NAME" => strlen($m["IDEA_INSTALL_IBLOCK_TYPE"]) == 0 ? "Idea Management" : $m["IDEA_INSTALL_IBLOCK_TYPE"], "SECTION_NAME" => strlen($m["IDEA_INSTALL_IBLOCK_SECTION_NAME"]) == 0 ? "Category" : $m["IDEA_INSTALL_IBLOCK_SECTION_NAME"]); } $IBT = new CIBlockType(); if (!($IblockTypeId = $IBT->Add($arFields))) { $this->arResult["ERRORS"][] = $IBT->LAST_ERROR; } $this->arResult["INSTALLATION"]["IBLOCK_TYPE_ID"] = $IblockTypeId; } }
public function getTestIBlockType() { if (self::$_arTestIBlockType !== null) { return self::$_arTestIBlockType; } $testIBlockType = 'obx_test_type'; $rsIBlockType = \CIBlockType::GetByID($testIBlockType); self::$_arTestIBlockType = $rsIBlockType->Fetch(); if (!self::$_arTestIBlockType) { $arIBlockTypeFields = array('ID' => $testIBlockType, 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 1000, 'LANG' => array('en' => array('NAME' => 'OpenBX: Test info blocks', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'), 'ru' => array('NAME' => 'OpenBX: Test info blocks', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'))); $obBlockType = new \CIBlockType(); global $DB; /** @global \CDatabase $DB */ $DB->StartTransaction(); $res = $obBlockType->Add($arIBlockTypeFields); if (!$res) { $DB->Rollback(); $this->fail('Error: ' . $obBlockType->LAST_ERROR); } else { $DB->Commit(); $rsIBlockType = \CIBlockType::GetByID($testIBlockType); self::$_arTestIBlockType = $rsIBlockType->Fetch(); } } return self::$_arTestIBlockType; }
* Файл импорта структуры инфоблоков административной чавсти модуля greensight_utils */ require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php'; IncludeModuleLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage('GREENSIGHT_IBLOCK_IMPORT_TITLE')); if (!$USER->IsAdmin()) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } include $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/prolog_admin_after.php"; if ($_POST) { do { $DB->StartTransaction(); // создание инфоблока, если надо if ($_POST['iblock_type'] == '0') { $cibt = new CIBlockType(); if ($cibt->Add(array('ID' => $_POST['newiblocktype_id'], 'SECTIONS' => 'Y', 'EDIT_FILE_BEFORE' => '', 'EDIT_FILE_AFTER' => '', 'IN_RSS' => 'N', 'SORT' => 500, 'LANG' => array('en' => array('NAME' => $_POST['newiblocktype_id'], 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Elements'), 'ru' => array('NAME' => $_POST['newiblocktype_name'], 'SECTION_NAME' => 'Секции', 'ELEMENT_NAME' => 'Элементы'))))) { $iBlockTypeID = $_POST['newiblocktype_id']; } else { $DB->Rollback(); ShowError(GetMessage('GREENSIGHT_IBLOCK_IMPORT_ERROR_TYPE_CREATE')); break; } } // выбрать нужный тип инфоблока if (!$iBlockTypeID) { $rsIBlockType = CIBlockType::GetByID($_POST['iblock_type']); $iBlockTypeID = $rsIBlockType->Fetch(); $iBlockTypeID = $iBlockTypeID['ID']; } if (!$iBlockTypeID) { $DB->Rollback();
function DoInstall() { global $APPLICATION; if(!CModule::IncludeModule('iblock')) return false; //получаем тип инфоблока $iblockType = CIBlockType::GetList( array(), array( "ID" => "kaycom_ONEPLACESEO" ) ); //создаем, если такого нет if(!$iblockType = $iblockType->GetNext()){ $iT = new CIBlockType(); $iblockType["ID"] = $iT->Add( array( "ID" => "kaycom_ONEPLACESEO", "SECTIONS" => "N", "LANG" => array( "ru" => array( 'NAME' => GetMessage("kaycom.oneplaceseo_IBLOCK_TYPE_NAME"), ) ) ) ); } //если не создался, выходим if(!$iblockType["ID"]){ return false; } //получаем список всех сайтов $arSites = array(); $rsSites = CSite::GetList($by="sort", $order="desc", Array("ACTIVE" => "Y")); while ($arSite = $rsSites->Fetch()){ $arSites[] = $arSite["ID"]; } //пытаемся найти инфоблок в нашем типе инфоблока $iblocks = CIBlock::GetList( array(), array( "TYPE" => "kaycom_ONEPLACESEO", "CODE" => "kaycom_ONEPLACESEO" ) ); //если нет - создаем инфоблок с заданным набором полей if(!$iblock = $iblocks->GetNext()){ $ib = new CIBlock(); $iblock["ID"] = $ib->Add( array( "ACTIVE" => "Y", "NAME" => GetMessage("kaycom.oneplaceseo_IBLOCK_TYPE_NAME"), "CODE" => "kaycom_ONEPLACESEO", "LIST_PAGE_URL" => "", "DETAIL_PAGE_URL" => "", "IBLOCK_TYPE_ID" => "kaycom_ONEPLACESEO", "SITE_ID" => $arSites, "SORT" => 10, "WORKFLOW" => "N", "EDIT_FILE_AFTER" => (strpos (SM_VERSION, '12')!==false ? "/bitrix/modules/".$this->MODULE_ID."/admin/iblock_element_edit.php" : "") // TODO: добавить файл редактирования для 11 версии ) ); $ibp = new CIBlockProperty; foreach(array("TITLE", "KEYWORDS", "DESCRIPTION") as $PROP_CODE){ $ibp->Add( Array( "NAME" => GetMessage("kaycom.oneplaceseo_PROP_".$PROP_CODE), "ACTIVE" => "Y", "SORT" => 10 * $cnt++, "CODE" => $PROP_CODE, "PROPERTY_TYPE" => "S", "MULTIPLE" => "N", "IBLOCK_ID" => $iblock["ID"] ) ); } } $this->InstallFiles(); $this->InstallDB(); RegisterModule(self::MODULE_ID); RegisterModuleDependences("main", "OnEpilog", "kaycom.oneplaceseo", "CKaycomOneplaceseo", "onPageLoad"); }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("iblock")) { return; } $arTypes = array(array(), array("ID" => "news", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 50, "LANG" => array()), array("ID" => "portfolio", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 100, "LANG" => array()), array("ID" => "price", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 150, "LANG" => array()), array("ID" => "reviews", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 200, "LANG" => array()), array("ID" => "services", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 250, "LANG" => array()), array("ID" => "slider", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 300, "LANG" => array())); $arLanguages = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } $iblockType = new CIBlockType(); foreach ($arTypes as $arType) { $dbType = CIBlockType::GetList(array(), array("=ID" => $arType["ID"])); if ($dbType->Fetch()) { continue; } foreach ($arLanguages as $languageID) { WizardServices::IncludeServiceLang("type.php", $languageID); $code = strtoupper($arType["ID"]); $arType["LANG"][$languageID]["NAME"] = GetMessage($code . "_TYPE_NAME"); $arType["LANG"][$languageID]["ELEMENT_NAME"] = GetMessage($code . "_ELEMENT_NAME"); if ($arType["SECTIONS"] == "Y") { $arType["LANG"][$languageID]["SECTION_NAME"] = GetMessage($code . "_SECTION_NAME"); } } $iblockType->Add($arType); }
// ------------------ PHOTO ------------------------------- $photoIBlockTypeID = "car_gallery_demo"; $photoUserIBlockID = 0; $photoGroupIBlockID = 0; if (CModule::IncludeModule("iblock")) { $dbIBlockType = CIBlockType::GetList(array(), array("=ID" => $photoIBlockTypeID)); if ($arIBlockType = $dbIBlockType->Fetch()) { $photoIBlockTypeID = $arIBlockType["ID"]; } else { $arFieldsLang = array(); foreach ($arLanguages as $arLang) { $arFieldsLang[$arLang["LID"]] = array("NAME" => GetSocNetMessageLocal("SONET_I_PHOTO_IBLOCK_TYPE_NAME", $arLang["LID"])); } $arFields = array("ID" => $photoIBlockTypeID, "LANG" => $arFieldsLang, "SECTIONS" => "Y"); $iblockType = new CIBlockType(); $photoIBlockTypeID = $iblockType->Add($arFields); if (strLen($photoIBlockTypeID) <= 0) { $errorString .= $iblockType->LAST_ERROR; } } if (StrLen($photoIBlockTypeID) > 0) { $iblockCode = "car_photo_user_demo"; $photoUserIBlockID = 0; $dbIBlock = CIBlock::GetList(array(), array("SITE_ID" => $arSite["SITE_ID"], "TYPE" => $photoIBlockTypeID, "CODE" => $iblockCode)); if ($arIBlock = $dbIBlock->Fetch()) { $photoUserIBlockID = IntVal($arIBlock["ID"]); } else { $arFields = array("ACTIVE" => "Y", "NAME" => GetSocNetMessageLocal("SONET_I_IBLOCK_PHOTO_USER_NAME", $arSite["LANGUAGE_ID"]), "IBLOCK_TYPE_ID" => $photoIBlockTypeID, "CODE" => $iblockCode, "RSS_ACTIVE" => "N", "WORKFLOW" => "N", "INDEX_ELEMENT" => "N", "LID" => array($arSite["SITE_ID"])); $iblock = new CIBlock(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while ($arUGroups = $dbUGroups->Fetch()) {
function DEMO_IBlock_CreateType($IBLOCK_TYPES = false) { if (!is_array($IBLOCK_TYPES)) { $IBLOCK_TYPES = array("news", "services", "photo", "books", "articles", "paid", "xmlcatalog"); } $arTypes = array("news" => array("ID" => "news", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 10, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_NEWS_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_NEWS_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_NEWS_ELEMENT_NAME")))), "articles" => array("ID" => "articles", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 20, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_ARTICLES_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_ARTICLES_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_ARTICLES_ELEMENT_NAME")))), "photo" => array("ID" => "photo", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 40, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_PHOTO_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_PHOTO_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_PHOTO_ELEMENT_NAME")))), "services" => array("ID" => "services", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 50, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_SERVICES_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_SERVICES_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_SERVICES_ELEMENT_NAME")))), "books" => array("ID" => "books", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 60, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_BOOKS_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_BOOKS_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_BOOKS_ELEMENT_NAME")))), "paid" => array("ID" => "paid", "SECTIONS" => "N", "IN_RSS" => "N", "SORT" => 70, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_PAID_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_PAID_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_PAID_ELEMENT_NAME")))), "xmlcatalog" => array("ID" => "xmlcatalog", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 80, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_XMLCATALOG_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_XMLCATALOG_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_XMLCATALOG_ELEMENT_NAME")))), "lists" => array("ID" => "lists", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 90, "LANG" => array(LANGUAGE_ID => array("NAME" => GetMessage("DEMO_IBLOCK_TYPE_LISTS_NAME"), "SECTION_NAME" => GetMessage("DEMO_IBLOCK_TYPE_LISTS_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("DEMO_IBLOCK_TYPE_LISTS_ELEMENT_NAME"))))); foreach ($IBLOCK_TYPES as $TYPE_ID) { if (array_key_exists($TYPE_ID, $arTypes)) { $obType = new CIBlockType(); $arFields = $arTypes[$TYPE_ID]; $rsType = $obType->GetList(array(), array("=ID" => $arFields["ID"])); if ($arType = $rsType->Fetch()) { continue; } else { $obType->Add($arFields); } } } }
public static function CreateCatalog($originatorID = '', $name = '', $siteID = null) { if (!is_string($originatorID) || strlen($originatorID) == 0) { $originatorID = null; } if ($siteID == null) { $siteID = SITE_ID; } $langID = LANGUAGE_ID; $dbSite = CSite::GetById($siteID); if ($arSite = $dbSite->Fetch()) { $langID = $arSite['LANGUAGE_ID']; } $result = true; //check type type $typeID = self::GetCatalogTypeID(); //$rsIBlockTypes = CIBlockType::GetByID($typeID); // CIBlockType::GetByID() is unstable $rsIBlockTypes = CIBlockType::GetList(array(), array("=ID" => $typeID)); if (!$rsIBlockTypes->Fetch()) { $iblocktype = new CIBlockType(); $result = $iblocktype->Add(array('ID' => $typeID, 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 100, 'LANG' => array($langID => array('NAME' => GetMessage('CRM_PRODUCT_CATALOG_TYPE_TITLE'), 'SECTION_NAME' => GetMessage('CRM_PRODUCT_CATALOG_SECTION_NAME'), 'ELEMENT_NAME' => GetMessage('CRM_PRODUCT_CATALOG_PRODUCT_NAME'))))); if (!$result) { self::RegisterError($iblocktype->LAST_ERROR); return false; } } //echo 'Error: '.$obBlocktype->LAST_ERROR.'<br/>'; $arSite = array(); $sites = CSite::GetList($by = 'sort', $order = 'desc', array('ACTIVE' => 'Y')); while ($site = $sites->Fetch()) { $arSite[] = $site['LID']; } //creation of iblock $iblock = new CIBlock(); $iblockID = $iblock->Add(array('NAME' => isset($name[0]) ? $name : GetMessage('CRM_PRODUCT_CATALOG_TITLE'), 'ACTIVE' => 'Y', 'IBLOCK_TYPE_ID' => $typeID, 'LID' => $siteID, 'SORT' => 100, 'XML_ID' => 'crm_external_' . $originatorID, 'INDEX_ELEMENT' => 'N', 'WORKFLOW' => 'N', 'BIZPROC' => 'N', 'VERSION' => 1, 'GROUP_ID' => array(2 => 'R'))); if ($iblockID === false) { self::RegisterError($iblock->LAST_ERROR); return false; } //echo 'Error: '.$iblock->LAST_ERROR.'<br/>'; //creation of catalog $result = CCrmCatalog::Add(array('ID' => $iblockID, 'ORIGINATOR_ID' => $originatorID)); if ($result === false) { self::RegisterError('Catalog creation error'); return false; } return $iblockID; }
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("bizproc") || !CModule::IncludeModule("iblock")) { return; } $langTmp = ""; $dbSite = CSite::GetById(WIZARD_SITE_ID); if ($arSite = $dbSite->Fetch()) { $langTmp = $arSite["LANGUAGE_ID"]; } $iblockType = "bizproc_iblockx"; $ib = new CIBlockType(); $arFields = array("ID" => $iblockType, "LANG" => array($langTmp => array("NAME" => GetMessage("BIZPROC_DEMO_TYPE_TITLE")))); $ib->Add($arFields); $runtime = CBPRuntime::GetRuntime(); $runtime->StartRuntime(); $arResult["DocumentService"] = $runtime->GetService("DocumentService"); $iblockCode = "bizproc1_" . WIZARD_SITE_ID; $rsIBlock = CIBlock::GetList(array(), array("XML_ID" => $iblockCode, "IBLOCK_TYPE_ID" => $iblockType)); $iblockID = false; if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; } if ($iblockID == false && WIZARD_SITE_ID == "s1") { $rsIBlock = CIBlock::GetList(array(), array("CODE" => "bizproc1", "TYPE" => $iblockType)); $iblockID = false; if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; }
$arFields = array('ID' => 'gallery', 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 100, 'LANG' => array()); foreach ($arLangs as $lang_id) { $res = array('NAME' => GetMessage("P_NAME"), 'SECTION_NAME' => GetMessage("P_SECTION_NAME"), 'ELEMENT_NAME' => GetMessage("P_ELEMENT_NAME")); if ($lang_id != LANGUAGE_ID) { $arMess[$lang_id] = __GetMessageArray($lang_id); $res['NAME'] = trim($arMess[$lang_id]["P_NAME"]); $res['SECTION_NAME'] = trim($arMess[$lang_id]["P_SECTION_NAME"]); $res['ELEMENT_NAME'] = trim($arMess[$lang_id]["P_ELEMENT_NAME"]); } $res['NAME'] = !empty($res['NAME']) ? $res['NAME'] : 'Gallery'; $res['SECTION_NAME'] = !empty($res['SECTION_NAME']) ? $res['SECTION_NAME'] : 'Albums'; $res['ELEMENT_NAME'] = !empty($res['ELEMENT_NAME']) ? $res['ELEMENT_NAME'] : 'Photos'; $arFields["LANG"][$lang_id] = $res; } $obBlocktype = new CIBlockType(); $success = (bool) $obBlocktype->Add($arFields); if (!$success) { return; } } // 2. Import iblock $iBlockId = 0; $db_res = CIBlock::GetList(array(), array("CODE" => "photo", "XML_ID" => "photo-gallery")); if ($db_res && ($res = $db_res->Fetch())) { $iBlockId = intVal($res["ID"]); } else { $source_base = dirname(__FILE__); $documentRoot = rtrim(str_replace(array("\\\\", "//", "\\"), array("\\", "/", "/"), $_SERVER["DOCUMENT_ROOT"]), "\\/"); $source_base = substr($source_base, strLen($documentRoot)); $source_base = str_replace(array("\\", "//"), "/", "/" . $source_base . "/"); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/" . $DBType . "/cml2.php";
protected function addType( $arType ) { $db_iblock_type = CIBlockType::GetList(false, array("=ID"=>$arType["ID"])); if($ar_iblock_type = $db_iblock_type->Fetch()){ echo 'Тип инфоблока '.$arType["ID"].' уже есть.'; }else { $obBlocktype = new CIBlockType; $res = $obBlocktype->Add($arType); } }
function OnPostForm() { $wizard = &$this->GetWizard(); if ($wizard->IsNextButtonClick()) { $SITES = $wizard->GetVar('sites'); $arSitesPassed = array(); $pub_files = $wizard->GetVar('public_files_installed'); $pub_data = $wizard->GetVar('public_data_installed'); $pub_updater = $wizard->GetVar('public_data_updater'); $arErrors=array(); if (is_array($SITES) && count($SITES)) { $rS = CSite::GetList($ord='id', $dir='asc', array('ACTIVE'=>'Y')); $arSites = array(); while($arr = $rS->Fetch()) { $arSites[$arr['LID']] = $arr; } foreach($SITES as $ST) { if (! in_array($ST, array_keys($arSites)) || !($arSites[$ST]['DIR'] || $arSites[$ST]['DOC_ROOT'])) { $arErrors[] = array('LID'=>$ST, 'MSG'=>GetMessage('WD_SITE_NOT_FOUND')); continue; } if (! empty($arSites[$ST]['DOC_ROOT'])) { if (! is_writable($arSites[$ST]['DOC_ROOT']) ) { $arErrors[] = array('LID'=>$ST, 'NAME'=>$arSites[$ST]['NAME'], 'PATH'=>$arSites[$ST]['DOC_ROOT'], 'MSG'=>GetMessage('WD_SITE_NOT_WRITABLE')); continue; } else { $doc_root = preg_replace('#\/$#', '', $arSites[$ST]['DOC_ROOT']); } } else { if (! is_writable($_SERVER['DOCUMENT_ROOT'] . $arSites[$ST]['DIR']) ) { $arErrors[] = array('LID'=>$ST, 'NAME'=>$arSites[$ST]['NAME'], 'PATH'=>$_SERVER['DOCUMENT_ROOT'] . $arSites[$ST]['DIR'], 'MSG'=>GetMessage('WD_SITE_NOT_WRITABLE')); continue; } else { $doc_root = preg_replace('#\/$#', '', $_SERVER['DOCUMENT_ROOT'] . $arSites[$ST]['DIR']); } } $tmpls = $wizard->GetVar('template_installed'); $arFields=array(); $arFields['NAME'] = $arSites[$ST]['NAME']; $index=1; foreach($tmpls as $tp) { $arFields["TEMPLATE"][] = array( "TEMPLATE" => $tp, "SORT" => $index++, "CONDITION" => '' ); } $bIsUTF = (defined('BX_UTF') && BX_UTF == true); if (!$bIsUTF) { if (CopyDirFiles(str_replace('\\', '/', dirname(__FILE__)) . '/public_files', $doc_root, true, true) !== false) { $pub_files[] = '[' . $arSites[$ST]['LID'] . '] ' . $arSites[$ST]['NAME']; $langs = new CLang; if ($langs->Update($ST, $arFields) === false) { $arErrors[] = array('LID'=>$ST, 'NAME'=>$arSites[$ST]['NAME'], 'MSG'=>GetMessage('WD_TPL_NOT_ASSIGN')); } $arSitesPassed[] = $ST; } else { $this->SetError( GetMessage('WD_STEP_2_NOT_INSTALLED') ); } } else { if (WizardServices::CopyDirFilesEx(str_replace('\\', '/', dirname(__FILE__)) . '/public_files', $doc_root) !== false) { $pub_files[] = '[' . $arSites[$ST]['LID'] . '] ' . $arSites[$ST]['NAME']; $langs = new CLang; if ($langs->Update($ST, $arFields) === false) { $arErrors[] = array('LID'=>$ST, 'NAME'=>$arSites[$ST]['NAME'], 'MSG'=>GetMessage('WD_TPL_NOT_ASSIGN')); } $arSitesPassed[] = $ST; } else { $this->SetError( GetMessage('WD_STEP_2_NOT_INSTALLED') ); } } } } $wizard->SetVar('errors', $arErrors); $wizard->SetVar('public_files_installed', $pub_files); //$install_data = $wizard->GetVar('install_data'); if (count($arSitesPassed) && count($pub_data)) { CModule::IncludeModule('iblock'); // create iblock type $arType = array( 'ID'=>'BT', "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 100, "LANG" => Array(), ); $arLanguages = Array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while($arLanguage = $rsLanguage->Fetch()) $arLanguages[] = $arLanguage["LID"]; $bIBType = true; $dbType = CIBlockType::GetList(Array(),Array("=ID" => $arType["ID"])); if(! $dbType->Fetch()) { foreach($arLanguages as $languageID) { $arType["LANG"][$languageID]["NAME"] = 'Bitrixtemplates'; $arType["LANG"][$languageID]["ELEMENT_NAME"] = 'Item'; $arType["LANG"][$languageID]["SECTION_NAME"] = 'Section'; } $iblockType = new CIBlockType; $bIBType = $iblockType->Add($arType); } if ($bIBType) { $arCodeToId = array(); foreach($pub_data as $arF) { $iblockCode = $arF['name']; $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $arType['ID'])); if ($arIBlock = $rsIBlock->Fetch()) { CIBlock::Delete($arIBlock["ID"]); } $filepath = str_replace('\\', '/', dirname(__FILE__)) . '/public_data/'.$arF['filepath']; $filepath = preg_replace('#^.+?\/bitrix\/#','/bitrix/', $filepath); //echo $filepath; $iblockID = WizardServices::ImportIBlockFromXML( $filepath, $iblockCode, $arType['ID'], $arSitesPassed ); $arCodeToId[$iblockCode] = $iblockID; } if ($pub_updater) { $updater = str_replace('\\', '/', dirname(__FILE__)) . '/public_data/'.$pub_updater; $arUpdate = array(); include($updater); if (is_array($arUpdate)) { foreach($arUpdate as $arData) { $file = $_SERVER[DOCUMENT_ROOT].$arData['file']; //echo $file; //print_r($arCodeToId); $iblockCode = ToUpper($arData['code']).'_IBLOCK_CODE'; $iblockId = ToUpper($arData['code']).'_IBLOCK_ID'; $id = $arCodeToId[$arData['code']]; if (file_exists($file) && $id) { CWizardUtil::ReplaceMacros($file, array($iblockCode => $arType['ID'], $iblockId => $id)); } } } } } } } }
if ($_REQUEST["socnet_iblock"] == "Y" && $GLOBALS["APPLICATION"]->GetGroupRight("iblock") >= "W") { if ($_REQUEST["create_socnet_iblock_type"] == "Y") { if ($_REQUEST["create_iblock_type"] == "N" || $_REQUEST["create_iblock_type"] == "Y" && $_REQUEST["socnet_iblock_type_name"] != $_REQUEST["iblock_type_name"]) { $arIBTLang = array(); $arLang = array(); $l = CLanguage::GetList($lby = "sort", $lorder = "asc"); while ($ar = $l->ExtractFields("l_")) { $arIBTLang[] = $ar; } for ($i = 0; $i < count($arIBTLang); $i++) { $arLang[$arIBTLang[$i]["LID"]] = array("NAME" => $_REQUEST["socnet_iblock_type_name"]); } $arFields = array("ID" => $_REQUEST["socnet_iblock_type_name"], "LANG" => $arLang, "SECTIONS" => "Y"); $GLOBALS["DB"]->StartTransaction(); $obBlocktype = new CIBlockType(); $IBLOCK_TYPE_ID = $obBlocktype->Add($arFields); if (strLen($IBLOCK_TYPE_ID) <= 0) { $strWarning .= $obBlocktype->LAST_ERROR; $GLOBALS["DB"]->Rollback(); $bVarsFromForm = true; } else { $GLOBALS["DB"]->Commit(); $_REQUEST["create_socnet_iblock_type"] = "N"; $_REQUEST["socnet_iblock_type_name"] = ""; $_REQUEST["socnet_iblock_type_id"] = $IBLOCK_TYPE_ID; } } } else { $IBLOCK_TYPE_ID = $_REQUEST["socnet_iblock_type_id"]; } if ($IBLOCK_TYPE_ID) {
protected function addType($arType) { $db_iblock_type = \CIBlockType::GetList(array("ID" => "ASC"), array("=ID" => $arType["ID"])); if ($ar_iblock_type = $db_iblock_type->Fetch()) { $this->addMessage('Тип инфоблока ' . $arType["ID"] . ' уже есть.', true); } else { $obBlocktype = new \CIBlockType(); $res = $obBlocktype->Add($arType); $this->addMessage('Новый тип инфоблока ' . $arType["ID"] . ' добавлен.', true); } }
function InstallDB() { if(!CModule::IncludeModule("iblock")) return; global $DB; $arFields = Array( 'ID'=>'vdk_companies_type', 'SECTIONS'=>'Y', 'IN_RSS'=>'N', 'SORT'=>100, 'LANG'=>Array( 'en'=>Array( 'NAME'=>'Сompanies', 'SECTION_NAME'=>'Catalog', 'ELEMENT_NAME'=>'Сompany' ), 'ru'=>Array( 'NAME'=>'Компании', 'SECTION_NAME'=>'Каталог', 'ELEMENT_NAME'=>'Компания' ) ) ); $obBlocktype = new CIBlockType; $DB->StartTransaction(); $res = $obBlocktype->Add($arFields); if(!$res) {$DB->Rollback(); echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';} else {$DB->Commit();} $arFields = Array( 'ID'=>'vdk_cities_type', 'SECTIONS'=>'Y', 'IN_RSS'=>'N', 'SORT'=>100, 'LANG'=>Array( 'ru'=>Array( 'NAME'=>'Города', 'SECTION_NAME'=>'Страна', 'ELEMENT_NAME'=>'Город' ), 'en'=>Array( 'NAME'=>'Cities', 'SECTION_NAME'=>'Country', 'ELEMENT_NAME'=>'City' ) ) ); $obBlocktype = new CIBlockType; $DB->StartTransaction(); $res = $obBlocktype->Add($arFields); if(!$res) {$DB->Rollback(); echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';} else {$DB->Commit();} $iblockID = WizardServices::ImportIBlockFromXML("/bitrix/modules/vdk_companies/install/db/infoblocks/cities.xml", "vdk_cities", "vdk_cities_type", "s1"); if ($iblockID < 1) return false; $iblockID = WizardServices::ImportIBlockFromXML("/bitrix/modules/vdk_companies/install/db/infoblocks/1.xml", "vdk_companies", "vdk_companies_type", "s1"); if ($iblockID < 1) return false; return true; }
function CheckIBlockType($ID) { $obType = new CIBlockType(); $rsType = $obType->GetByID($ID); if ($arType = $rsType->Fetch()) { return $arType["ID"]; } else { $rsType = $obType->GetByID("1c_catalog"); if ($arType = $rsType->Fetch()) { return $arType["ID"]; } else { $result = $obType->Add(array("ID" => "1c_catalog", "SECTIONS" => "Y", "LANG" => array("ru" => array("NAME" => GetMessage("IBLOCK_XML2_CATALOG_NAME"), "SECTION_NAME" => GetMessage("IBLOCK_XML2_CATALOG_SECTION_NAME"), "ELEMENT_NAME" => GetMessage("IBLOCK_XML2_CATALOG_ELEMENT_NAME"))))); if ($result) { return $result; } else { return false; } } } }
} else { $arFields = array( 'ID' => $arIBlockInfo['OFFERS_NEW_TYPE'], 'SECTIONS' => 'N', 'IN_RSS' => 'N', 'SORT' => 500, ); $rsLanguages = CLanguage::GetList($by="sort", $order="desc",array('ACTIVE' => 'Y')); while ($arLanguage = $rsLanguages->Fetch()) { $arFields['LANG'][$arLanguage['LID']]['NAME'] = $arIBlockInfo['OFFERS_NEW_TYPE']; } $obIBlockType = new CIBlockType(); $mxOffersType = $obIBlockType->Add($arFields); if (!$mxOffersType) { $boolFlag = false; $strWarning .= Loc::getMessage( 'CAT_IBLOCK_OFFERS_ERR_NEW_IBLOCK_TYPE_NOT_ADD', array( '#PRODUCT#' => $arCurrentIBlocks[$intIBlockID]['INFO'], '#ERROR#' => $obIBlockType->LAST_ERROR ) ).'<br />'; } else { $arIBlockInfo['OFFERS_TYPE'] = $arIBlockInfo['OFFERS_NEW_TYPE']; }
return; } //if(!WIZARD_IS_RERUN) //{ WizardServices::CopyFile(WIZARD_SERVICE_RELATIVE_PATH . "/public/" . LANGUAGE_ID . "/video", WIZARD_SITE_DIR . "services/video"); $arMenuItem = array(GetMessage("VMENUIT"), WIZARD_SITE_DIR . "services/video/", array(), array(), ""); WizardServices::AddMenuItem(WIZARD_SITE_DIR . "services/.left.menu.php", $arMenuItem, WIZARD_SITE_ID, 11); //} $iblockCode = "video-meeting_" . WIZARD_SITE_ID; $iblockType = "events"; $dbIblockType = CIBlockType::GetList(array(), array("=ID" => $iblockType)); if (!$dbIblockType->Fetch()) { $obBlocktype = new CIBlockType(); $arFields = array("ID" => $iblockType, "SORT" => 500, "IN_RSS" => "N", "SECTIONS" => "Y"); $arFields["LANG"][LANGUAGE_ID] = array("NAME" => GetMessage("VI_IBLOCK_NAME")); $res = $obBlocktype->Add($arFields); } $rsIBlock = CIBlock::GetList(array(), array("XML_ID" => $iblockCode, "TYPE" => $iblockType)); $iblockID = false; if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; } if ($iblockID == false) { $rsIBlock = CIBlock::GetList(array(), array("CODE" => "video-meeting", "TYPE" => $iblockType)); if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; } } if ($iblockID == false) { $iblockID = WizardServices::ImportIBlockFromXML(WIZARD_SERVICE_RELATIVE_PATH . "/xml/lang_" . LANGUAGE_ID . "/res_video.xml", 'video-meeting', $iblockType, WIZARD_SITE_ID, $permissions = array("1" => "X", "2" => "R", WIZARD_PORTAL_ADMINISTRATION_GROUP => "X")); $iblock = new CIBlock();
function installDemoData() { if(!CModule::IncludeModule("iblock")) return; $currentPermissions = CLists::GetPermission(); $socnet_iblock_type_id = COption::GetOptionString("lists", "socnet_iblock_type_id"); $isSocnetInstalled = IsModuleInstalled('socialnetwork'); $arTypes = array(); if (empty($currentPermissions)) { $arTypes[] = array( "ID" => "lists", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 80, "LANG" => array(), ); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { $arTypes[] = array( "ID" => "lists_socnet", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 83, "LANG" => array(), ); } $arLanguages = array(); if (!empty($arTypes)) { $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } } foreach ($arTypes as $arType) { $dbType = CIBlockType::GetList(array(), array("=ID" => $arType["ID"])); if (!$dbType->Fetch()) { foreach($arLanguages as $languageID) { IncludeModuleLangFile(__FILE__, $languageID); $code = strtoupper($arType["ID"]); $arType["LANG"][$languageID]["NAME"] = GetMessage($code."_TYPE_NAME"); $arType["LANG"][$languageID]["ELEMENT_NAME"] = GetMessage($code."_ELEMENT_NAME"); if ($arType["SECTIONS"] == "Y") $arType["LANG"][$languageID]["SECTION_NAME"] = GetMessage($code."_SECTION_NAME"); } $iblockType = new CIBlockType; $iblockType->Add($arType); } } if (empty($currentPermissions)) { CLists::SetPermission('lists', array(1)); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { COption::SetOptionString("lists", "socnet_iblock_type_id", "lists_socnet"); CLists::EnableSocnet(true); } }
function installDemoData() { if (!CModule::IncludeModule("iblock")) { return; } $currentPermissions = CLists::GetPermission(); unset($currentPermissions["bitrix_processes"]); unset($currentPermissions["lists"]); $socnet_iblock_type_id = COption::GetOptionString("lists", "socnet_iblock_type_id"); $isSocnetInstalled = IsModuleInstalled('socialnetwork'); $arTypes = array(); if (empty($currentPermissions)) { $arTypes[] = array("ID" => "lists", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 80, "LANG" => array()); $arTypes[] = array("ID" => "bitrix_processes", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 90, "LANG" => array()); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { $arTypes[] = array("ID" => "lists_socnet", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 83, "LANG" => array()); } $arLanguages = array(); if (!empty($arTypes)) { $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } } foreach ($arTypes as $arType) { $dbType = CIBlockType::GetList(array(), array("=ID" => $arType["ID"])); if (!$dbType->Fetch()) { foreach ($arLanguages as $languageID) { IncludeModuleLangFile(__FILE__, $languageID); $code = strtoupper($arType["ID"]); $arType["LANG"][$languageID]["NAME"] = GetMessage($code . "_TYPE_NAME"); $arType["LANG"][$languageID]["ELEMENT_NAME"] = GetMessage($code . "_ELEMENT_NAME"); if ($arType["SECTIONS"] == "Y") { $arType["LANG"][$languageID]["SECTION_NAME"] = GetMessage($code . "_SECTION_NAME"); } } $iblockType = new CIBlockType(); $iblockType->Add($arType); } } if (empty($currentPermissions)) { CLists::SetPermission('lists', array(1)); CLists::SetPermission('bitrix_processes', array(1)); } $defaultSiteId = CSite::GetDefSite(); $siteObject = CSite::GetByID($defaultSiteId); $site = $siteObject->fetch(); $defaultLang = $site ? $site['LANGUAGE_ID'] : 'en'; if ($defaultLang == 'ua') { $defaultLang = 'ru'; } \Bitrix\Lists\Importer::installProcesses($defaultLang); if (IsModuleInstalled("bitrix24")) { \Bitrix\Main\Config\Option::set("lists", "livefeed_url", "/company/processes/"); } else { \Bitrix\Main\Config\Option::set("lists", "livefeed_url", "/services/processes/"); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { COption::SetOptionString("lists", "socnet_iblock_type_id", "lists_socnet"); CLists::EnableSocnet(true); } }
/** * Add tables to the infoblock * * @return bool */ public function installIblock() { $db_iblock_type = CIBlockType::GetList(array(), array('=ID' => CODE_IBLOCK_TYPE)); if (!($ar_iblock_type = $db_iblock_type->Fetch())) { global $DB; $obBlocktype = new CIBlockType(); $DB->StartTransaction(); $res = $obBlocktype->Add(array('ID' => CODE_IBLOCK_TYPE, 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 500, 'LANG' => array('ru' => array('NAME' => 'Сервисы', 'SECTION_NAME' => 'Разделы', 'ELEMENT_NAME' => 'Страницы'), 'en' => array('NAME' => 'Servies', 'SECTION_NAME' => 'Sections', 'ELEMENT_NAME' => 'Pages')))); if (!$res) { $DB->Rollback(); echo 'Error: ' . $obBlocktype->LAST_ERROR . '<br>'; } else { $DB->Commit(); } } $idBlock = 0; $res = CIBlock::GetList(array(), array('TYPE' => CODE_IBLOCK_TYPE, 'SITE_ID' => SITE_ID, 'ACTIVE' => 'Y', "CODE" => CODE_IBLOCK_CODE), true); if (!($ar_res = $res->Fetch())) { $ib = new CIBlock(); $arFields = array("ACTIVE" => 'Y', "NAME" => 'СЕО страницы', "CODE" => CODE_IBLOCK_CODE, "LIST_PAGE_URL" => "", "DETAIL_PAGE_URL" => "", "IBLOCK_TYPE_ID" => CODE_IBLOCK_TYPE, "SITE_ID" => array(SITE_ID), "SORT" => '500', "GROUP_ID" => array("2" => "R")); $idBlock = $ib->Add($arFields); } else { $idBlock = $ar_res['ID']; } $PropID = 0; $properties = CIBlockProperty::GetList(array("sort" => "asc"), array("ACTIVE" => "Y", "IBLOCK_ID" => $idBlock, "CODE" => CODE_PROP_IBLOCK)); if (!($prop_fields = $properties->GetNext())) { $arFieldsProps = array("NAME" => "URL копия", "ACTIVE" => "Y", "SORT" => "500", "CODE" => CODE_PROP_IBLOCK, "PROPERTY_TYPE" => "S", "IS_REQUIRED" => 'Y', "IBLOCK_ID" => $idBlock); $ibp = new CIBlockProperty(); $PropID = $ibp->Add($arFieldsProps); } else { $PropID = $prop_fields['ID']; } global $DB; $DB->PrepareFields("b_citfact_uservars_group"); $arFieldsDB = array('NAME' => "'СЕО Страницы'", 'CODE' => "'" . CODE_GROUP_USER_VARS . "'"); $IDGroup = $DB->Insert("b_citfact_uservars_group", $arFieldsDB, $err_mess . __LINE__); $IDGroup = intval($IDGroup); $arFieldsDB = array('GROUP_ID' => "'" . $IDGroup . "'", 'NAME' => "'ID свойства в SEO'", 'CODE' => "'" . CODE_PROPS_SEO_BLOCK_USER_VARS . "'", 'VALUE' => "'" . $PropID . "'", 'DESCRIPTION' => "'Символьный код свойства в инфоблоке SEO Страниц'"); $DB->Insert("b_citfact_uservars", $arFieldsDB, $err_mess . __LINE__); $arFieldsDB = array('GROUP_ID' => "'" . $IDGroup . "'", 'NAME' => "'Инфоблок SEO'", 'CODE' => "'" . CODE_ID_SEO_BLOCK_USER_VARS . "'", 'VALUE' => "'" . $idBlock . "'", 'DESCRIPTION' => "'Инфоблок SEO'"); $DB->Insert("b_citfact_uservars", $arFieldsDB, $err_mess . __LINE__); $arFieldsDB = array('GROUP_ID' => "'" . $IDGroup . "'", 'NAME' => "'Редирект'", 'CODE' => "'" . CODE_IS_REDIRECT_SEO . "'", 'VALUE' => "'N'", 'DESCRIPTION' => "'Если установлен данный параметр, будет работать редирект из обычной страницы на сео-страницу'"); $DB->Insert("b_citfact_uservars", $arFieldsDB, $err_mess . __LINE__); return true; }
/** * Создает тип инфоблока * * @param array $arFields * * @throws MigrationException */ protected function createIBlockType(array $arFields) { if (!$this->iBlockTypeGateway->Add($arFields)) { throw new MigrationException($this->iBlockTypeGateway->LAST_ERROR); } }
private function InstallIblockType() { if ($this->arResult["INSTALLATION"]["IBLOCK_TYPE_INSTALL"]) { $arFields = array("ID" => $this->ModuleIblockType, "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 100, "LANG" => array()); foreach ($this->arResult["SETTINGS"]["LANG"] as $Lang) { $arFields["LANG"][$Lang["LANGUAGE_ID"]] = array("NAME" => strlen(GetMessage("IDEA_INSTALL_IBLOCK_TYPE_LANG_" . ToUpper($Lang["LANGUAGE_ID"]))) == 0 ? GetMessage("IDEA_INSTALL_IBLOCK_TYPE_LANG_DEFAULT") : GetMessage("IDEA_INSTALL_IBLOCK_TYPE_LANG_" . ToUpper($Lang["LANGUAGE_ID"])), "SECTION_NAME" => strlen(GetMessage("IDEA_INSTALL_IBLOCK_SECTION_NAME_LANG_" . ToUpper($Lang["LANGUAGE_ID"]))) == 0 ? GetMessage("IDEA_INSTALL_IBLOCK_SECTION_NAME_LANG_DEFAULT") : GetMessage("IDEA_INSTALL_IBLOCK_SECTION_NAME_LANG_" . ToUpper($Lang["LANGUAGE_ID"]))); } $IBT = new CIBlockType(); if (!($IblockTypeId = $IBT->Add($arFields))) { $this->arResult["ERRORS"][] = $IBT->LAST_ERROR; } $this->arResult["INSTALLATION"]["IBLOCK_TYPE_ID"] = $IblockTypeId; } }