Example #1
0
 public static function check($type, $data = false)
 {
     $data = self::canonizeData($type, $data);
     $type = trim($data['ID']);
     $result = \CIBlockType::GetByID($type);
     $cdata = $result->Fetch();
     if ($cdata) {
         $cdata['LANG'] = array();
         foreach (array_keys(\TAO::getLangs()) as $lang) {
             $l = \CIBlockType::GetByIDLang($type, $lang);
             $cdata['LANG'][$lang] = array('NAME' => $l['NAME'], 'ELEMENT_NAME' => $l['ELEMENT_NAME'], 'SECTION_NAME' => $l['SECTION_NAME']);
         }
         $cdata = \TAO::mergeArgs($cdata, $data);
         self::updateType($cdata);
     } else {
         self::addNewType($data);
     }
 }
Example #2
0
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;
}
Example #3
0
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);
 }
Example #5
0
 }
 if (strlen($DATA_FILE_NAME) <= 0) {
     if (strlen($URL_FILE_1C) > 0) {
         $URL_FILE_1C = Rel2Abs("/", $URL_FILE_1C);
         if (file_exists($_SERVER["DOCUMENT_ROOT"] . $URL_FILE_1C) && is_file($_SERVER["DOCUMENT_ROOT"] . $URL_FILE_1C)) {
             $DATA_FILE_NAME = $_SERVER["DOCUMENT_ROOT"] . $URL_FILE_1C;
         }
     }
 }
 if (strlen($DATA_FILE_NAME) <= 0) {
     $strImportErrorMessage .= GetMessage("CICML_NO_LOAD_FILE") . "<br>";
 }
 global $IBLOCK_TYPE_ID;
 $IBLOCK_TYPE_ID = trim(strval($IBLOCK_TYPE_ID));
 if (0 < strlen($IBLOCK_TYPE_ID)) {
     $rsIBlockTypes = CIBlockType::GetByID($IBLOCK_TYPE_ID);
     if (!($arIBlockType = $rsIBlockTypes->Fetch())) {
         $IBLOCK_TYPE_ID = '';
     }
 }
 if (strlen($IBLOCK_TYPE_ID) <= 0) {
     $IBLOCK_TYPE_ID = COption::GetOptionString("catalog", "default_catalog_1c", "");
 }
 if (strlen($IBLOCK_TYPE_ID) <= 0) {
     ClearVars('f_');
     $iblocks = CIBlockType::GetList(array('SORT' => 'ASC'));
     if ($iblocks->ExtractFields("f_")) {
         $IBLOCK_TYPE_ID = $f_ID;
     }
 }
 if (strlen($IBLOCK_TYPE_ID) <= 0) {
Example #6
0
 public function CheckFields(&$arFields, $ID = false)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $this->LAST_ERROR = "";
     $NAME = isset($arFields["NAME"]) ? $arFields["NAME"] : "";
     if (($ID === false || array_key_exists("NAME", $arFields)) && strlen($NAME) <= 0) {
         $this->LAST_ERROR .= GetMessage("IBLOCK_BAD_NAME") . "<br>";
     }
     if ($ID === false && !is_set($arFields, "IBLOCK_TYPE_ID")) {
         $this->LAST_ERROR .= GetMessage("IBLOCK_BAD_BLOCK_TYPE") . "<br>";
     }
     if ($ID === false) {
         //For new record take default values
         $WORKFLOW = array_key_exists("WORKFLOW", $arFields) ? $arFields["WORKFLOW"] : "Y";
         $BIZPROC = array_key_exists("BIZPROC", $arFields) ? $arFields["BIZPROC"] : "N";
     } else {
         //For existing one read old values
         $arIBlock = CIBlock::GetArrayByID($ID);
         $WORKFLOW = array_key_exists("WORKFLOW", $arFields) ? $arFields["WORKFLOW"] : $arIBlock["WORKFLOW"];
         $BIZPROC = array_key_exists("BIZPROC", $arFields) ? $arFields["BIZPROC"] : $arIBlock["BIZPROC"];
         if ($BIZPROC != "Y") {
             $BIZPROC = "N";
         }
         //This is cache compatibility issue
     }
     if ($WORKFLOW == "Y" && $BIZPROC == "Y") {
         $this->LAST_ERROR .= GetMessage("IBLOCK_BAD_WORKFLOW_AND_BIZPROC") . "<br>";
     }
     if (is_set($arFields, "IBLOCK_TYPE_ID")) {
         $r = CIBlockType::GetByID($arFields["IBLOCK_TYPE_ID"]);
         if (!$r->Fetch()) {
             $this->LAST_ERROR .= GetMessage("IBLOCK_BAD_BLOCK_TYPE_ID") . "<br>";
         }
     }
     if (is_array($arFields["PICTURE"]) && array_key_exists("bucket", $arFields["PICTURE"]) && is_object($arFields["PICTURE"]["bucket"])) {
         //This is trusted image from xml import
     } elseif (isset($arFields["PICTURE"]) && is_array($arFields["PICTURE"]) && isset($arFields["PICTURE"]["name"])) {
         $error = CFile::CheckImageFile($arFields["PICTURE"]);
         if (strlen($error) > 0) {
             $this->LAST_ERROR .= $error . "<br>";
         }
     }
     if ($ID === false && !is_set($arFields, "LID") || is_set($arFields, "LID") && (is_array($arFields["LID"]) && count($arFields["LID"]) <= 0 || !is_array($arFields["LID"]) && strlen($arFields["LID"]) <= 0)) {
         $this->LAST_ERROR .= GetMessage("IBLOCK_BAD_SITE_ID_NA") . "<br>";
     } elseif (is_set($arFields, "LID")) {
         if (!is_array($arFields["LID"])) {
             $arFields["LID"] = array($arFields["LID"]);
         }
         foreach ($arFields["LID"] as $v) {
             $r = CSite::GetByID($v);
             if (!$r->Fetch()) {
                 $this->LAST_ERROR .= "'" . $v . "' - " . GetMessage("IBLOCK_BAD_SITE_ID") . "<br>";
             }
         }
     }
     $APPLICATION->ResetException();
     if ($ID === false) {
         $db_events = GetModuleEvents("iblock", "OnBeforeIBlockAdd", true);
     } else {
         $arFields["ID"] = $ID;
         $db_events = GetModuleEvents("iblock", "OnBeforeIBlockUpdate", true);
     }
     foreach ($db_events as $arEvent) {
         $bEventRes = ExecuteModuleEventEx($arEvent, array(&$arFields));
         if ($bEventRes === false) {
             if ($err = $APPLICATION->GetException()) {
                 $this->LAST_ERROR .= $err->GetString() . "<br>";
             } else {
                 $APPLICATION->ThrowException("Unknown error");
                 $this->LAST_ERROR .= "Unknown error.<br>";
             }
             break;
         }
     }
     /****************************** QUOTA ******************************/
     if (empty($this->LAST_ERROR) && COption::GetOptionInt("main", "disk_space") > 0) {
         $quota = new CDiskQuota();
         if (!$quota->checkDiskQuota($arFields)) {
             $this->LAST_ERROR = $quota->LAST_ERROR;
         }
     }
     /****************************** QUOTA ******************************/
     if (strlen($this->LAST_ERROR) > 0) {
         return false;
     }
     return true;
 }
