Esempio n. 1
0
 public static function getRootSectionIdForUser($iblockId, $userId)
 {
     global $USER_FIELD_MANAGER;
     global $UF_USE_BP;
     $result = CIBlockWebdavSocnet::getSectionId($iblockId, 'user', $userId);
     if (($result = intval($result)) > 0) {
         return $result;
     }
     $fields = array('IBLOCK_ID' => $iblockId, 'ACTIVE' => 'Y', 'SOCNET_GROUP_ID' => false, 'IBLOCK_SECTION_ID' => 0, 'UF_USE_BP' => 'N', 'UF_USE_EXT_SERVICES' => CWebDavIblock::resolveDefaultUseExtServices());
     $user = CUser::getById($userId)->fetch();
     if (empty($user)) {
         return false;
     }
     $fields['NAME'] = trim($user['LAST_NAME'] . ' ' . $user['FIRST_NAME']);
     $fields['NAME'] = trim(!empty($fields["NAME"]) ? $fields['NAME'] : $user['LOGIN']);
     $fields['CREATED_BY'] = $user['ID'];
     $fields['MODIFIED_BY'] = $user['ID'];
     if (CIBlock::GetArrayByID($iblockId, "RIGHTS_MODE") === "E") {
         $tasks = CWebDavIblock::GetTasks();
         $fields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'U' . $userId, 'TASK_ID' => $tasks['X']));
     }
     $UF_USE_BP = $fields['UF_USE_BP'];
     $USER_FIELD_MANAGER->editFormAddFields('IBLOCK_' . $iblockId . '_SECTION', $fields);
     $section = new CIBlockSection();
     $sectionId = $section->add($fields);
     if (!$sectionId) {
         return false;
     }
     WDClearComponentCache(array('webdav.element.edit', 'webdav.element.hist', 'webdav.element.upload', 'webdav.element.view', 'webdav.menu', 'webdav.section.edit', 'webdav.section.list'));
     return $sectionId;
 }