/**
  * @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;
 }
Ejemplo n.º 2
0
 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!');
     }
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 /**
  * @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);
         }
     }
 }
Ejemplo n.º 5
0
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"] . "'}";
            }
        }
    }
}
Ejemplo n.º 6
0
 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;
     }
 }
Ejemplo n.º 7
0
             } 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 {
Ejemplo n.º 8
0
    $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");
?>
Ejemplo n.º 9
0
         $_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") {
Ejemplo n.º 10
0
 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"]);
     }
 }
Ejemplo n.º 11
0
 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' => ''));
             }
         }
     }
 }
Ejemplo n.º 12
0
 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;
 }
Ejemplo n.º 13
0
    $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;
    }
}
Ejemplo n.º 14
0
                        $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");
Ejemplo n.º 15
0
<?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>';
}
Ejemplo n.º 16
0
         $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 {
Ejemplo n.º 17
0
 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;
 }
Ejemplo n.º 18
0
 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(" &gt; ", ">", $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";
Ejemplo n.º 20
0
 /**
  * Сохраняет запись
  * @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;
 }
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
         $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();
Ejemplo n.º 23
0
 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;
 }
Ejemplo n.º 24
0
        }
        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));
    }
}
Ejemplo n.º 25
0
				{
					$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")
Ejemplo n.º 26
0
     $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();
Ejemplo n.º 27
0
     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) {
Ejemplo n.º 28
0
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;
}
Ejemplo n.º 29
0
 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) . ')';
 }
Ejemplo n.º 30
0
    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;
    }