Example #7
0
 $arParams["PHOTO_COMMENTS_TYPE"] = $parent->arParams["PHOTO_COMMENTS_TYPE"];
 $arParams["PHOTO_FORUM_ID"] = $parent->arParams["PHOTO_FORUM_ID"];
 $arParams["PHOTO_BLOG_URL"] = $parent->arParams["PHOTO_BLOG_URL"];
 $arParams["PHOTO_USE_CAPTCHA"] = $parent->arParams["PHOTO_USE_CAPTCHA"];
 if ((strlen($arParams["PHOTO_GROUP_IBLOCK_TYPE"]) <= 0 || intval($arParams["PHOTO_GROUP_IBLOCK_ID"]) <= 0) && CModule::IncludeModule("iblock")) {
     $ttl = 60 * 60 * 24;
     $cache_id = 'sonet_group_photo_iblock_' . SITE_ID;
     $cache_dir = '/bitrix/sonet_group_photo_iblock';
     $obCache = new CPHPCache();
     if ($obCache->InitCache($ttl, $cache_id, $cache_dir)) {
         $cacheData = $obCache->GetVars();
         $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $cacheData["PHOTO_GROUP_IBLOCK_TYPE"];
         $arParams["PHOTO_GROUP_IBLOCK_ID"] = $cacheData["PHOTO_GROUP_IBLOCK_ID"];
         unset($cacheData);
     } else {
         $rsIBlockType = CIBlockType::GetByID("photos");
         if ($arIBlockType = $rsIBlockType->Fetch()) {
             $rsIBlock = CIBlock::GetList(array("SORT" => "ASC"), array("IBLOCK_TYPE" => $arIBlockType["ID"], "CODE" => array("group_photogallery", "group_photogallery_" . SITE_ID), "ACTIVE" => "Y", "SITE_ID" => SITE_ID));
             if ($arIBlock = $rsIBlock->Fetch()) {
                 $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $arIBlock["IBLOCK_TYPE_ID"];
                 $arParams["PHOTO_GROUP_IBLOCK_ID"] = $arIBlock["ID"];
             }
         }
         if ($obCache->StartDataCache()) {
             $obCache->EndDataCache(array("PHOTO_GROUP_IBLOCK_TYPE" => $arIBlock["IBLOCK_TYPE_ID"], "PHOTO_GROUP_IBLOCK_ID" => $arIBlock["ID"]));
         }
     }
     unset($obCache);
 }
 $arParams["PHOTO_COUNT"] = $parent->arParams["LOG_PHOTO_COUNT"];
 $arParams["PHOTO_THUMBNAIL_SIZE"] = $parent->arParams["LOG_PHOTO_THUMBNAIL_SIZE"];
