/** * @param $data * @param null $dbVersion * @throws \Exception * @return ApplyResult */ public function applySnapshot($data, $dbVersion = null) { $data = $this->handleNullValues($data); $sec = new \CIBlockSection(); $res = new ApplyResult(); $extId = $data['ID']; if ($dbVersion) { $data['IBLOCK_ID'] = $this->getReferenceController()->getCurrentIdByOtherVersion($data['IBLOCK_ID'], ReferenceController::GROUP_IBLOCK, $dbVersion); $data['IBLOCK_SECTION_ID'] && ($data['IBLOCK_SECTION_ID'] = $this->getCurrentVersionId($data['IBLOCK_SECTION_ID'], $dbVersion)); $id = $this->getCurrentVersionId($extId, $dbVersion); } else { $id = $extId; } if (!$dbVersion && !SectionTable::getList(array('filter' => array('=ID' => $id)))->fetch()) { $addRes = SectionTable::add(array('ID' => $id, 'IBLOCK_ID' => $data['IBLOCK_ID'], 'TIMESTAMP_X' => new DateTime(), 'NAME' => $data['NAME'], 'DESCRIPTION_TYPE' => $data['DESCRIPTION_TYPE'])); if (!$addRes->isSuccess()) { throw new \Exception('Не удалось возобновить секцию(раздел) текущей версии. ' . implode(', ', $addRes->getErrorMessages()) . "\n" . var_export($data, true)); } } unset($data['CREATED_BY'], $data['MODIFIED_BY']); if ($id && ($currentData = SectionTable::getById($id)->fetch())) { $data['PICTURE'] = $currentData['PICTURE']; $data['DETAIL_PICTURE'] = $currentData['DETAIL_PICTURE']; $res->setSuccess((bool) $sec->Update($id, $data)); } else { unset($data['PICTURE'], $data['DETAIL_PICTURE']); $res->setSuccess((bool) ($id = $sec->Add($data))); $this->registerCurrentVersionId($id, $this->getReferenceValue($extId, $dbVersion)); } $res->setId($id); $res->setMessage($sec->LAST_ERROR); return $res; }
public static function departmentUpdate($params) { if (self::canEdit()) { CModule::IncludeModule('iblock'); $params = array_change_key_case($params, CASE_UPPER); $arDept = self::getDepartment($params['ID']); if (is_array($arDept)) { $arFields = array(); if (isset($params['NAME'])) { $arFields['NAME'] = $params['NAME']; } if (isset($params['SORT'])) { $arFields['SORT'] = $params['SORT']; } if (isset($params['PARENT'])) { $arFields['IBLOCK_SECTION_ID'] = $params['PARENT']; } if (isset($params['UF_HEAD'])) { $arFields['UF_HEAD'] = $params['UF_HEAD']; } if (count($arFields) > 0) { $ob = new CIBlockSection(); if (!$ob->Update($arDept['ID'], $arFields)) { throw new Exception($ob->LAST_ERROR); } } return true; } else { throw new Exception('Department not found'); } } else { throw new Exception('Access denied!'); } }
public static function Update($ID, &$arFields) { if (!CModule::IncludeModule('iblock')) { return false; } $section = new CIBlockSection(); $dbResult = $section->GetList(array(), array('ID' => $ID, 'GLOBAL_ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N'), false, array('IBLOCK_ID'), false); $currentFields = $dbResult ? $dbResult->Fetch() : null; if (!(is_array($currentFields) && CCrmCatalog::Exists(intval($currentFields['IBLOCK_ID'])))) { self::$LAST_ERROR_CODE = self::ERR_SECTION_NOT_FOUND; self::$LAST_ERROR = GetMessage('CRM_PRODUCT_SECTION_ERR_SECTION_NOT_FOUND'); return false; } $sectionFields = CCrmProductSectionDbResult::MapKeys($arFields); $sectionFields['CHECK_PERMISSIONS'] = 'N'; $result = $section->Update($ID, $sectionFields); if ($result === false) { self::$LAST_ERROR_CODE = self::ERR_IBLOCK_SECTION_UPDATE; self::$LAST_ERROR = $section->LAST_ERROR; } return $result; }
/** * @inheritdoc * * @throws FillDataException */ public function fill($propCodePublicId = null, $propCodeLang = null, $defaultLang = null, $force = false) { $sectionModel = new \CIBlockSection(); $rsSections = $sectionModel->GetList([], ['IBLOCK_ID' => $this->getIblockId()], false, ['ID', 'UF_' . $propCodePublicId, 'UF_' . $propCodeLang]); while ($section = $rsSections->Fetch()) { $updateResult = null; if ($propCodePublicId) { if ($force === false && !empty($section['UF_' . $propCodePublicId])) { continue; } $updateResult = $sectionModel->Update($section['ID'], ['UF_' . $propCodePublicId => $section['ID']]); } if ($propCodeLang) { if ($force === false && !empty($section['UF_' . $propCodeLang])) { continue; } $updateResult = $sectionModel->Update($section['ID'], ['UF_' . $propCodeLang => $defaultLang]); } if ($updateResult === false) { throw new FillDataException($section['ID'], $this->getIblockId(), $sectionModel->LAST_ERROR); } } }
function DeleteDepartment($arFields) { $dpt = intval($arFields['dpt_id']); global $iblockID; $dbRes = CIBlockSection::GetList(array(), array("ID" => $dpt, "IBLOCK_ID" => $iblockID, "CHECK_PERMISSIONS" => "Y"), false, array('ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID')); if ($arSection = $dbRes->Fetch()) { if ($arSection['IBLOCK_SECTION_ID'] > 0) { $dbRes = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $iblockID, 'SECTION_ID' => $arSection['ID']), false, array('ID', 'IBLOCK_ID')); $obIBlockSection = new CIBlockSection(); $GLOBALS['DB']->StartTransaction(); while ($arRes = $dbRes->Fetch()) { $obIBlockSection->Update($arRes['ID'], array('IBLOCK_SECTION_ID' => $arSection['IBLOCK_SECTION_ID'])); } if ($obIBlockSection->Delete($arSection['ID'])) { $GLOBALS['DB']->Commit(); echo "{id: '" . $arSection['IBLOCK_SECTION_ID'] . "'}"; } else { $GLOBALS['DB']->Rollback(); $res = array('error' => trim(str_replace('<br>', "\n", $ob->LAST_ERROR))); echo "{errors: '" . $res["error"] . "'}"; } } } }
public static function SetDepartmentHead($userId, $sectionId) { //echo "Setting ".$userId." as head of ".$sectionId; $iblockId = COption::GetOptionInt("intranet", "iblock_structure", false, false); if ($iblockId && $sectionId && $userId && CModule::IncludeModule('iblock')) { /*$perm = CIBlock::GetPermission($iblockId); if ($perm >= 'W') {*/ $obS = new CIBlockSection(); if ($obS->Update($sectionId, array('UF_HEAD' => $userId), false, false)) { return true; } else { // update error return false; } /*} else { // access denied return false; }*/ } else { // bad data return false; } }
} else { $arGroupsTmp[$i]["DETAIL_PICTURE"] = CFile::MakeFileArray($io->GetPhysicalName($_SERVER["DOCUMENT_ROOT"] . $PATH2IMAGE_FILES . "/" . $arGroupsTmp[$i]["DETAIL_PICTURE"])); if (!empty($arGroupsTmp[$i]["DETAIL_PICTURE"]) && is_array($arGroupsTmp[$i]["DETAIL_PICTURE"])) { $arGroupsTmp[$i]["DETAIL_PICTURE"]['COPY_FILE'] = 'Y'; } } $bFilePres = !empty($arGroupsTmp[$i]["DETAIL_PICTURE"]) && isset($arGroupsTmp[$i]["DETAIL_PICTURE"]["tmp_name"]) && '' !== $arGroupsTmp[$i]["DETAIL_PICTURE"]["tmp_name"]; } if (!$bFilePres) { unset($arGroupsTmp[$i]["DETAIL_PICTURE"]); } } $res = CIBlockSection::GetList(array(), $arFilter, false, array('ID')); if ($arr = $res->Fetch()) { $LAST_GROUP_CODE = $arr["ID"]; $res = $bs->Update($LAST_GROUP_CODE, $arGroupsTmp[$i], true, true, 'Y' === $IMAGE_RESIZE); if (!$res) { $strErrorR .= GetMessage("CATI_LINE_NO") . " " . $line_num . ". " . GetMessage("CATI_ERR_UPDATE_SECT") . " " . $bs->LAST_ERROR . "<br>"; } } else { $arGroupsTmp[$i]["IBLOCK_ID"] = $IBLOCK_ID; $arGroupsTmp[$i]["ACTIVE"] = isset($arGroupsTmp[$i]["ACTIVE"]) && 'N' === $arGroupsTmp[$i]["ACTIVE"] ? 'N' : 'Y'; $LAST_GROUP_CODE = $bs->Add($arGroupsTmp[$i], true, true, 'Y' === $IMAGE_RESIZE); if (!$LAST_GROUP_CODE) { $strErrorR .= GetMessage("CATI_LINE_NO") . " " . $line_num . ". " . GetMessage("CATI_ERR_ADD_SECT") . " " . $bs->LAST_ERROR . "<br>"; } } if ('' === $strErrorR) { $arSectionCache[$sectionIndex] = $LAST_GROUP_CODE; } } else {
$arParams['DO_NOT_REDIRECT'] = true; include $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/components/bitrix/webdav.iblock.rights/action.php"; $_REQUEST["UF_USE_BP"] = $_REQUEST["UF_USE_BP"] == "Y" ? "Y" : "N"; $_REQUEST["UF_USE_EXT_SERVICES"] = CWebDavIblock::resolveDefaultUseExtServices($_REQUEST["UF_USE_EXT_SERVICES"]); if ($_REQUEST["UF_USE_BP"] != $arLibrary["UF_USE_BP"] || $_REQUEST["UF_USE_EXT_SERVICES"] != $arLibrary['UF_USE_EXT_SERVICES']) { if (!isset($arLibrary["~UF_USE_BP"])) { __wd_check_uf_use_bp_property($arParams["IBLOCK_ID"]); } if (!isset($arLibrary["~UF_USE_EXT_SERVICES"])) { CWebDavIblock::checkUfUseExtServices((int) $arParams["IBLOCK_ID"]); } $arFields = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "UF_USE_BP" => $_REQUEST["UF_USE_BP"], "UF_USE_EXT_SERVICES" => $_REQUEST["UF_USE_EXT_SERVICES"]); $GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); $bs = new CIBlockSection(); $res = $bs->Update($arLibrary["ID"], $arFields); } $popupWindow->Close($bReload = true, $_REQUEST["back_url"]); die; } //HTML output $popupWindow->ShowTitlebar(GetMessage("SN_TITLE")); $popupWindow->StartDescription("bx-access-folder"); if (isset($strWarning) && $strWarning != "") { $popupWindow->ShowValidationError($strWarning); } ?> <p><b><?php echo GetMessage("SN_TITLE_TITLE"); ?>
$_REQUEST["DROP_PASSWORD"] = "******"; } elseif ($_REQUEST["USE_PASSWORD"] == "Y") { $arFields["UF_PASSWORD"] = md5($_REQUEST["PASSWORD"]); $GLOBALS["UF_PASSWORD"] = md5($_REQUEST["PASSWORD"]); } else { $arFields["UF_PASSWORD"] = $arResult["SECTION"]["~PASSWORD"]["VALUE"]; $GLOBALS["UF_PASSWORD"] = $arResult["SECTION"]["~PASSWORD"]["VALUE"]; } foreach ($_REQUEST as $key => $val) { if (substr($key, 0, 3) == "UF_") { $GLOBALS[$key] = $val; } } $bs = new CIBlockSection(); $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); if ($bs->Update($arResult["SECTION"]["ID"], $arFields)) { $rsSection = CIBlockSection::GetList(array(), array("ID" => $arResult["SECTION"]["ID"], "IBLOCK_ID" => $arParams["IBLOCK_ID"]), false, array("UF_DATE", "UF_PASSWORD")); $arResultSection = $rsSection->GetNext(); $arResultFields = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "DATE" => PhotoDateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResultSection["UF_DATE"], CSite::GetDateFormat())), "PASSWORD" => $arResultSection["UF_PASSWORD"], "NAME" => $arResultSection["NAME"], "DESCRIPTION" => $arResultSection["DESCRIPTION"], "ID" => $arResult["SECTION"]["ID"], "error" => ""); $arResult["URL"] = CComponentEngine::MakePathFromTemplate($arParams["~SECTION_URL"], array("USER_ALIAS" => $arParams["USER_ALIAS"], "SECTION_ID" => $arResult["SECTION"]["ID"])); } elseif ($bs->LAST_ERROR) { $strWarning .= $bs->LAST_ERROR; $bVarsFromForm = true; } else { $err = $GLOBALS['APPLICATION']->GetException(); if ($err) { $strWarning .= $err->GetString(); } $bVarsFromForm = true; } } elseif ($arParams["ACTION"] == "NEW") {
public static function CreateSharedFolder($iblockID, $sectionID, $userID, $setRights = false) { $_sharedGroup = 'AU'; $_sharedTask = 'R'; $_shareName = GetMessage("WD_SHARED_FILES"); $_shareXMLID = 'SHARED_FOLDER'; $arTasks = CWebDavIblock::GetTasks(); $arFilter = array("IBLOCK_ID" => $iblockID, "SECTION_ID" => $sectionID, "CHECK_PERMISSIONS" => "N"); $_shareRights = array("n0" => array("GROUP_CODE" => $_sharedGroup, "TASK_ID" => $arTasks[$_sharedTask])); $arShare = null; $se = new CIBlockSection(); $arFilter['NAME'] = $_shareName; $dbShare = CIBlockSection::GetList(array(), $arFilter, false, array('ID', 'CREATED_BY', 'MODIFIED_BY', 'XML_ID')); if ($dbShare && ($arShare1 = $dbShare->Fetch())) { $arShare =& $arShare1; } else { unset($arFilter['NAME']); // search for renamed shared folder $arFilter['XML_ID'] = $_shareXMLID; $dbShare = CIBlockSection::GetList(array(), $arFilter, false, array('ID', 'CREATED_BY', 'XML_ID')); if ($dbShare && ($arShare2 = $dbShare->Fetch())) { $arShare =& $arShare2; } } if ($arShare) { if ($setRights) { $sRight = new CIBlockSectionRights($iblockID, $arShare['ID']); $arRights = $sRight->GetRights($arShare['ID']); $validRights = false; foreach ($arRights as $right) { if ($right['GROUP_CODE'] == $_sharedGroup && $right['TASK_ID'] == $arTasks[$_sharedTask]) { $validRights = true; break; } } if (!$validRights) { $sRight->SetRights($_shareRights); } } $recoverData = array(); if ($arShare['XML_ID'] != $_shareXMLID) { $recoverData['XML_ID'] = $_shareXMLID; } if ($arShare['CREATED_BY'] != $userID) { $recoverData['CREATED_BY'] = $userID; } if ($arShare['MODIFIED_BY'] != $userID) { $recoverData['MODIFIED_BY'] = $userID; } if (!empty($recoverData)) { $se->Update($arShare['ID'], $recoverData); } } else { $arFilter['NAME'] = $_shareName; $arFilter["RIGHTS"] = $_shareRights; $arFilter['IBLOCK_SECTION_ID'] = $arFilter['SECTION_ID']; $arFilter["CREATED_BY"] = $userID; $arFilter["MODIFIED_BY"] = $userID; $arFilter['XML_ID'] = $_shareXMLID; $newSecID = $se->Add($arFilter); $obSectionRights = new CIBlockSectionRights($iblockID, $newSecID); $obSectionRights->SetRights($arFilter["RIGHTS"]); } }
function OnUserDelete($USER_ID) { $arIBlockList = array('iblock_absence', 'iblock_honour', 'iblock_state_history'); foreach ($arIBlockList as $var_name) { $IBLOCK_ID = COption::GetOptionInt('intranet', $var_name); if ($IBLOCK_ID > 0) { $dbRes = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'PROPERTY_USER' => $USER_ID), false, false, array('ID', 'IBLOCK_ID')); while ($arRes = $dbRes->Fetch()) { CIBlockElement::Delete($arRes['ID']); } } } if (CModule::IncludeModule('socialnetwork')) { $dbRes = CSocNetLog::GetList(array(), array('ENTITY_TYPE' => SONET_INTRANET_NEW_USER_ENTITY, 'EVENT_ID' => SONET_INTRANET_NEW_USER_EVENT_ID, 'ENTITY_ID' => $USER_ID, 'SOURCE_ID' => $USER_ID), false, array('ID')); $arRes = $dbRes->Fetch(); if ($arRes) { CSocNetLog::Delete($arRes['ID']); } } if (CModule::IncludeModule('iblock')) { $IBLOCK_ID = COption::GetOptionInt('intranet', 'iblock_structure'); if ($IBLOCK_ID > 0) { $dbRes = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'UF_HEAD' => $USER_ID), false, array('ID', 'IBLOCK_ID')); $obSection = new CIBlockSection(); while ($arRes = $dbRes->Fetch()) { $obSection->Update($arRes['ID'], array('UF_HEAD' => '')); } } } }
function MapSections($arRes) { global $NUM_CATALOG_LEVELS, $arIBlockAvailGroupFields; static $arSectionCache = array(); $bs = new CIBlockSection(); $result = array(); while (true) { // this array is path to element $arGroupsTmp = array(); for ($i = 0; $i < $NUM_CATALOG_LEVELS; $i++) { $bOK = false; //will be true when at least one important field met $arGroupsTmp1 = array("TMP_ID" => $this->tmpid); foreach ($arIBlockAvailGroupFields as $key => $value) { $fkey = $value["field"]; if (array_key_exists($key . $i, $arRes) && !empty($arRes[$key . $i])) { $arGroupsTmp1[$fkey] = array_shift($arRes[$key . $i]); } if ($value["important"] == "Y" && isset($arGroupsTmp1[$fkey]) && strlen($arGroupsTmp1[$fkey]) > 0) { $bOK = true; } } // drop empty target sections if ($bOK) { // When group does not have name "<Empty name>" if (strlen($arGroupsTmp1["NAME"]) <= 0) { $arGroupsTmp1["NAME"] = GetMessage("IBLOCK_ADM_IMP_NOMAME"); } $arGroupsTmp[] = $arGroupsTmp1; } else { break; } } //Finished with groups if (empty($arGroupsTmp)) { break; } // Create sections tree. Save section code for elemet insertions $LAST_GROUP_CODE = 0; foreach ($arGroupsTmp as $i => $arGroup) { $arFilter = array("IBLOCK_ID" => $this->IBLOCK_ID, "CHECK_PERMISSIONS" => "N"); if (isset($arGroup["XML_ID"]) && strlen($arGroup["XML_ID"])) { $arFilter["=XML_ID"] = $arGroup["XML_ID"]; } elseif (isset($arGroup["NAME"]) && strlen($arGroup["NAME"])) { $arFilter["=NAME"] = $arGroup["NAME"]; } if ($LAST_GROUP_CODE > 0) { $arFilter["SECTION_ID"] = $LAST_GROUP_CODE; $arGroupsTmp[$i]["IBLOCK_SECTION_ID"] = $LAST_GROUP_CODE; } else { $arFilter["SECTION_ID"] = 0; $arGroupsTmp[$i]["IBLOCK_SECTION_ID"] = false; } $cache_id = md5(serialize($arFilter)); if (array_key_exists($cache_id, $arSectionCache)) { $arr = $arSectionCache[$cache_id]; } else { $res = CIBlockSection::GetList(array(), $arFilter); if ($arr = $res->Fetch()) { $arSectionCache[$cache_id] = $arr; } } if ($arr) { $arGroupsTmp[$i]["IBLOCK_ID"] = $arr["IBLOCK_ID"]; $LAST_GROUP_CODE = $arr["ID"]; $bUpdate = false; foreach ($arGroupsTmp[$i] as $field_code => $field_value) { if ($field_value . "" !== $arr[$field_code] . "") { $bUpdate = true; break; } } if ($bUpdate) { $res = $bs->Update($LAST_GROUP_CODE, $arGroupsTmp[$i]); unset($arSectionCache[$cache_id]); } } else { $arGroupsTmp[$i]["IBLOCK_ID"] = $this->IBLOCK_ID; $arGroupsTmp[$i]["ACTIVE"] = "Y"; $LAST_GROUP_CODE = $bs->Add($arGroupsTmp[$i]); } } if ($LAST_GROUP_CODE > 0) { $result[$LAST_GROUP_CODE] = $LAST_GROUP_CODE; } } return $result; }
$bs = new CIBlockSection(); $bs->Update($arResult["GALLERY"]["ID"], $arFields); BXClearCache(true, "/bitrix/photogallery/" . $arParams["IBLOCK_ID"] . "/user/data/" . $arResult["GALLERY"]["CREATED_BY"] . "/"); BXClearCache(true, "/bitrix/photogallery/" . $arParams["IBLOCK_ID"] . "/gallery/" . $arResult["GALLERY"]["~CODE"] . "/"); $url = $GLOBALS['APPLICATION']->GetCurPageParam("", array("action", "status")); if ($bAjaxCall != "Y") { LocalRedirect($url); } elseif ($arParams["GALLERY_SIZE"] > 0) { $GLOBALS['APPLICATION']->RestartBuffer(); $arFields = array("STATUS" => "DONE", "PERCENT" => intVal(doubleVal($arInfoRecalc["FILE_SIZE"]) / $arParams["GALLERY_SIZE"] * 100)); echo CUtil::PhpToJSObject($arFields); die; } } else { $arFields = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "UF_GALLERY_RECALC" => serialize($arInfoRecalc), "UF_GALLERY_SIZE" => doubleVal($arResult["GALLERY"]["UF_GALLERY_SIZE"])); $GLOBALS["UF_GALLERY_RECALC"] = $arFields["UF_GALLERY_RECALC"]; $GLOBALS["UF_GALLERY_SIZE"] = $arFields["UF_GALLERY_SIZE"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); $bs = new CIBlockSection(); $bs->Update($arResult["GALLERY"]["ID"], $arFields); BXClearCache(true, "/bitrix/photogallery/" . $arParams["IBLOCK_ID"] . "/user/data/" . $arResult["GALLERY"]["CREATED_BY"] . "/"); BXClearCache(true, "/bitrix/photogallery/" . $arParams["IBLOCK_ID"] . "/gallery/" . $arResult["GALLERY"]["~CODE"] . "/"); $arResult["GALLERY"]["~UF_GALLERY_RECALC"] = $arFields["UF_GALLERY_RECALC"]; $arResult["GALLERY"]["UF_GALLERY_RECALC"] = htmlspecialcharsEx($arFields["UF_GALLERY_RECALC"]); if ($bAjaxCall == "Y") { $GLOBALS['APPLICATION']->RestartBuffer(); $arFields = array("STATUS" => "CONTINUE", "PERCENT" => intVal(intVal($arInfoRecalc["FILE_COUNT"]) / $arResult["GALLERY"]["ELEMENTS_CNT"] * 100)); echo CUtil::PhpToJSObject($arFields); die; } }
$db_res = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => 0, "!LEFT_MARGIN" => $res["LEFT_MARGIN"], "!RIGHT_MARGIN" => $res["RIGHT_MARGIN"], "!ID" => $res["ID"]), false, array("ID", "UF_GALLERY_SIZE")); if ($db_res && ($res_g = $db_res->Fetch())) { $res["GALLERY"] = $res_g; $arSections[$res["ID"]] = $res; } } } if (!empty($res["GALLERY"]) && $iFileSize > 0) { $gallery = $res["GALLERY"]; $gallery["UF_GALLERY_SIZE"] = doubleval($gallery["UF_GALLERY_SIZE"]) - $iFileSize; $gallery["UF_GALLERY_SIZE"] = $gallery["UF_GALLERY_SIZE"] <= 0 ? 0 : $gallery["UF_GALLERY_SIZE"]; $arFields = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "UF_GALLERY_SIZE" => $gallery["UF_GALLERY_SIZE"]); $GLOBALS["UF_GALLERY_SIZE"] = $arFields["UF_GALLERY_SIZE"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); $bs = new CIBlockSection(); $bs->Update($gallery["ID"], $arFields, false, false); } PClearComponentCacheEx($arParams["IBLOCK_ID"], array($res["ID"], $res["IBLOCK_SECTION_ID"])); } } LocalRedirect($_REQUEST["from_detail_list"]); } } $file = trim(preg_replace("'[\\\\/]+'", "/", dirname(__FILE__) . "/lang/" . LANGUAGE_ID . "/result_modifier.php")); __IncludeLang($file); $arParams["SHOW_BEST_ELEMENT"] = $arParams["SHOW_BEST_ELEMENT"] == "N" ? "N" : "Y"; $arResult["MENU_VARIABLES"] = array(); if ($this->__page !== "menu") { $sTempatePage = $this->__page; $sTempateFile = $this->__file; $this->__component->IncludeComponentTemplate("menu");
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; if (check_bitrix_sessid()) { $IBLOCK_ID = COption::getOptionInt('intranet', 'iblock_structure', 0); $SECTION_ID = intval($_REQUEST['SECTION_ID']); $USER_ID = intval($_REQUEST['USER_ID']); if ($IBLOCK_ID && $SECTION_ID && $USER_ID && CModule::IncludeModule('iblock')) { $perm = CIBlock::GetPermission($IBLOCK_ID); if ($perm >= 'W') { $obS = new CIBlockSection(); if ($obS->Update($SECTION_ID, array('UF_HEAD' => $USER_ID))) { echo '<script>BX.reload(true);</script>'; } elseif ($obS->LAST_ERROR) { echo '<script>alert(\'' . CUtil::JSEscape($obS->LAST_ERROR) . '\');</script>'; } } else { echo '<script>alert(\'Access denied!\');</script>'; } } else { echo '<script>alert(\'Params error!\');</script>'; } } else { echo '<script>alert(\'Session expired!\');</script>'; }
$obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } } $bs = new CIBlockSection(); $_REQUEST["ACTIVE"] = $_REQUEST["ACTIVE"] == "Y" ? "Y" : "N"; $_REQUEST["ACTIVE"] = empty($arResult["GALLERIES"]) ? "Y" : $_REQUEST["ACTIVE"]; if ($arParams["ACTION"] == "EDIT") { if (!empty($arResult["GALLERIES"]) && $_REQUEST["ACTIVE"] == "Y" && $arResult["GALLERY"]["UF_DEFAULT"] != "Y") { $arr = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "UF_DEFAULT" => "N"); $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arr); $GLOBALS["UF_DEFAULT"] = "N"; foreach ($arResult["GALLERIES"] as $res) { if ($res["ID"] != $ID) { $res = $bs->Update($res["ID"], $arr, false, false); } } } $arFields = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "NAME" => $_REQUEST["NAME"], "CODE" => $_REQUEST["CODE"], "DESCRIPTION" => $_REQUEST["DESCRIPTION"], "UF_DEFAULT" => $_REQUEST["ACTIVE"]); if (!empty($arFiles)) { $arFields["PICTURE"] = $arFiles["PICTURE"]; } if ($bs->CheckFields($arFields, $ID)) { if (!empty($arFiles)) { $arFields["DETAIL_PICTURE"] = $arFiles["DETAIL_PICTURE"]; } $GLOBALS["UF_DEFAULT"] = $arFields["UF_DEFAULT"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); $res = $bs->Update($ID, $arFields); } else {
function handleFile($hash, $photo, &$package, &$upload, &$error) { if (!CModule::IncludeModule("iblock")) { return false; } global $USER; $arParams = $this->arParams; if (!($upload["SECTION_ID"] > 0)) { if ($this->post["photo_album_id"] > 0) { $upload["SECTION_ID"] = $this->post["photo_album_id"]; } else { $upload["NEW_SECTION_ID"] = $upload["SECTION_ID"] = self::createAlbum($this->arParams, $this->arResult, $this->post["new_album_name"]); } $this->arParams["SECTION_ID"] = $upload["SECTION_ID"]; $upload["redirectUrl"] = CComponentEngine::MakePathFromTemplate($this->arParams["~SECTION_URL"], array("USER_ALIAS" => $this->arParams["USER_ALIAS"], "SECTION_ID" => $this->arParams["SECTION_ID"])); self::adjustIBlock($this->arParams); } if (!($upload["SECTION_ID"] > 0)) { $error = "Album is not created or does not exist."; return false; } $arParams["bxu"]->checkCanvases($hash, $photo, $arParams['converters'], $this->arWatermark); // Props $_REQUEST["Public"] = $_REQUEST["Public"] == "N" ? "N" : "Y"; $Prop = array("REAL_PICTURE" => array("n0" => $photo["files"]["default"]), "PUBLIC_ELEMENT" => array("n0" => $_REQUEST["Public"]), "APPROVE_ELEMENT" => array("n0" => ($arParams["ABS_PERMISSION"] >= "U" || $arParams["APPROVE_BY_DEFAULT"] == "Y") && $_REQUEST["Public"] == "Y" ? "Y" : "X")); foreach ($arParams['converters'] as $val) { if ($val['code'] != "default" && $val['code'] != "thumbnail") { $Prop[strtoupper($val['code'])] = array("n0" => $photo["files"][$val['code']]); } } // Real photo $arFields = array("ACTIVE" => $arParams["MODERATION"] == "Y" && $arParams["ABS_PERMISSION"] < "U" ? "N" : "Y", "MODIFIED_BY" => $USER->GetID(), "IBLOCK_SECTION" => $upload['SECTION_ID'], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "NAME" => $photo['name'], "CODE" => $photo['name'], "TAGS" => $photo['tags'], "DETAIL_TEXT" => $photo['description'], "DETAIL_TEXT_TYPE" => "text", "PREVIEW_PICTURE" => $photo["files"]["thumbnail"], "PREVIEW_TEXT" => $photo['description'], "PREVIEW_TEXT_TYPE" => "text", "PROPERTY_VALUES" => $Prop); $bs = new CIBlockElement(); $ID = $bs->Add($arFields); if ($ID <= 0) { $error = $bs->LAST_ERROR; return false; } $arFields['ID'] = $ID; $_SESSION['arUploadedPhotos'][] = $ID; CIBlockElement::RecalcSections($ID); $arParams['SECTION_ID'] = $upload['SECTION_ID']; $arResult = $this->arResult; foreach (GetModuleEvents("photogallery", "OnAfterUpload", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array(&$arFields, $arParams, $arResult)); } // Add thumbnail only for new album if ($upload["NEW_SECTION_ID"] > 0 && !array_key_exists('NEW_SECTION_PICTURE', $upload)) { $File = $photo["files"]["default"]; // Big picture $File['~tmp_name'] = $File['tmp_name']; $File['tmp_name'] .= "_album_cover.tmp"; if (CFile::ResizeImageFile($File['tmp_name'], $File['tmp_name_1'], array('width' => $arParams["ALBUM_PHOTO_THUMBS"]["SIZE"], 'height' => $arParams["ALBUM_PHOTO_THUMBS"]["SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL)) { $bs = new CIBlockSection(); if ($bs->Update($upload["SECTION_ID"], array("PICTURE" => $File), false, false)) { $upload['NEW_SECTION_PICTURE'] = true; } } } return $ID; }
public static function ConvertEntity($ownerType, $ownerId, $sectionId, $iblockId, $createdBy) { $eventsCount = 0; $sectCount = 0; $bs = new CIBlockSection(); $ent_id = "IBLOCK_" . $iblockId . "_SECTION"; $result = array('eventsCount' => 0, 'sectCount' => 0); $bSetAccessFromCalendar = true; $Access = array('G2' => CCalendar::GetAccessTasksByName('calendar_section', 'calendar_denied')); // CONVERT ACCESS: if ($ownerType == 'user') { if (!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $ownerId, "calendar")) { return $result; } // Read $read = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $ownerId, "calendar", 'view'); $taskId = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_view'); if ($read == 'A') { // All users $Access['G2'] = $taskId; } elseif ($read == 'C') { // All autorized $Access['AU'] = $taskId; } elseif ($read == 'M' || $read == 'E') { // Friends $Access['SU' . $ownerId . '_F'] = $taskId; } elseif ($bSetAccessFromCalendar) { $bSetAccessFromCalendar = false; } // Write - will override read access $write = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $ownerId, "calendar", 'write'); $taskId = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_edit'); if ($write == 'A') { // All users $Access['G2'] = $taskId; } elseif ($write == 'C') { // All autorized $Access['AU'] = $taskId; } elseif ($write == 'M' || $write == 'E') { // Friends $Access['SU' . $ownerId . '_F'] = $taskId; } } elseif ($ownerType == 'group') { if (!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $ownerId, "calendar")) { return $result; } // Read $read = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $ownerId, "calendar", 'view'); $taskId = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_view'); if ($read == 'A') { // Group owner $Access['SG' . $ownerId . '_A'] = $taskId; } elseif ($read == 'E') { // Group moderator $Access['SG' . $ownerId . '_E'] = $taskId; } elseif ($read == 'K') { // User $Access['SG' . $ownerId . '_K'] = $taskId; } elseif ($read == 'L') { // Authorized $Access['AU'] = $taskId; } elseif ($read == 'N') { // Authorized $Access['G2'] = $taskId; } // Write - will override read access $write = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $ownerId, "calendar", 'write'); $taskId = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_edit'); if ($write == 'A') { // Group owner $Access['SG' . $ownerId . '_A'] = $taskId; } elseif ($write == 'E') { // Group moderator $Access['SG' . $ownerId . '_E'] = $taskId; } elseif ($write == 'K') { // User $Access['SG' . $ownerId . '_K'] = $taskId; } elseif ($write == 'L') { // Authorized $Access['AU'] = $taskId; } elseif ($write == 'N') { // Authorized $Access['G2'] = $taskId; } } else { $arGroupPerm = CIBlock::GetGroupPermissions($iblockId); $taskByLetter = array('D' => CCalendar::GetAccessTasksByName('calendar_section', 'calendar_denied'), 'R' => CCalendar::GetAccessTasksByName('calendar_section', 'calendar_view'), 'W' => CCalendar::GetAccessTasksByName('calendar_section', 'calendar_edit'), 'X' => CCalendar::GetAccessTasksByName('calendar_section', 'calendar_access')); foreach ($arGroupPerm as $groupId => $letter) { $Access['G' . $groupId] = $taskByLetter[$letter]; } } // 1. Fetch sections $arUserSections = CEventCalendar::GetCalendarList(array($iblockId, $sectionId, 0, $ownerType)); $calendarIndex = array(); foreach ($arUserSections as $section) { $arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields($ent_id, $section['ID']); if (isset($arUF["UF_CAL_CONVERTED"]) && strlen($arUF["UF_CAL_CONVERTED"]['VALUE']) > 0) { continue; } $SectionAccess = array(); if ($bSetAccessFromCalendar && $ownerType == 'user') { if ($section['PRIVATE_STATUS'] == 'private') { $deniedTask = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_denied'); $SectionAccess['G2'] = $deniedTask; } elseif ($section['PRIVATE_STATUS'] == 'time') { $viewTimeTask = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_view_time'); $SectionAccess['G2'] = $viewTimeTask; } elseif ($section['PRIVATE_STATUS'] == 'title') { $viewTitleTask = CCalendar::GetAccessTasksByName('calendar_section', 'calendar_view_title'); $SectionAccess['G2'] = $viewTitleTask; } else { $SectionAccess = $Access; // nested from common access settings from socnet } } else { $SectionAccess = $Access; // G2 => denied } $new_sect_id = CCalendarSect::Edit(array('arFields' => array("CAL_TYPE" => $ownerType, "NAME" => $section['NAME'], "OWNER_ID" => $ownerId, "CREATED_BY" => $createdBy, "DESCRIPTION" => $section['DESCRIPTION'], "COLOR" => $section["COLOR"], "ACCESS" => $SectionAccess))); // Set converted property $bs->Update($section['ID'], array('UF_CAL_CONVERTED' => 1)); $calendarIndex[$section['ID']] = $new_sect_id; $sectCount++; } // 2. Create events $arEvents = CEventCalendar::GetCalendarEventsList(array($iblockId, $sectionId, 0), array()); foreach ($arEvents as $event) { if (!isset($calendarIndex[$event['IBLOCK_SECTION_ID']]) || $event['PROPERTY_PARENT'] > 0) { continue; } $arFields = array("CAL_TYPE" => $ownerType, "OWNER_ID" => $ownerId, "CREATED_BY" => $event["CREATED_BY"], "DT_FROM" => $event['ACTIVE_FROM'], "DT_TO" => $event['ACTIVE_TO'], 'NAME' => htmlspecialcharsback($event['NAME']), 'DESCRIPTION' => CCalendar::ParseHTMLToBB(htmlspecialcharsback($event['DETAIL_TEXT'])), 'SECTIONS' => array($calendarIndex[$event['IBLOCK_SECTION_ID']]), 'ACCESSIBILITY' => $event['PROPERTY_ACCESSIBILITY'], 'IMPORTANCE' => $event['PROPERTY_IMPORTANCE'], 'PRIVATE_EVENT' => $event['PROPERTY_PRIVATE'] && $event['PROPERTY_PRIVATE'] == 'true' ? '1' : '', 'RRULE' => array(), 'LOCATION' => array('NEW' => $event['PROPERTY_LOCATION'], 'RE_RESERVE' => 'N'), "REMIND" => array(), "IS_MEETING" => $event['PROPERTY_IS_MEETING'] == 'Y'); if (!empty($event['PROPERTY_REMIND_SETTINGS'])) { $ar = explode("_", $event["PROPERTY_REMIND_SETTINGS"]); if (count($ar) == 2) { $arFields["REMIND"][] = array('type' => $ar[1], 'count' => floatVal($ar[0])); } } if (isset($event["PROPERTY_PERIOD_TYPE"]) && in_array($event["PROPERTY_PERIOD_TYPE"], array("DAILY", "WEEKLY", "MONTHLY", "YEARLY"))) { $arFields['RRULE']['FREQ'] = $event["PROPERTY_PERIOD_TYPE"]; $arFields['RRULE']['INTERVAL'] = $event["PROPERTY_PERIOD_COUNT"]; if (!empty($event['PROPERTY_EVENT_LENGTH'])) { $arFields['DT_LENGTH'] = intval($event['PROPERTY_EVENT_LENGTH']); } if (!$arFields['DT_LENGTH']) { $arFields['DT_LENGTH'] = 86400; } if ($arFields['RRULE']['FREQ'] == "WEEKLY" && !empty($event['PROPERTY_PERIOD_ADDITIONAL'])) { $arFields['RRULE']['BYDAY'] = array(); $bydays = explode(',', $event['PROPERTY_PERIOD_ADDITIONAL']); foreach ($bydays as $day) { $day = CCalendar::WeekDayByInd($day); if ($day !== false) { $arFields['RRULE']['BYDAY'][] = $day; } } $arFields['RRULE']['BYDAY'] = implode(',', $arFields['RRULE']['BYDAY']); } $arFields['RRULE']['UNTIL'] = $event['ACTIVE_TO']; } if ($arFields['IS_MEETING']) { if ($event['PROPERTY_PARENT'] > 0) { continue; } $host = intVal($event['CREATED_BY']); $arFields['ATTENDEES'] = array(); if ($event['PROPERTY_HOST_IS_ABSENT'] == 'N') { $arFields['ATTENDEES'][] = $host; } $arGuests = CECEvent::GetGuests(self::$userIblockId, $event['ID']); $attendeesStatuses = array(); foreach ($arGuests as $userId => $ev) { $attendeesStatuses[$userId] = $ev['PROPERTY_VALUES']['CONFIRMED']; $arFields['ATTENDEES'][] = $userId; } $arFields['MEETING_HOST'] = $host; $arFields['MEETING'] = array('HOST_NAME' => CCalendar::GetUserName($host), 'TEXT' => is_array($event['PROPERTY_MEETING_TEXT']) && is_string($event['PROPERTY_MEETING_TEXT']['TEXT']) ? trim($event['PROPERTY_MEETING_TEXT']['TEXT']) : '', 'OPEN' => false, 'NOTIFY' => false, 'REINVITE' => false); } $new_event_id = CCalendar::SaveEvent(array('arFields' => $arFields, 'bAffectToDav' => false, 'attendeesStatuses' => $attendeesStatuses, 'bSendInvitations' => false)); $eventsCount++; } // 3. Set userfield $bs->Update($sectionId, array('UF_CAL_CONVERTED' => 1)); return array('eventsCount' => $eventsCount, 'sectCount' => $sectCount); }
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php"; $APPLICATION->SetTitle("Переименование разделов товаров"); ?> <div class="container intro"> <?php $bs = new CIBlockSection(); $ob_section = $bs->GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => IBLOCK_PRODUCTS_ID), false, array("ID", "NAME")); while ($ar_section = $ob_section->GetNext()) { preg_match("/\\>([^\\>]+)\$/", str_replace(" > ", ">", $ar_section["NAME"]), $matches); if ($matches[1] != "") { $ar_section["NEW_NAME"] = trim($matches[1]); } else { $ar_section["NEW_NAME"] = $ar_section["NAME"]; } $arFields = array("NAME" => $ar_section["NEW_NAME"]); $res = $bs->Update($ar_section["ID"], $arFields); // echo "<pre>"; // var_dump($res); // echo "</pre>"; } ?> </div> <?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php";
/** * Сохраняет запись * @return bool */ public function save() { if (!\CModule::IncludeModule('iblock') || !$this->validate() || !$this->riseEvent('beforeSave')) { return false; } $ib = new \CIBlockSection(); //собираем поля элемента $arFields = array(); $arProperties = array(); foreach ($this->getAttributes() as $key => $attr) { $arFields[strtoupper($key)] = $attr->getValueToDb(); } //записываем поля элемента if (!$this->isNew()) { $id = $this->getAttribute('id')->getValue(); //при обновлении элемента сначала записываем базовые поля $res = $ib->Update($id, $arFields); if (!$res) { throw new Exception($ib->LAST_ERROR); } $this->riseEvent('afterSave'); } else { //при вставке нового элемента записываем сразу все пользовательские свойства $new = $ib->Add($arFields); if ($new) { $this->getAttribute('id')->setValue($new); $this->riseEvent('afterSave'); } else { throw new Exception($ib->LAST_ERROR); } } return true; }
public static function SetPeriodSection($arFields) { $dep = new CIBlockSection(); $entity_id = 'IBLOCK_' . COption::GetOptionInt('intranet', 'iblock_structure', false) . '_SECTION'; $arOldSetting = CReportSettings::GetSectionSettings($arFields['ID']); if ($arOldSetting["UF_REPORT_PERIOD"] != $arFields['UF_REPORT_PERIOD'] && ($arOldSetting["UF_REPORT_PERIOD"] == 'NONE' || $arFields['UF_REPORT_PERIOD'] == 'NONE')) { $arFields["UF_SETTING_DATE"] = ConvertTimeStampForReport(time(), "FULL"); } $period = CUserReportFull::GetEntityID($arFields["UF_REPORT_PERIOD"], $entity_id); $arFields["UF_REPORT_PERIOD"] = $period["ID"]; $ID = $arFields["ID"]; unset($arFields["ID"]); if ($ID > 0) { $dep->Update($ID, $arFields); return CReportSettings::GetSectionSettings($ID, true); } return false; }
$arFields["RIGHTS"] = array(); } } if (is_array($_POST["IPROPERTY_TEMPLATES"])) { $SECTION_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_NAME"]); $SECTION_DETAIL_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_NAME"]); $ELEMENT_PREVIEW_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_NAME"]); $ELEMENT_DETAIL_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_NAME"]); $arFields["IPROPERTY_TEMPLATES"] = array("SECTION_META_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_TITLE"]["TEMPLATE"] : "", "SECTION_META_KEYWORDS" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_KEYWORDS"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_KEYWORDS"]["TEMPLATE"] : "", "SECTION_META_DESCRIPTION" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_DESCRIPTION"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_DESCRIPTION"]["TEMPLATE"] : "", "SECTION_PAGE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_PAGE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PAGE_TITLE"]["TEMPLATE"] : "", "ELEMENT_META_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_TITLE"]["TEMPLATE"] : "", "ELEMENT_META_KEYWORDS" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_KEYWORDS"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_KEYWORDS"]["TEMPLATE"] : "", "ELEMENT_META_DESCRIPTION" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_DESCRIPTION"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_DESCRIPTION"]["TEMPLATE"] : "", "ELEMENT_PAGE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PAGE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PAGE_TITLE"]["TEMPLATE"] : "", "SECTION_PICTURE_FILE_ALT" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_ALT"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_ALT"]["TEMPLATE"] : "", "SECTION_PICTURE_FILE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_TITLE"]["TEMPLATE"] : "", "SECTION_PICTURE_FILE_NAME" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_NAME"]["INHERITED"] === "N" ? $SECTION_PICTURE_FILE_NAME : "", "SECTION_DETAIL_PICTURE_FILE_ALT" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_ALT"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_ALT"]["TEMPLATE"] : "", "SECTION_DETAIL_PICTURE_FILE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_TITLE"]["TEMPLATE"] : "", "SECTION_DETAIL_PICTURE_FILE_NAME" => $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_NAME"]["INHERITED"] === "N" ? $SECTION_DETAIL_PICTURE_FILE_NAME : "", "ELEMENT_PREVIEW_PICTURE_FILE_ALT" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]["TEMPLATE"] : "", "ELEMENT_PREVIEW_PICTURE_FILE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]["TEMPLATE"] : "", "ELEMENT_PREVIEW_PICTURE_FILE_NAME" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_NAME"]["INHERITED"] === "N" ? $ELEMENT_PREVIEW_PICTURE_FILE_NAME : "", "ELEMENT_DETAIL_PICTURE_FILE_ALT" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]["TEMPLATE"] : "", "ELEMENT_DETAIL_PICTURE_FILE_TITLE" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]["INHERITED"] === "N" ? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]["TEMPLATE"] : "", "ELEMENT_DETAIL_PICTURE_FILE_NAME" => $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_NAME"]["INHERITED"] === "N" ? $ELEMENT_DETAIL_PICTURE_FILE_NAME : ""); } $USER_FIELD_MANAGER->EditFormAddFields("IBLOCK_" . $IBLOCK_ID . "_SECTION", $arFields); if (COption::GetOptionString("iblock", "show_xml_id", "N") == "Y" && is_set($_POST, "XML_ID")) { $arFields["XML_ID"] = $_POST["XML_ID"]; } if ($ID > 0) { $res = $bs->Update($ID, $arFields, true, true, true); } else { $ID = $bs->Add($arFields, true, true, true); $res = $ID > 0; } if (!$res) { $strWarning .= $bs->LAST_ERROR; $bVarsFromForm = true; $DB->Rollback(); if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("admin_lib_error"), $e); } } else { if ($_POST["IPROPERTY_CLEAR_VALUES"] === "Y") { $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($IBLOCK_ID, $ID); $ipropValues->clearValues();
function GetSectionXML_ID($IBLOCK_ID, $SECTION_ID, $XML_ID = false) { if ($XML_ID === false) { $obSection = new CIBlockSection(); $rsSection = $obSection->GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "ID" => $SECTION_ID), false, array('ID', 'XML_ID')); if ($arSection = $rsSection->Fetch()) { $XML_ID = $arSection["XML_ID"]; } } if (strlen($XML_ID) <= 0) { $XML_ID = $SECTION_ID; $obSection = new CIBlockSection(); $rsSection = $obSection->GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "EXTERNAL_ID" => $XML_ID), false, array('ID')); while ($rsSection->Fetch()) { $XML_ID = md5(uniqid(mt_rand(), true)); $rsSection = $obSection->GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "EXTERNAL_ID" => $XML_ID), false, array('ID')); } $obSection->Update($SECTION_ID, array("XML_ID" => $XML_ID), false, false); } return $XML_ID; }
} if (empty($arFieldName[$arLanguage["LID"]])) { $arFieldName[$arLanguage["LID"]] = "Use bizprocess in library"; } } $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); $db_res = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $iblockID, "SECTION_ID" => 0)); if ($db_res && ($res = $db_res->Fetch())) { $bs = new CIBlockSection(); do { $arFields = array("IBLOCK_ID" => $iblockID, "UF_USE_BP" => "N"); $GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $iblockID . "_SECTION", $arFields); $bs->Update($res["ID"], $arFields); } while ($res = $db_res->Fetch()); } } else { $arSites = array(); $db_res = CIBlock::GetSite($iblockID); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iblock = new CIBlock(); $iblock->Update($iblockID, array("LID" => $arSites)); } }
{ $lAdmin->AddGroupError(GetMessage("IBLIST_A_UPDERR_ACCESS", array("#ID#" => $ID)), $TYPE.$ID); } } break; case "section": case "add_section": $new_section = intval($_REQUEST["section_to_move"]); if($new_section >= 0) { if ($TYPE=="S") { if (CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $new_section, "section_section_bind")) { $obS = new CIBlockSection(); if(!$obS->Update($ID, array("IBLOCK_SECTION_ID" => $new_section))) { $lAdmin->AddGroupError(GetMessage("IBLIST_A_SAVE_ERROR", array("#ID#" => $ID, "#ERROR_MESSAGE#" => $obS->LAST_ERROR)), $TYPE.$ID); } else { $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($IBLOCK_ID, $ID); $ipropValues->clearValues(); } } else { $lAdmin->AddGroupError(GetMessage("IBLIST_A_UPDERR_ACCESS", array("#ID#" => $ID)), $TYPE.$ID); } } elseif($TYPE=="E")
$i++; } $arAF = array("UF_FLOOR" => array("NAME" => GetMessage("INAF_F_FLOOR"), "TYPE" => "integer"), "UF_PLACE" => array("NAME" => GetMessage("INAF_F_PLACE"), "TYPE" => "integer"), "UF_PHONE" => array("NAME" => GetMessage("INAF_F_PHONE"), "TYPE" => "string")); $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_" . $iblockID . "_SECTION", 0, LANGUAGE_ID); $arKeys = Array_Keys($arAF); foreach ($arKeys as $key) { if (!Array_Key_Exists($key, $arUserFields)) { $arFields = array("ENTITY_ID" => "IBLOCK_" . $iblockID . "_SECTION", "FIELD_NAME" => $key, "USER_TYPE_ID" => $arAF[$key]["TYPE"]); $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); } } $iblockSectionObject = new CIBlockSection(); $dbrs = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $iblockID)); $ars = $dbrs->Fetch(); $iblockSectionObject->Update($ars["ID"], array("UF_FLOOR" => 1, "UF_PLACE" => 350, "UF_PHONE" => "12-34-56")); $ars = $dbrs->Fetch(); $iblockSectionObject->Update($ars["ID"], array("UF_FLOOR" => 3, "UF_PLACE" => 10, "UF_PHONE" => "34-56-78")); $ars = $dbrs->Fetch(); $iblockSectionObject->Update($ars["ID"], array("UF_FLOOR" => 2, "UF_PLACE" => 50, "UF_PHONE" => "56-78-90")); $iblockElementObject = new CIBlockElement(); $dbrs = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $iblockID)); $ars = $dbrs->Fetch(); $date_from = MkTime(10, 0, 0, Date("n"), Date("j"), Date("Y")); $date_to = MkTime(14, 0, 0, Date("n"), Date("j"), Date("Y")); $iblockElementObject->Update($ars["ID"], array("ACTIVE_FROM" => ConvertTimeStamp($date_from, "FULL"), "ACTIVE_TO" => ConvertTimeStamp($date_to, "FULL"))); $ars = $dbrs->Fetch(); $date_from = MkTime(15, 0, 0, Date("n"), Date("j") + 1, Date("Y")); $date_to = MkTime(18, 0, 0, Date("n"), Date("j") + 1, Date("Y")); $iblockElementObject->Update($ars["ID"], array("ACTIVE_FROM" => ConvertTimeStamp($date_from, "FULL"), "ACTIVE_TO" => ConvertTimeStamp($date_to, "FULL"))); $ars = $dbrs->Fetch();
if ($arFields['UF_TM_ALLOWED_DELTA']) { $arFields['UF_TM_ALLOWED_DELTA'] = CTimeMan::FormatTime($arFields['UF_TM_ALLOWED_DELTA'], true); } $arAllFields = $USER_FIELD_MANAGER->GetUserFields($source == 'department' ? 'IBLOCK_' . COption::GetOptionInt('intranet', 'iblock_structure') . '_SECTION' : 'USER'); $arEnumFields = array('UF_TIMEMAN', 'UF_TM_REPORT_REQ', 'UF_TM_FREE'); foreach ($arEnumFields as $fld) { if ($arFields[$fld]) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields[$fld]['ID'], 'XML_ID' => $arFields[$fld])); if ($arRes = $dbRes->Fetch()) { $arFields[$fld] = $arRes['ID']; } } } if ($source == 'department') { $obSection = new CIBlockSection(); $obSection->Update($ID, $arFields); $CACHE_MANAGER->CleanDir("timeman_structure_" . COption::GetOptionInt('intranet', 'iblock_structure')); $res = array('ID' => $ID, 'SETTINGS' => CTimeMan::GetSectionPersonalSettings($ID, true, $arNeededSettings), 'SETTINGS_ALL' => CTimeMan::GetSectionSettings($ID, $arNeededSettings)); } else { $obUser = new CUser(); $obUser->Update($ID, $arFields); $CACHE_MANAGER->CleanDir("timeman_structure_" . COption::GetOptionInt('intranet', 'iblock_structure')); $TMUSER = new CTimeManUser($ID); $res = array('ID' => $ID, 'SETTINGS' => $TMUSER->GetPersonalSettings($arNeededSettings), 'SETTINGS_ALL' => $TMUSER->GetSettings($arNeededSettings)); } } else { $res = array('DEFAULTS' => CTimeMan::GetModuleSettings($arNeededSettings), 'DEPARTMENTS' => array(), 'USERS' => array()); foreach ($_REQUEST['DEPARTMENTS'] as $dpt) { $res['DEPARTMENTS'][] = array('ID' => $dpt, 'SETTINGS' => CTimeMan::GetSectionPersonalSettings($dpt, true, $arNeededSettings), 'SETTINGS_ALL' => CTimeMan::GetSectionSettings($dpt, $arNeededSettings)); } foreach ($_REQUEST['USERS'] as $user) {
function handleFile($Info, $arFiles, $Params) { CModule::IncludeModule("iblock"); global $USER; $arParams = $Params['arParams']; $savedData = CImageUploader::GetSavedData(); $arErrors = array(); // Check file sizes and types (types only for mass uploaders) foreach ($arFiles as $file) { if ($file['size'] > 0 && $arParams["UPLOAD_MAX_FILE_SIZE"] > 0 && $file['size'] > $arParams["UPLOAD_MAX_FILE_SIZE"]) { $arErrors[] = array("file" => $file['name'], "id" => "BXPH_FUNC_HANDLE_2_LARGE_SIZE", "text" => GetMessage('P_WM_IMG_ERROR04')); } if ($file['type'] && strpos(strtolower($file['type']), 'image') === false) { $arErrors[] = array("file" => $file['name'], "id" => "BXPH_FUNC_HANDLE_2_TYPE", "text" => GetMessage('P_WM_IMG_ERROR02')); } } if (count($arErrors) > 0) { // Exit if we have any errors return CImageUploader::SaveError($arErrors); } // Handle watermark for Flash-uploader if ($arParams["UPLOADER_TYPE"] == 'flash') { $arWatermark = false; if ($arParams['WATERMARK_RULES'] == 'ALL') { $arWatermark = array('type' => strtolower($arParams['WATERMARK_TYPE']), 'position' => $arParams['WATERMARK_POSITION']); if ($arParams['WATERMARK_TYPE'] == 'TEXT') { $arWatermark['coefficient'] = $arParams['WATERMARK_SIZE']; $arWatermark['text'] = trim($arParams['WATERMARK_TEXT']); $arWatermark['font'] = trim($arParams['PATH_TO_FONT']); $arWatermark['color'] = trim($arParams['WATERMARK_COLOR']); $arWatermark['use_copyright'] = "N"; } else { $arWatermark['file'] = $arParams['WATERMARK_FILE']; $arWatermark['alpha_level'] = $arParams['WATERMARK_TRANSPARENCY']; $arWatermark['size'] = 'real'; $arWatermark['fill'] = $arParams['WATERMARK_FILE_ORDER'] == 'usual' ? 'exact' : $arParams['WATERMARK_FILE_ORDER']; } } elseif ($Params['packageFields']['photo_watermark_use'] == 'Y') { $arWatermark = array('type' => $Params['packageFields']['photo_watermark_type'], 'text' => $Params['packageFields']['photo_watermark_text'], 'font' => $arParams['PATH_TO_FONT'], 'position' => $Params['packageFields']['photo_watermark_position'], 'color' => $Params['packageFields']['photo_watermark_color'], 'size' => $Params['packageFields']['photo_watermark_size'], 'fill' => 'resize', 'file' => $_SERVER["DOCUMENT_ROOT"] . $Params['packageFields']['photo_watermark_path'], 'alpha_level' => $Params['packageFields']['photo_watermark_opacity'], 'use_copyright' => $Params['packageFields']["photo_watermark_copyright"] == "Y" ? "Y" : "N"); } if ($arWatermark) { // Add watermark here foreach ($arFiles as $i => $file) { if ($i == 1) { // It's thumbnail skip it continue; } $size = CFile::GetImageSize($file['tmp_name']); $type = $size[2]; $sourceImage = CFile::CreateImage($file['tmp_name'], $type); if ($sourceImage) { $res = CFile::Watermark($sourceImage, $arWatermark); if (file_exists($file['tmp_name'])) { unlink($file['tmp_name']); } switch ($type) { case IMAGETYPE_GIF: imagegif($sourceImage, $file['tmp_name']); break; case IMAGETYPE_PNG: imagealphablending($sourceImage, false); imagesavealpha($sourceImage, true); imagepng($sourceImage, $file['tmp_name']); break; default: if ($arSourceFileSizeTmp[2] == IMAGETYPE_BMP) { $file['tmp_name'] .= ".jpg"; } imagejpeg($sourceImage, $file['tmp_name'], 100); break; } if ($sourceImage) { imagedestroy($sourceImage); } } } } } // Props $Prop = array(); // Additional image copyies $ind = -1; foreach ($arParams['converters'] as $key => $val) { $ind++; if ($val['code'] == "real_picture" || $val['code'] == "thumbnail") { continue; } $Prop[strtoupper($val['code'])] = array("n0" => $arFiles[$ind]); } $_REQUEST["Public"] = $_REQUEST["Public"] == "N" ? "N" : "Y"; $Prop["PUBLIC_ELEMENT"] = array("n0" => $_REQUEST["Public"]); $Prop["APPROVE_ELEMENT"] = array("n0" => ($arParams["ABS_PERMISSION"] >= "U" || $arParams["APPROVE_BY_DEFAULT"] == "Y") && $_REQUEST["Public"] == "Y" ? "Y" : "X"); // Real photo $Prop["REAL_PICTURE"] = array("n0" => $arFiles[0]); $arFields = array("ACTIVE" => $arParams["MODERATION"] == "Y" && $arParams["ABS_PERMISSION"] < "U" ? "N" : "Y", "MODIFIED_BY" => $USER->GetID(), "IBLOCK_SECTION" => $savedData['SECTION_ID'], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "NAME" => $Info['name'], "CODE" => $Info['name'], "TAGS" => $Info['tags'], "DETAIL_TEXT" => $Info['description'], "DETAIL_TEXT_TYPE" => "text", "PREVIEW_PICTURE" => $arFiles[1], "PREVIEW_TEXT" => $Info['description'], "PREVIEW_TEXT_TYPE" => "text", "PROPERTY_VALUES" => $Prop); //$arFields["NAME"] = (!empty($arFields["NAME"]) ? $arFields["NAME"] : $File["REAL_PICTURE"]["name"]); //$arFields["DATE_CREATE"] = (intVal($arRealFile["ExifTimeStamp"]) > 0 ? // ConvertTimeStamp($arRealFile["ExifTimeStamp"], "FULL") : $arFields["DATE_CREATE"]); $bs = new CIBlockElement(); $ID = $bs->Add($arFields); if ($ID <= 0) { $strError = $bs->LAST_ERROR; $arErrors = array(); $arTmp = explode("<br>", $strError); foreach ($arTmp as $er) { if (trim($er) != '' && !in_array($er, $arErrors)) { $arErrors[] = array("id" => "BXPH_FUNC_002", "text" => $er); } } CImageUploader::SaveError($arErrors); } else { $arFields['ID'] = $ID; $_SESSION['arUploadedPhotos'][] = $ID; CIBlockElement::RecalcSections($ID); $arParams['SECTION_ID'] = $savedData['SECTION_ID']; $arResult = $Params['~arResult']; $events = GetModuleEvents("photogallery", "OnAfterUpload"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arFields, $arParams, $arResult)); } // Add thumbnail only for new album if ($savedData['NEW_SECTION_NAME'] && !$savedData['NEW_SECTION_PICTURE']) { $File = $arFiles[0]; // Big picture $File['tmp_name_1'] = $File['tmp_name']; $File['tmp_name'] = substr($File['tmp_name'], 0, strrpos($File['tmp_name'], ".")) . "_album_cover.tmp"; if (CFile::ResizeImageFile($File['tmp_name_1'], $File['tmp_name'], array('width' => $arParams["ALBUM_PHOTO_THUMBS"]["SIZE"], 'height' => $arParams["ALBUM_PHOTO_THUMBS"]["SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL_ALT)) { $bs = new CIBlockSection(); if ($bs->Update($savedData["SECTION_ID"], array("PICTURE" => $File), false, false)) { $savedData['NEW_SECTION_PICTURE'] = true; CImageUploader::SetSavedData($savedData); } } } } return $ID; }
function GetStsSyncURL($arSectionParams, $type = 'calendar', $employees = false) { global $USER, $APPLICATION; if (!is_array($arSectionParams)) { $arSectionParams = array('ID' => intval($arSectionParams)); } //if (!$arSectionParams['ID']) // return false; $arAllowedTypes = array('calendar', 'tasks', 'contacts'); if (!in_array($type, $arAllowedTypes)) { $type = 'calendar'; } if ($type == 'calendar') { $calendar2 = COption::GetOptionString("intranet", "calendar_2", "N") == "Y" && CModule::IncludeModule("calendar"); $fld_EXTERNAL_ID = 'XML_ID'; if ($calendar2) { // $arSectionParams = array( // 'ID' => int // 'XML_ID' => string // 'NAME' => string // 'PREFIX' => string // 'LINK_URL' => string // 'TYPE' => string // ) if (strlen($arSectionParams['XML_ID']) !== 32) { $arSectionParams[$fld_EXTERNAL_ID] = md5($arSectionParams['TYPE'] . '_' . $arSectionParams['ID'] . '_' . RandString(8)); // Set XML_ID CCalendar::SaveSection(array('arFields' => array('ID' => $arSectionParams['ID'], 'XML_ID' => $arSectionParams[$fld_EXTERNAL_ID]), 'bAffectToDav' => false, 'bCheckPermissions' => false)); } } else { if (!$arSectionParams['IBLOCK_ID'] || !$arSectionParams['NAME'] || !$arSectionParams[$fld_EXTERNAL_ID]) { $dbRes = CIBlockSection::GetByID($arSectionParams['ID']); $arSection = $dbRes->Fetch(); if ($arSection) { $arSectionParams['IBLOCK_ID'] = $arSection['IBLOCK_ID']; $arSectionParams['NAME'] = $arSection['NAME']; $arSectionParams[$fld_EXTERNAL_ID] = $arSection[$fld_EXTERNAL_ID]; } else { return false; } } if (strlen($arSectionParams[$fld_EXTERNAL_ID]) !== 32) { $arSectionParams[$fld_EXTERNAL_ID] = md5($arSectionParams['IBLOCK_ID'] . '_' . $arSectionParams['ID'] . '_' . RandString(8)); $obSect = new CIBlockSection(); if (!$obSect->Update($arSectionParams['ID'], array($fld_EXTERNAL_ID => $arSectionParams[$fld_EXTERNAL_ID]), false, false)) { return false; } } } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $GUID = CIntranetUtils::makeGUID($arSectionParams[$fld_EXTERNAL_ID]); } elseif ($type == 'contacts') { if (!$arSectionParams['LINK_URL']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $arSectionParams['LINK_URL'] = SITE_DIR . 'contacts/'; } else { $arSectionParams['LINK_URL'] = SITE_DIR . 'company/'; } } if (!$arSectionParams['NAME']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite() && !$employees) { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_CONTACTS_EXTRANET'); } else { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_CONTACTS'); } } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $SERVER_NAME = $_SERVER['SERVER_NAME']; $GUID_DATA = $SERVER_NAME . '|' . $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $GUID_DATA .= "|extranet"; if ($employees) { $GUID_DATA .= "|employees"; } } $GUID = CIntranetUtils::makeGUID(md5($GUID_DATA)); } elseif ($type == 'tasks') { if (!$arSectionParams['LINK_URL']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $arSectionParams['LINK_URL'] = SITE_DIR . 'contacts/personal/user/' . $USER->GetID() . '/tasks/'; } else { $arSectionParams['LINK_URL'] = SITE_DIR . 'company/personal/user/' . $USER->GetID() . '/tasks/'; } } if (!$arSectionParams['NAME']) { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_TASKS'); } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $SERVER_NAME = $_SERVER['SERVER_NAME']; $GUID_DATA = $SERVER_NAME . '|' . $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $GUID_DATA .= "|extranet"; } $GUID = CIntranetUtils::makeGUID(md5($GUID_DATA)); } if (substr($arSectionParams['LINK_URL'], -9) == 'index.php') { $arSectionParams['LINK_URL'] = substr($arSectionParams['LINK_URL'], 0, -9); } if (substr($arSectionParams['LINK_URL'], -4) != '.php' && substr($arSectionParams['LINK_URL'], -1) != '/') { $arSectionParams['LINK_URL'] .= '/'; } // another dirty hack to avoid some M$ stssync protocol restrictions if (substr($arSectionParams['LINK_URL'], -1) != '/') { $arSectionParams['LINK_URL'] .= '/'; } $GLOBALS['APPLICATION']->AddHeadScript('/bitrix/js/intranet/outlook.js'); $type_script = $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $type_script .= "_extranet"; if ($employees) { $type_script .= "_emp"; } } $port = $APPLICATION->IsHTTPS() ? 443 : 80; if (\Bitrix\Main\Loader::includeModule('ldap')) { $port = CLdapUtil::getTargetPort(); } return 'jsOutlookUtils.Sync(\'' . $type . '\', \'/bitrix/tools/ws_' . $type_script . '\', \'' . $arSectionParams['LINK_URL'] . '\', \'' . CUtil::JSEscape(htmlspecialcharsbx($arSectionParams['PREFIX'])) . '\', \'' . CUtil::JSEscape($arSectionParams['NAME']) . '\', \'' . $GUID . '\', ' . intval($port) . ')'; }
function Edit($arParams, &$newSectionId, $bDisplay = true) { global $DB; $iblockId = $arParams['iblockId']; $ownerId = $arParams['ownerId']; $ownerType = $arParams['ownerType']; $sectionId = $arParams['sectionId']; $arFields = $arParams['arFields']; if ($sectionId === 'none') { $sectionId = CEventCalendar::CreateSectionForOwner($ownerId, $ownerType, $iblockId); // Creating section for owner if ($sectionId === false) { return false; } if ($bDisplay) { ?> <script>window._bx_section_id = <?php echo intVal($sectionId); ?> ;</script><?php } $newSectionId = $sectionId; } $ID = $arFields['ID']; $DB->StartTransaction(); $bs = new CIBlockSection(); if ($ownerType != 'USER' && $ownerType != 'GROUP') { $ownerType = ''; } $key_color = "UF_" . $ownerType . "_CAL_COL"; $key_export = "UF_" . $ownerType . "_CAL_EXP"; $key_status = "UF_" . $ownerType . "_CAL_STATUS"; $EXPORT = $arFields['EXPORT'] ? $arFields['EXPORT_SET'] : ''; $arFields = array("ACTIVE" => "Y", "IBLOCK_SECTION_ID" => $sectionId, "IBLOCK_ID" => $iblockId, "NAME" => $arFields['NAME'], "DESCRIPTION" => $arFields['DESCRIPTION'], $key_color => $arFields['COLOR'], $key_export => $EXPORT, $key_status => $arFields['PRIVATE_STATUS']); $GLOBALS[$key_color] = $COLOR; $GLOBALS[$key_export] = $EXPORT; $GLOBALS[$key_status] = $arFields['PRIVATE_STATUS']; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $iblockId . "_SECTION", $arFields); if ($ownerType == 'GROUP' && $ownerId > 0) { $arFields['SOCNET_GROUP_ID'] = $ownerId; } if (isset($ID) && $ID > 0) { $res = $bs->Update($ID, $arFields); } else { $ID = $bs->Add($arFields); $res = $ID > 0; if ($res) { //This sets appropriate owner if section created by owner of the meeting and this calendar belongs to guest which is not current user if ($ownerType == 'USER' && $ownerId > 0) { $DB->Query("UPDATE b_iblock_section SET CREATED_BY = " . intval($ownerId) . " WHERE ID = " . intval($ID)); } } } if (!$res) { $DB->Rollback(); return false; } $DB->Commit(); return $ID; }