Example #8
0
 private function CheckIblockType()
 {
     if ($arIblockType = CIBlockType::GetByID($this->ModuleIblockType)->Fetch()) {
         $this->arResult["INSTALLATION"]["IBLOCK_TYPE_INSTALL"] = false;
         $this->arResult["INSTALLATION"]["IBLOCK_TYPE_ID"] = $this->ModuleIblockType;
     }
 }
Example #9
0
 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;
 }
Example #10
0
 /**
  * Абстрактный метод проверки передаваемых параметров
  *
  * checkParams
  * @param array $params
  * @return mixed|void
  * @throws \Exception
  */
 public function checkParams($params)
 {
     $CIblockType = new \CIBlockType();
     if (!isset($params['iblockTypeId']) || !strlen($params['iblockTypeId'])) {
         throw new BimException('В параметрах не найден iblockTypeId');
     }
     $iblockTypeDbRes = $CIblockType->GetByID($params['iblockTypeId']);
     if ($iblockTypeDbRes === false || !$iblockTypeDbRes->SelectedRowsCount()) {
         throw new BimException('В системе не найден тип инфоблока с id = ' . $params['iblockTypeId']);
     }
     $this->ownerItemDbData = $iblockTypeDbRes->Fetch();
 }
Example #11
0
 /**
  * genIblocktypeDelete
  * @param array $args
  * @param array $options
  */
 public function genIblocktypeDelete(array $args, array $options = array())
 {
     $dialog = new \ConsoleKit\Widgets\Dialog($this->console);
     $iblockTypeId = isset($options['typeId']) ? $options['typeId'] : false;
     if (!$iblockTypeId) {
         $do = true;
         while ($do) {
             $desk = "Put block type id - no default/required";
             $iblockTypeId = $dialog->ask($desk . PHP_EOL . $this->color('[IBLOCK_TYPE_ID]:', \ConsoleKit\Colors::YELLOW), '', false);
             $iblockDbRes = \CIBlockType::GetByID($iblockTypeId);
             if ($iblockDbRes->SelectedRowsCount()) {
                 $do = false;
             } else {
                 $this->error('Iblock with id = "' . $iblockTypeId . '" not exist.');
             }
         }
     }
     # get description options
     $desc = isset($options['d']) ? $options['d'] : "";
     $autoTag = "delete";
     $this->_save($this->generateObject->generateDeleteCode($iblockTypeId), $this->generateObject->generateAddCode($iblockTypeId), $desc, $autoTag);
 }
Example #12
0
            $arMESS[$lang] = $MESS;
        }
        return $arMESS[$lang];
    }
}
$SITE_ID = defined("SITE_ID") && strLen(SITE_ID) > 0 ? SITE_ID : "s1";
$arLangs = array();
$arMess = array();
__IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__)));
// Get language
$db_res = CLangAdmin::GetList($b = "sort", $o = "asc");
while ($res = $db_res->Fetch()) {
    $arLangs[] = $res["LID"];
}
// 1. Create iblock type
$iblockType = CIBlockType::GetByID("gallery");
if (!($iblockType && $iblockType->Fetch())) {
    $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;
    }
Example #13
0
    function GetContent($arParams)
    {
        if (!CModule::IncludeModule('iblock')) {
            return false;
        }
        if ($_POST['library_resource_type'] != "folder") {
            //iblock
            $iblock_type = '';
            $iblock_id = 0;
            if ($_POST['library_IBLOCK_TYPE'] != '') {
                $res = CIBlockType::GetByID($_POST['library_IBLOCK_TYPE']);
                if ($res_arr = $res->Fetch()) {
                    $iblock_type = $res_arr["ID"];
                }
                if ($iblock_type != '') {
                    if ($_POST['library_NEW_IBLOCK'] == 'Y') {
                        //new iblock
                        $ib = new CIBlock();
                        $arFields = array("ACTIVE" => "Y", "VERSION" => 1, "LIST_PAGE_URL" => $arParams['path'], "DETAIL_PAGE_URL" => $arParams['path'] . 'element/view/#ID#/', "NAME" => $_POST['library_TITLE'], "IBLOCK_TYPE_ID" => $iblock_type, "LID" => array($arParams['site']), "SORT" => "500", "WORKFLOW" => "N", "BIZPROC" => "N", "SECTION_CHOOSER" => "L");
                        if (is_array($_POST['library_PERMISSION'])) {
                            $arPerm = array();
                            foreach ($_POST['library_PERMISSION'] as $grp => $perm) {
                                if ($perm == 'R' || $perm == 'U' || $perm == 'W') {
                                    $arPerm[$grp] = $perm;
                                }
                                if ($perm == 'U') {
                                    $arFields['BIZPROC'] = 'Y';
                                }
                            }
                            $arFields["GROUP_ID"] = $arPerm;
                        }
                        $iblock_id = $ib->Add($arFields);
                    } elseif (intval($_POST['library_IBLOCK_ID']) > 0) {
                        //existing iblock: need check permissions
                        if (CIBlock::GetPermission($_POST['library_IBLOCK_ID']) >= "X") {
                            $iblock_id = intval($_POST['library_IBLOCK_ID']);
                        }
                    }
                }
            }
            //forum for comments
            $forum_id = 0;
            if ($_POST['library_USE_COMMENTS'] == 'Y') {
                if ($_POST['library_NEW_FORUM'] == 'Y') {
                    CModule::IncludeModule('forum');
                    //new forum
                    $arFields = array("NAME" => GetMessage("library_wizard_forum_name") . " \"" . $_POST['library_TITLE'] . "\"", "SITES" => array($arParams['site'] => $arParams["path"] . "element/view/#PARAM2#/"), "ACTIVE" => "Y", "INDEXATION" => "N", "SORT" => 150, "ALLOW_ANCHOR" => "Y", "ALLOW_BIU" => "Y", "ALLOW_IMG" => "Y", "ALLOW_LIST" => "Y", "ALLOW_QUOTE" => "Y", "ALLOW_CODE" => "Y", "ALLOW_FONT" => "Y", "ALLOW_SMILES" => "Y", "ALLOW_TOPIC_TITLED" => "Y");
                    if (is_array($_POST['library_FORUM_PERMISSION'])) {
                        $arPerm = array();
                        foreach ($_POST['library_FORUM_PERMISSION'] as $grp => $perm) {
                            if ($perm == 'E' || $perm == 'M') {
                                $arPerm[$grp] = $perm;
                            }
                        }
                        $arFields["GROUP_ID"] = $arPerm;
                    }
                    $forum_id = CForumNew::Add($arFields);
                } elseif (intval($_POST['library_FORUM_ID']) > 0) {
                    $forum_id = intval($_POST['library_FORUM_ID']);
                }
            }
            //file size
            $iUploadMaxFilesize = intval(ini_get('upload_max_filesize'));
            $iPostMaxSize = intval(ini_get('post_max_size'));
            $iUploadMaxFilesize = min($iUploadMaxFilesize, $iPostMaxSize);
            //bizproc templates
            if ($_POST['library_NEW_IBLOCK'] == 'Y' && $iblock_id > 0 && CModule::IncludeModule("bizproc")) {
                $documentType = array("webdav", "CIBlockDocumentWebdav", "iblock_" . $iblock_id);
                if (!function_exists("__wd_replace_user_and_groups")) {
                    function __wd_replace_user_and_groups(&$val, $key, $params = array())
                    {
                        if ($key == "MailText") {
                            $val = str_replace("/company/personal/bizproc/{=Workflow:id}/", $params["path"], $val);
                        }
                        return true;
                    }
                }
                if ($handle = opendir($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bizproc/templates')) {
                    $arr = array("path" => str_replace("//", "/", $arParams["path"] . "/webdav_bizproc_view/{=Document:ID}/"));
                    while (false !== ($file = readdir($handle))) {
                        if (!is_file($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bizproc/templates/' . $file)) {
                            continue;
                        }
                        $arFields = false;
                        include $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bizproc/templates/' . $file;
                        array_walk_recursive($arFields["TEMPLATE"], "__wd_replace_user_and_groups", $arr);
                        if ($file == "status.php") {
                            $arFields["AUTO_EXECUTE"] = CBPDocumentEventType::Create;
                        }
                        if (is_array($arFields)) {
                            $arFields["DOCUMENT_TYPE"] = $documentType;
                            $arFields["SYSTEM_CODE"] = $file;
                            if (is_object($GLOBALS['USER'])) {
                                $arFields["USER_ID"] = $GLOBALS['USER']->GetID();
                            }
                            try {
                                CBPWorkflowTemplateLoader::Add($arFields);
                            } catch (Exception $e) {
                            }
                        }
                    }
                    closedir($handle);
                }
            }
            $s = '<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");?>
<?$APPLICATION->IncludeComponent("bitrix:webdav", ".default", array(
	"RESOURCE_TYPE" => "IBLOCK", 
	"IBLOCK_TYPE" => "' . EscapePHPString($iblock_type) . '",
	"IBLOCK_ID" => "' . intval($iblock_id) . '",
	"NAME_FILE_PROPERTY" => "FILE",
	"REPLACE_SYMBOLS" => "N",
	"USE_AUTH" => "Y",
	"UPLOAD_MAX_FILESIZE" => "' . $iUploadMaxFilesize . '",
	"UPLOAD_MAX_FILE" => "4",
	"SEF_MODE" => "Y",
	"SEF_FOLDER" => "' . EscapePHPString($arParams["path"]) . '",
	"AJAX_MODE" => "N",
	"AJAX_OPTION_SHADOW" => "Y",
	"AJAX_OPTION_JUMP" => "N",
	"AJAX_OPTION_STYLE" => "Y",
	"AJAX_OPTION_HISTORY" => "N",
	"CACHE_TYPE" => "A",
	"CACHE_TIME" => "3600",
	"COLUMNS" => array(
		0 => "NAME",
		1 => "TIMESTAMP_X",
		2 => "USER_NAME",
		3 => "FILE_SIZE",
		4 => "WF_STATUS_ID",
		5 => "",
	),
	"PAGE_ELEMENTS" => "50",
	"PAGE_NAVIGATION_TEMPLATE" => "",
	"STR_TITLE" => "' . EscapePHPString($_POST['library_TITLE']) . '",
	"SET_TITLE" => "Y",
	"DISPLAY_PANEL" => "N",
	"SHOW_TAGS" => "' . ($_POST['library_SHOW_TAGS'] == 'Y' ? 'Y' : 'N') . '",
	"TAGS_PAGE_ELEMENTS" => "' . (intval($_POST['library_TAGS_PAGE_ELEMENTS']) > 0 ? intval($_POST['library_TAGS_PAGE_ELEMENTS']) : 50) . '",
	"TAGS_PERIOD" => "",
	"TAGS_INHERIT" => "Y",
	"TAGS_FONT_MAX" => "30",
	"TAGS_FONT_MIN" => "14",
	"TAGS_COLOR_NEW" => "486DAA",
	"TAGS_COLOR_OLD" => "486DAA",
	"TAGS_SHOW_CHAIN" => "Y",
	"USE_COMMENTS" => "' . ($_POST['library_USE_COMMENTS'] == 'Y' ? 'Y' : 'N') . '",
	"FORUM_ID" => "' . intval($forum_id) . '",
	"PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
	"USE_CAPTCHA" => "Y",
	"PREORDER" => "Y",
	"AJAX_OPTION_ADDITIONAL" => "",
	"SEF_URL_TEMPLATES" => array(
		"user_view" => "/company/personal/user/#USER_ID#/",
		"sections" => "#PATH#",
		"section_edit" => "folder/edit/#SECTION_ID#/#ACTION#/",
		"element" => "element/view/#ELEMENT_ID#/",
		"element_edit" => "element/edit/#ACTION#/#ELEMENT_ID#/",
		"element_history" => "element/history/#ELEMENT_ID#/",
		"element_history_get" => "element/historyget/#ELEMENT_ID#/#ELEMENT_NAME#",
		"element_upload" => "element/upload/#SECTION_ID#/",
		"help" => "help",
		"search" => "search/",
	)
	),
	false
);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>';
            return $s;
        } else {
            $_REQUEST["library_FOLDER"] = strtolower(str_replace("//", "/", "/" . $_REQUEST["library_FOLDER"] . "/"));
            CheckDirPath($_SERVER['DOCUMENT_ROOT'] . $_REQUEST["library_FOLDER"], true);
            if (!empty($_REQUEST["library_FOLDER_PERMISSION"]) && is_array($_REQUEST["library_FOLDER_PERMISSION"])) {
                $GLOBALS["APPLICATION"]->SetFileAccessPermission($_REQUEST["library_FOLDER"], $_REQUEST["library_FOLDER_PERMISSION"]);
            }
            $s = '<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");?>
<?$APPLICATION->IncludeComponent("bitrix:webdav", ".default", array(
	"RESOURCE_TYPE" => "FOLDER",
	"FOLDER" => "' . EscapePHPString($_REQUEST["library_FOLDER"]) . '",
	"USE_AUTH" => "Y",
	"SEF_MODE" => "Y",
	"SEF_FOLDER" =>  "' . EscapePHPString($arParams["path"]) . '",
	"CACHE_TYPE" => "A",
	"CACHE_TIME" => "3600",
	"COLUMNS" => array(
		0 => "NAME",
		1 => "FILE_SIZE",
		2 => "TIMESTAMP_X",
		4 => "",
	),
	"SET_TITLE" => "Y"
	),
	false
);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>';
            return $s;
        }
    }
Example #14
0
 /**
  * @param array $data
  * @param bool $deleteIfExists
  */
 protected function IblockTypeCreate(array $data, $deleteIfExists = false)
 {
     global $DB;
     if (empty(trim($data['ID']))) {
         throw new \Exception('You must set iblock type ID');
     }
     $name = trim($data['ID']);
     $fire = false;
     $res = \CIBlockType::GetByID($name);
     if ($ob = $res->Fetch()) {
         if ($deleteIfExists) {
             $this->IblockTypeDelete($name);
             $fire = true;
         }
     } else {
         $fire = true;
     }
     if ($fire) {
         $obBlocktype = new \CIBlockType();
         $DB->StartTransaction();
         $res = $obBlocktype->Add(array_merge(['ID' => $name, 'SECTIONS' => 'Y', 'IN_RSS' => 'N', 'SORT' => 500], $data));
         if (!$res) {
             $DB->Rollback();
             $error = "Can't create {$name} iblock type";
         } else {
             echo "Add {$name} iblock type\r\n";
         }
         $DB->Commit();
         if (isset($error)) {
             throw new \Exception($error);
         }
     }
     return $name;
 }
Example #15
0
 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 {
            LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . $lang . "&ID=" . UrlEncode($ID) . "&" . $tabControl->ActiveTabParam());
        }
    }
}
if (strlen($ID) > 0) {
    $APPLICATION->SetTitle(GetMessage("IBTYPE_E_TITLE", array('#ITYPE#' => $ID)));
} else {
    $APPLICATION->SetTitle(GetMessage("IBTYPE_E_TITLE_2"));
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
ClearVars("str_");
$str_SECTIONS = "Y";
$str_SORT = "500";
$result = CIBlockType::GetByID($ID);
if (!$result->ExtractFields("str_")) {
    $ID = '';
}
if ($bVarsFromForm) {
    $DB->InitTableVarsForEdit("b_iblock_type", "", "str_");
    $str_SECTIONS = $SECTIONS;
}
$aMenu = array(array("TEXT" => GetMessage("IBTYPE_E_LIST"), "TITLE" => GetMessage("IBTYPE_E_LIST_TITLE"), "LINK" => "iblock_type_admin.php?lang=" . LANGUAGE_ID, "ICON" => "btn_list"));
if (strlen($ID) > 0) {
    $aMenu[] = array("SEPARATOR" => "Y");
    $aMenu[] = array("TEXT" => GetMessage("IBTYPE_E_CREATE"), "TITLE" => GetMessage("IBTYPE_E_CREATE_TITLE"), "LINK" => "iblock_type_edit.php?lang=" . LANGUAGE_ID, "ICON" => "btn_new");
    $aMenu[] = array("TEXT" => GetMessage("IBTYPE_E_DEL"), "TITLE" => GetMessage("IBTYPE_E_DEL_TITLE"), "LINK" => "javascript:if(confirm('" . GetMessageJS("IBTYPE_E_DEL_CONF") . "')) window.location='/bitrix/admin/iblock_type_admin.php?ID=" . $ID . "&action=delete&lang=" . LANGUAGE_ID . "&" . bitrix_sessid_get() . "';", "ICON" => "btn_delete");
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
 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();
         ShowError(GetMessage('GREENSIGHT_IBLOCK_IMPORT_ERROR_TYPE_SELECT'));
         break;
     }
     // загрузка файла в переменную
     $data = explode("\n", file_get_contents($_FILES['import_file']['tmp_name']));
     if ($data[0][0] == '#') {
         unset($data[0]);
     }
     if (!strlen($data[1])) {
         unset($data[1]);
Example #18
0
			}
		}
		// create iblock
		$arNewOffers = array();
		if ($boolFlag)
		{
			$DB->StartTransaction();
			foreach ($arNewIBlocksList as $intIBlockID => $arIBlockInfo)
			{
				if (CATALOG_NEW_OFFERS_IBLOCK_NEED == $arIBlockInfo['OFFERS_IBLOCK_ID'])
				{
					// need new offers
					$arResultNewCatalogItem = array();
					if ('Y' == $arIBlockInfo['CREATE_OFFERS_NEW_TYPE'])
					{
						$rsIBlockTypes = CIBlockType::GetByID($arIBlockInfo['OFFERS_NEW_TYPE']);
						if ($arIBlockType = $rsIBlockTypes->Fetch())
						{
							$arIBlockInfo['OFFERS_TYPE'] = $arIBlockInfo['OFFERS_NEW_TYPE'];
						}
						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())
							{
Example #19
0
<?php

include $_SERVER['DOCUMENT_ROOT'] . '/local/vendor/techart/bitrix.tao/include/prolog_admin.php';
$code = htmlspecialcharsbx($_GET['id']);
$langs = \TAO::getLangs();
$data = CIBlockType::GetByID($code)->Fetch();
$langData = array();
$name = false;
foreach ($langs as $lang => $ldata) {
    if ($r = CIBlockType::GetByIDLang($code, $lang, false)) {
        $langData[$lang] = $r;
        if (!$name) {
            $name = $r['NAME'];
        }
    }
}
?>

<h2>Экспорт типа "<?php 
echo $name;
?>
"</h2>
Мнемокод: <b><?php 
echo $code;
?>
</b>, файл: <b>local/schema/types/<?php 
echo $code;
?>
.php</b><br>

<?php