/** * Генерация создания * * generateAddCode * @param array $hlBlockId * @return string * @throws \Exception */ public function generateAddCode($hlBlockId) { $return = array(); $hlBlock = HL\HighloadBlockTable::getById($hlBlockId)->fetch(); if (!$hlBlock) { throw new BimException('Not found highload block with id = ' . $hlBlockId); } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\HighloadblockIntegrate', 'Add', array($hlBlock['NAME'], $hlBlock['TABLE_NAME'])); $hlQuery = $this->userType->GetList(array(), array("ENTITY_ID" => "HLBLOCK_" . $hlBlockId)); while ($hlData = $hlQuery->Fetch()) { $fullData = $this->userType->GetByID($hlData['ID']); unset($fullData['ID']); unset($fullData['ENTITY_ID']); if (($fullData['USER_TYPE_ID'] == "iblock_element" || $fullData['USER_TYPE_ID'] == "iblock_section") && isset($fullData['SETTINGS']['IBLOCK_ID'])) { if (!empty($fullData['SETTINGS']['IBLOCK_ID'])) { $iblockId = $fullData['SETTINGS']['IBLOCK_ID']; unset($fullData['SETTINGS']['IBLOCK_ID']); $blockQuery = $this->iblock->GetList(array(), array('ID' => $iblockId, 'CHECK_PERMISSIONS' => 'N')); if ($iBlockData = $blockQuery->Fetch()) { $fullData['SETTINGS']['IBLOCK_CODE'] = $iBlockData['CODE']; } else { throw new BimException(' Not found iblock with id ' . $iblockId); } } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\HighloadblockFieldIntegrate', 'Add', array($hlBlock['NAME'], $fullData)); } return implode(PHP_EOL, $return); }
/** * @return bool true if some mandatory UF exists for TASKS */ public static function isMandatoryUserFieldExists() { /** @var $CACHE_MANAGER CCacheManager */ global $CACHE_MANAGER; $isFieldExists = null; // unknown yet $obCache = new CPHPCache(); $lifeTime = CTasksTools::CACHE_TTL_UNLIM; $cacheID = md5('uftasks'); $cacheDir = "/tasks/ufs"; if (defined('BX_COMP_MANAGED_CACHE') && $obCache->InitCache($lifeTime, $cacheID, $cacheDir)) { $data = $obCache->GetVars(); $isFieldExists = $data['isFieldExists']; } else { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $rsUserType = CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'TASKS_TASK', 'MANDATORY' => 'Y')); if ($rsUserType->fetch()) { $isFieldExists = true; } else { $isFieldExists = false; } if (defined('BX_COMP_MANAGED_CACHE') && $obCache->StartDataCache()) { $CACHE_MANAGER->StartTagCache($cacheDir); $CACHE_MANAGER->RegisterTag('tasks_user_fields'); $CACHE_MANAGER->EndTagCache(); $data = array('isFieldExists' => $isFieldExists); $obCache->EndDataCache($data); } } return $isFieldExists; }
function __wd_check_uf_use_bp_property($iblock_id) { $iblock_id = intval($iblock_id); $db_res = CUserTypeEntity::GetList(array($by=>$order), array("ENTITY_ID" => "IBLOCK_".$iblock_id."_SECTION", "FIELD_NAME" => "UF_USE_BP")); if (!$db_res || !($res = $db_res->GetNext())) { $arFields = Array( "ENTITY_ID" => "IBLOCK_".$iblock_id."_SECTION", "FIELD_NAME" => "UF_USE_BP", "USER_TYPE_ID" => "string", "MULTIPLE" => "N", "MANDATORY" => "N", "SETTINGS" => array("DEFAULT_VALUE" => "Y")); $arFieldName = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while($arLanguage = $rsLanguage->Fetch()): // GetMessage("SONET_UF_USE_BP"); $dir = str_replace(array("\\", "//"), "/", dirname(__FILE__)); $dirs = explode("/", $dir); array_pop($dirs); $file = trim(implode("/", $dirs)."/lang/".$arLanguage["LID"]."/include/webdav_settings.php"); $tmp_mess = __IncludeLang($file, true); $arFieldName[$arLanguage["LID"]] = (empty($tmp_mess["SONET_UF_USE_BP"]) ? "Use Business Process" : $tmp_mess["SONET_UF_USE_BP"]); endwhile; $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity; $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } }
public function getUserTypeEntity($entityId, $fieldName) { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $dbRes = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $entityId, 'FIELD_NAME' => $fieldName)); $aItem = $dbRes->Fetch(); return !empty($aItem) ? $aItem : false; }
function getUserEntityFields() { if (empty($this->_user_fields)) { $rsData = CUserTypeEntity::GetList(array($by => $order), array()); while ($arData = $rsData->GetNext()) { $this->_user_fields[$arData["ID"]] = $arData; } } return $this->_user_fields; }
/** * Возвращает список полей, которые подключены к пользователю * @return array */ public static function getListFor($entity) { if (!isset(self::$_entities[$entity])) { self::$_entities[$entity] = array(); $array = array(); $rsData = \CUserTypeEntity::GetList(array(), ['ENTITY_ID' => $entity]); while ($ob = $rsData->Fetch()) { self::$_entities[$entity][] = $ob; } } return self::$_entities[$entity]; }
function InstallUserFields() { global $USER_FIELD_MANAGER, $APPLICATION; AddEventHandler("main", "OnUserTypeBuildList", array("CUserTypeWebdavElement", "GetUserTypeDescription")); AddEventHandler("main", "OnUserTypeBuildList", array("CUserTypeWebdavElementHistory", "GetUserTypeDescription")); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webdav/classes/usertypewebdav.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webdav/classes/usertypewebdavelementhistory.php"; $USER_FIELD_MANAGER->CleanCache(); $USER_FIELD_MANAGER->arUserTypes = ''; $arFields = array("BLOG_POST" => array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => "UF_BLOG_POST_FILE", "XML_ID" => "UF_BLOG_POST_FILE"), "BLOG_COMMENT" => array("ENTITY_ID" => "BLOG_COMMENT", "FIELD_NAME" => "UF_BLOG_COMMENT_FILE", "XML_ID" => "UF_BLOG_COMMENT_FILE")); $arFieldProps = array("USER_TYPE_ID" => "webdav_element", "SORT" => 100, "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array(), "EDIT_FORM_LABEL" => "", "LIST_COLUMN_LABEL" => "", "LIST_FILTER_LABEL" => "", "ERROR_MESSAGE" => "", "HELP_MESSAGE" => ""); $typeData = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "BLOG_COMMENT", "FIELD_NAME" => "UF_BLOG_COMMENT_FH", "XML_ID" => "UF_BLOG_COMMENT_FH")); if (!($typeData = $typeData->Fetch())) { $arFieldPropsHistory = array("USER_TYPE_ID" => "webdav_element_history", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array(), "EDIT_FORM_LABEL" => "", "LIST_COLUMN_LABEL" => "", "LIST_FILTER_LABEL" => "", "ERROR_MESSAGE" => "", "HELP_MESSAGE" => "", "ENTITY_ID" => "BLOG_COMMENT", "FIELD_NAME" => "UF_BLOG_COMMENT_FH", "XML_ID" => "UF_BLOG_COMMENT_FH"); $obUserField = new CUserTypeEntity(); $intID = $obUserField->Add($arFieldPropsHistory); if (false == $intID) { if ($strEx = $APPLICATION->GetException()) { $this->errors[] = $strEx->GetString(); } } } foreach ($arFields as $fieldName => $arField) { $rsData = CUserTypeEntity::GetList(array(), $arField); if ($arRes = $rsData->Fetch()) { $intID = $arRes['ID']; } else { $arProps = $arFieldProps + $arField; $obUserField = new CUserTypeEntity(); $intID = $obUserField->Add($arProps); if (false == $intID) { if ($strEx = $APPLICATION->GetException()) { $this->errors[] = $strEx->GetString(); } } } } $rsData = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "BLOG_POST", "XML_ID" => "UF_BLOG_POST_F_EDIT")); $arRes = $rsData->Fetch(); if (!$arRes) { $arFieldProps = array("USER_TYPE_ID" => "boolean", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array(), "EDIT_FORM_LABEL" => "", "LIST_COLUMN_LABEL" => "", "LIST_FILTER_LABEL" => "", "ERROR_MESSAGE" => "", "HELP_MESSAGE" => "", "ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => "UF_BLOG_POST_F_EDIT", "XML_ID" => "UF_BLOG_POST_F_EDIT"); $obUserField = new CUserTypeEntity(); $propID = $obUserField->Add($arFieldProps, false); } $rsData = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "BLOG_POST", "XML_ID" => "UF_BLOG_POST_FILE")); $arRes = $rsData->Fetch(); if ($arRes && empty($arRes['SETTINGS']['UF_TO_SAVE_ALLOW_EDIT'])) { $arRes['SETTINGS']['UF_TO_SAVE_ALLOW_EDIT'] = 'UF_BLOG_POST_F_EDIT'; $obUserField = new CUserTypeEntity(); $res = $obUserField->Update($arRes['ID'], array('SETTINGS' => $arRes['SETTINGS'])); } }
function addValueToList($field, $entity, $props) { $raw = CUserTypeEntity::GetList(array($by => $order), array('FIELD_NAME' => $field, 'ENTITY_ID' => $entity))->Fetch(); $fields = array(); $enum = CUserFieldEnum::GetList(array(), array("USER_FIELD_ID" => $raw['ID'])); while ($el = $enum->GetNext()) { $fields[$el['XML_ID']] = $el; } if (!isset($fields[$props['XML_ID']])) { $obEnum = new CUserFieldEnum(); $obEnum->SetEnumValues($raw['ID'], array("n0" => $props)); } }
/** * @param string $propCode * @param string $userType * * @return bool * * @throws PropertyAlreadyExistException */ protected function checkExistProperty($propCode, $userType) { $propertyModel = new \CUserTypeEntity(); $rsProperty = $propertyModel->GetList([], ['ENTITY_ID' => 'IBLOCK_' . $this->getIblockId() . '_SECTION', 'FIELD_NAME' => 'UF_' . $propCode]); if ($property = $rsProperty->Fetch()) { if ($property['USER_TYPE_ID'] !== $userType) { throw new PropertyAlreadyExistException($propCode); } else { return true; } } return false; }
public function getEnumVariant($attr, $code) { $attrData = $this->attrs[$attr]; if (ltrim($attrData[0], '\\') != PropEnumElement::className()) { throw new \Exception('Attr `' . $attr . '(' . $attrData[0] . ')` is not list'); } $field = $this->attrsToFields[$attr]; $userField = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'USER', 'FIELD_NAME' => $field))->Fetch(); if (!$userField) { throw new \Exception('User property `' . $field . '` as code `' . $field . '` not exists'); } $gw = $this->getGatewayByEntityClass(PropEnumElement::className()); return $gw->findOne(array(array('attr' => 'propertyId', 'operator' => '', 'value' => $userField['ID']), array('attr' => 'xmlId', 'operator' => '', 'value' => $code)), array('value' => 'asc')); }
function UnInstallUserFields() { @set_time_limit(0); $db_res = CUserTypeEntity::GetList(array("ID" => "ASC"), array("USER_TYPE_ID" => "vote")); if ($db_res && ($res = $db_res->Fetch())) { $GLOBALS["DB"]->StartTransaction(); $obUserField = new CUserTypeEntity(); @set_time_limit(0); do { if ($obUserField->Delete($res["ID"])) { $GLOBALS["DB"]->Rollback(); } } while ($res = $db_res->Fetch()); $GLOBALS["DB"]->Commit(); } }
public function down() { global $APPLICATION; $arHlData = $this->arHlData; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\PeopleTable::getTableName())))->fetch(); if ($arHlblock) { foreach ($arHlData as $fieldName => $fieldValue) { $oUserTypeEntity = new \CUserTypeEntity(); $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName)); if ($aUserHasField = $resProperty->Fetch()) { $oUserTypeEntity->Delete($aUserHasField['ID']); $this->outSuccess("Свойство удалено!"); } } } }
public function down() { global $APPLICATION; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\SubscribeTable::getTableName())))->fetch(); if ($arHlblock) { $arProps = array("UF_DATETIME_TO"); foreach ($arProps as $prop_name) { $oUserTypeEntity = new \CUserTypeEntity(); $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $prop_name)); if ($aUserHasField = $resProperty->Fetch()) { $oUserTypeEntity->Delete($aUserHasField['ID']); $this->outSuccess("Свойство 'Дата окончания подписки' удалено!"); } } } }
public function UpdateCodes($USER_ID) { /** @global CUserTypeManager $USER_FIELD_MANAGER */ global $DB, $USER_FIELD_MANAGER; $USER_ID = intval($USER_ID); $arDep = $USER_FIELD_MANAGER->GetUserFieldValue("USER", "UF_DEPARTMENT", $USER_ID); if (is_array($arDep) && !empty($arDep)) { $iblockId = COption::GetOptionInt('intranet', 'iblock_structure', 0); $res = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_" . $iblockId . "_SECTION", "FIELD_NAME" => "UF_HEAD")); if ($res->Fetch()) { //user's department ('D') and all departments above ('DR') $DB->Query("\n\t\t\t\t\tINSERT INTO b_user_access (USER_ID, PROVIDER_ID, ACCESS_CODE)\n\t\t\t\t\tSELECT " . $USER_ID . ", '" . $DB->ForSQL($this->id) . "', " . $DB->Concat("T1.ROLE", $DB->type == "MSSQL" ? "CAST(T1.ID as varchar(17))" : "T1.ID") . "\n\t\t\t\t\tFROM (\n\t\t\t\t\t\tSELECT DISTINCT BS2.ID ID, (case when BS.ID = BS2.ID then 'D' else 'DR' end) ROLE\n\t\t\t\t\t\tFROM b_iblock_section BS\n\t\t\t\t\t\t\tLEFT JOIN b_iblock_section BS2 ON BS2.IBLOCK_ID = BS.IBLOCK_ID AND BS2.LEFT_MARGIN <= BS.LEFT_MARGIN AND BS2.RIGHT_MARGIN >= BS.RIGHT_MARGIN\n\t\t\t\t\t\tWHERE BS.ID IN (" . implode(",", $arDep) . ")\n\t\t\t\t\t\t\tAND BS.IBLOCK_ID = " . $iblockId . "\n\t\t\t\t\t\t\tAND BS2.GLOBAL_ACTIVE = 'Y'\n\t\t\t\t\t\tUNION\n\t\t\t\t\t\tSELECT BS.ID ID, 'DR' ROLE\n\t\t\t\t\t\tFROM b_iblock_section BS\n\t\t\t\t\t\tWHERE BS.ID IN (" . implode(",", $arDep) . ")\n\t\t\t\t\t\t\tAND BS.IBLOCK_ID = " . $iblockId . "\n\t\t\t\t\t\t\tAND BS.GLOBAL_ACTIVE = 'Y'\n\t\t\t\t\t) T1\n\t\t\t\t"); //intranet user himself ('IU') $DB->Query("\n\t\t\t\t\tINSERT INTO b_user_access (USER_ID, PROVIDER_ID, ACCESS_CODE)\n\t\t\t\t\tVALUES (" . $USER_ID . ", '" . $DB->ForSQL($this->id) . "', 'IU" . $USER_ID . "')\n\t\t\t\t"); //if the user is a boss let's add all his subordinates ('IU') $DB->Query("\n\t\t\t\t\tINSERT INTO b_user_access (USER_ID, PROVIDER_ID, ACCESS_CODE)\n\t\t\t\t\tSELECT DISTINCT " . $USER_ID . ", '" . $DB->ForSQL($this->id) . "', " . $DB->Concat("'IU'", $DB->type == "MSSQL" ? "CAST(U.ID as varchar(17))" : "U.ID") . "\n\t\t\t\t\tFROM\n\t\t\t\t\t\tb_user U\n\t\t\t\t\t\tINNER JOIN b_utm_user BUF1 ON BUF1.VALUE_ID = U.ID\n\t\t\t\t\t\tINNER JOIN b_user_field UF ON UF.ID = BUF1.FIELD_ID\n\t\t\t\t\t\tINNER JOIN (SELECT BS2.ID AS ID\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\tb_iblock_section BS\n\t\t\t\t\t\t\t\tINNER JOIN b_uts_iblock_" . $iblockId . "_section BUF ON BUF.VALUE_ID = BS.ID\n\t\t\t\t\t\t\t\tLEFT JOIN b_iblock_section BS2 ON BS2.IBLOCK_ID = BS.IBLOCK_ID AND BS2.LEFT_MARGIN >= BS.LEFT_MARGIN AND BS2.RIGHT_MARGIN <= BS.RIGHT_MARGIN\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tBS.IBLOCK_ID = " . $iblockId . "\n\t\t\t\t\t\t\t\tAND BS2.GLOBAL_ACTIVE = 'Y'\n\t\t\t\t\t\t\t\tAND BUF.UF_HEAD = " . $USER_ID . "\n\t\t\t\t\t\t) S ON S.ID = BUF1.VALUE_INT\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tUF.FIELD_NAME = 'UF_DEPARTMENT'\n\t\t\t\t\t\tAND U.ID <> " . $USER_ID . "\n\t\t\t\t"); } } }
protected function execute(InputInterface $input, OutputInterface $output) { $file = $input->getArgument('file'); if (!file_exists($file) || !($fh = fopen($file, 'r'))) { $output->writeln('<error>Can\'t read data from file</error>'); return null; } //выбираем группу $group = 0; $res = \CGroup::GetList($by = '', $order = '', ['STRING_ID' => 'totaldict_chairman_experts']); if ($ob = $res->Fetch()) { $group = $ob['ID']; } //выбираем список статусов $statusList = []; $rsData = \CUserTypeEntity::GetList([], ['ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_TD_ORG_STATUS']); if ($fob = $rsData->GetNext()) { $ar = ['newby' => 'НОВИЧКИ', 'pretty_boy' => 'КРАСАВЧИКИ', 'catching' => 'ДОГОНЯЮЩИЕ', 'redneck' => 'ДЕРЕВНИ']; $res = \CUserFieldEnum::GetList([], ['USER_FIELD_ID' => $fob['ID']]); while ($ob = $res->Fetch()) { if (empty($ar[$ob['XML_ID']])) { continue; } $statusList[$ar[$ob['XML_ID']]] = $ob['ID']; } } //список стран для заполнения $countries = GetCountryArray(); $countries = array_combine($countries['reference'], $countries['reference_id']); $currentStatus = null; while (($data = fgetcsv($fh)) !== false) { //если заполнена только вторая колонка то это статус if (empty($data[1]) && !empty($data[0]) && isset($statusList[$data[0]])) { $currentStatus = $statusList[$data[1]]; continue; } //массив для загрузки данных пользователя $arLoad = ['ACTIVE' => 'Y', 'PERSONAL_COUNTRY' => isset($countries['Россия']) ? $countries['Россия'] : null, 'PERSONAL_CITY' => $data[0], 'LAST_NAME' => $data[1], 'WORK_POSITION' => $data[3], 'PERSONAL_MOBILE' => $data[4], 'PERSONAL_STREET' => $data[6], 'PERSONAL_WWW' => $data[8], 'PASSWORD' => 'Test,user,passwr0d', 'CONFIRM_PASSWORD' => 'Test,user,passwr0d', 'UF_TD_ORG_STATUS' => $currentStatus, 'GROUP_ID' => [2, $group]]; //пробуем разбить email if (strpos($data[5], ',')) { $explode = array_map('trim', explode(',', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], 'и')) { $explode = array_map('trim', explode('и', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ';')) { $explode = array_map('trim', explode(';', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ' ')) { $explode = array_map('trim', explode(' ', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } else { $arLoad['EMAIL'] = trim($data[5]); } //пробуем разбить фамилию и имя if (strpos($data[2], ' ')) { $explode = explode(' ', trim($data[2])); $arLoad['NAME'] = $explode[0]; $arLoad['SECOND_NAME'] = $explode[1]; } else { $arLoad['NAME'] = trim($data[2]); } //пробуем завести дату в базу if (($time = strtotime($data[7])) !== false) { $arLoad['PERSONAL_BIRTHDAY'] = ConvertTimeStamp($time, 'SHORT', 'ru'); } //пробуем найти страну, чтобы привязать пользователя к городу $country = \bxpimple\Locator::$item->get('countryFinder')->mergeFilterWith(['NAME' => 'Россия'])->one(); if ($country) { //если нашли страну, то пробуем найти и город $city = \bxpimple\Locator::$item->get('cityFinder')->mergeFilterWith(['NAME' => trim($data[0]), 'PROPERTY_TOTALDICT_GEO_CITIES_COUNTRY' => $country->getAttribute('ID')->getValue()])->one(); if ($city) { //если нашли город, то привязываем пользователя $arLoad['UF_TD_CITY_IB'] = $city->getAttribute('ID')->getValue(); } } //задаем логин, по умолчанию используем email $arLoad['LOGIN'] = $arLoad['EMAIL']; //пробуем найти пользователя по его логину $user = new \CUser(); $res = \CUser::GetList($by = '', $order = '', ['LOGIN_EQUAL' => $arLoad['LOGIN']]); if ($ob = $res->Fetch()) { $arGroups = \CUser::GetUserGroup($ob['ID']); if (is_array($arGroups)) { $arLoad['GROUP_ID'] = array_unique(array_merge($arLoad['GROUP_ID'], $arGroups)); } //обновляем if (!$user->Update($ob['ID'], $arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>User ' . $arLoad['LOGIN'] . ' updated</info>'); } } else { //создаем нового if (!$user->Add($arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>New user ' . $arLoad['LOGIN'] . ' added</info>'); } } } fclose($fh); }
function ImportSectionsProperties($XML_PARENT, $IBLOCK_ID) { /** @var CMain $APPLICATION */ global $APPLICATION; $obTypeManager = new CUserTypeEntity(); $sort = 100; $rs = $this->_xml_file->GetList(array("ID" => "asc"), array("PARENT_ID" => $XML_PARENT), array("ID")); while ($ar = $rs->Fetch()) { $XML_ENUM_PARENT = array(); $arField = array(); $rsP = $this->_xml_file->GetList(array("ID" => "asc"), array("PARENT_ID" => $ar["ID"])); while ($arP = $rsP->Fetch()) { if (isset($arP["VALUE_CLOB"])) { $arP["VALUE"] = $arP["VALUE_CLOB"]; } if ($arP["NAME"] == $this->mess["IBLOCK_XML2_ID"]) { $arField["XML_ID"] = $arP["VALUE"]; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_NAME"]) { $arField["FIELD_NAME"] = $arP["VALUE"]; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_SORT"]) { $arField["SORT"] = $arP["VALUE"]; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_MULTIPLE"]) { $arField["MULTIPLE"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_PROPERTY_TYPE"]) { $arField["USER_TYPE_ID"] = $arP["VALUE"]; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_IS_REQUIRED"]) { $arField["MANDATORY"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_FILTER"]) { $arField["SHOW_FILTER"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_SHOW_IN_LIST"]) { $arField["SHOW_IN_LIST"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_EDIT_IN_LIST"]) { $arField["EDIT_IN_LIST"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_SEARCH"]) { $arField["IS_SEARCHABLE"] = $arP["VALUE"] == "true" || intval($arP["VALUE"]) ? "Y" : "N"; } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_BX_SETTINGS"]) { $arField["SETTINGS"] = unserialize($arP["VALUE"]); } elseif ($arP["NAME"] == $this->mess["IBLOCK_XML2_CHOICE_VALUES"]) { $XML_ENUM_PARENT = $arP["ID"]; } } $rsUserFields = $obTypeManager->GetList(array(), array("ENTITY_ID" => "IBLOCK_" . $IBLOCK_ID . "_SECTION", "XML_ID" => $arField["XML_ID"])); $arDBField = $rsUserFields->Fetch(); if (!$arDBField) { $rsUserFields = $obTypeManager->GetList(array(), array("ENTITY_ID" => "IBLOCK_" . $IBLOCK_ID . "_SECTION", "FIELD_NAME" => $arField["FIELD_NAME"])); $arDBField = $rsUserFields->Fetch(); } if ($arDBField) { $bChanged = false; foreach ($arField as $key => $value) { if ($arDBField[$key] !== $value) { $bChanged = true; break; } } if (!$bChanged) { $arField["ID"] = $arDBField["ID"]; } elseif ($obTypeManager->Update($arDBField["ID"], $arField)) { $arField["ID"] = $arDBField["ID"]; } else { if ($e = $APPLICATION->GetException()) { return GetMessage("IBLOCK_XML2_UF_ERROR", array("#XML_ID#" => $arField["XML_ID"], "#ERROR_TEXT#" => $e->GetString())); } else { return false; } } } else { $arField["ENTITY_ID"] = "IBLOCK_" . $IBLOCK_ID . "_SECTION"; if (!array_key_exists("SORT", $arField)) { $arField["SORT"] = $sort; } $arField["ID"] = $obTypeManager->Add($arField); if (!$arField["ID"]) { if ($e = $APPLICATION->GetException()) { return GetMessage("IBLOCK_XML2_UF_ERROR", array("#XML_ID#" => $arField["XML_ID"], "#ERROR_TEXT#" => $e->GetString())); } else { return false; } } } if ($XML_ENUM_PARENT) { $rsE = $this->_xml_file->GetList(array("ID" => "asc"), array("PARENT_ID" => $XML_ENUM_PARENT)); while ($arE = $rsE->Fetch()) { if (isset($arE["VALUE_CLOB"])) { $arE["VALUE"] = $arE["VALUE_CLOB"]; } $arEnumXmlNodes[] = $arE; } if (!empty($arEnumXmlNodes)) { $this->ImportSectionPropertyEnum($arField["ID"], $arEnumXmlNodes); } } $sort += 100; } return true; }
$arFields = array("IBLOCK_ID" => $iblockID, "IBLOCK_SECTION_ID" => $iblockSectionID, "ACTIVE" => "Y", "NAME" => $arChildCar["NAME"]); $iblockSection = new CIBlockSection(); $iblockChildSectionID = $iblockSection->Add($arFields, true, false); if ($iblockChildSectionID <= 0) { $errorString .= $iblockSection->LAST_ERROR; } } } } } } } } $iblockID = IntVal($iblockID); if (StrLen($iblockTypeID) > 0 && $iblockID > 0) { $dbUserField = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "USER", "FIELD_NAME" => "UF_USER_CAR_DEMO")); if ($arUserField = $dbUserField->Fetch()) { } else { $arFields = array("ENTITY_ID" => "USER", "FIELD_NAME" => "UF_USER_CAR_DEMO", "USER_TYPE_ID" => "iblock_section", "XML_ID" => "", "SORT" => 100, "MULTIPLE" => "Y", "MANDATORY" => "", "SHOW_FILTER" => "S", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y", "SETTINGS" => array("IBLOCK_TYPE_ID" => $iblockTypeID, "IBLOCK_ID" => $iblockID, "DISPLAY" => "LIST", "LIST_HEIGHT" => 5), "EDIT_FORM_LABEL" => array(), "LIST_COLUMN_LABEL" => array(), "LIST_FILTER_LABEL" => array()); foreach ($arLanguages as $arLang) { $arFields["EDIT_FORM_LABEL"][$arLang["LID"]] = GetSocNetMessageLocal("SONET_I_USER_PROP_EFL", $arLang["LID"]); $arFields["LIST_COLUMN_LABEL"][$arLang["LID"]] = GetSocNetMessageLocal("SONET_I_USER_PROP_LCL", $arLang["LID"]); $arFields["LIST_FILTER_LABEL"][$arLang["LID"]] = GetSocNetMessageLocal("SONET_I_USER_PROP_LFL", $arLang["LID"]); } $userField = new CUserTypeEntity(); $userFieldID = $userField->Add($arFields); if (!$userFieldID || $userFieldID <= 0) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorString .= $e->GetString(); } }
if (!($db_res && ($res = $db_res->GetNext()))) { $arFields = array("ENTITY_ID" => "IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", "FIELD_NAME" => "UF_DATE", "USER_TYPE_ID" => "datetime", "MULTIPLE" => "N", "MANDATORY" => "N"); $arFieldName = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arFieldName[$arLanguage["LID"]] = GetMessage("IBLOCK_DATE"); $arFieldName[$arLanguage["LID"]] = empty($arFieldName[$arLanguage["LID"]]) ? "Date" : $arFieldName[$arLanguage["LID"]]; } $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } } if (empty($arUserFields) || empty($arUserFields["UF_PASSWORD"])) { $db_res = CUserTypeEntity::GetList(array($by => $order), array("ENTITY_ID" => "IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", "FIELD_NAME" => "UF_PASSWORD")); if (!($db_res && ($res = $db_res->GetNext()))) { $arFields = array("ENTITY_ID" => "IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", "FIELD_NAME" => "UF_PASSWORD", "USER_TYPE_ID" => "string", "MULTIPLE" => "N", "MANDATORY" => "N"); $arFieldName = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arFieldName[$arLanguage["LID"]] = GetMessage("IBLOCK_PASSWORD"); $arFieldName[$arLanguage["LID"]] = empty($arFieldName[$arLanguage["LID"]]) ? "Password" : $arFieldName[$arLanguage["LID"]]; } $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } } if (empty($arUserFields) || empty($arUserFields["UF_DATE"]) || empty($arUserFields["UF_PASSWORD"])) {
function GetPeriodByID($ID, $ENTITY = "USER") { $entities = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => $ENTITY, "FIELD_NAME" => "UF_REPORT_PERIOD")); if ($arEntity = $entities->Fetch()) { $oStatus = CUserFieldEnum::GetList(array(), array("USER_FIELD_ID" => $arEntity["ID"])); while ($result = $oStatus->Fetch()) { if ($ID == $result["ID"]) { return $result["XML_ID"]; } } } return false; }
'MANDATORY' => 'Y', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', ) ); $arLanguages = Array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while($arLanguage = $rsLanguage->Fetch()) $arLanguages[] = $arLanguage["LID"]; $obUserField = new CUserTypeEntity; foreach ($arUserFields as $arFields) { $dbRes = CUserTypeEntity::GetList(Array(), Array("ENTITY_ID" => $arFields["ENTITY_ID"], "FIELD_NAME" => $arFields["FIELD_NAME"])); if ($dbRes->Fetch()) continue; $arLabelNames = Array(); foreach($arLanguages as $languageID) { WizardServices::IncludeServiceLang("references.php", $languageID); $arLabelNames[$languageID] = GetMessage($arFields["FIELD_NAME"]); } $arFields["EDIT_FORM_LABEL"] = $arLabelNames; $arFields["LIST_COLUMN_LABEL"] = $arLabelNames; $arFields["LIST_FILTER_LABEL"] = $arLabelNames; $ID_USER_FIELD = $obUserField->Add($arFields);
protected static function groupSectionCreate($groupId) { $groupLib = CWebDavIblock::LibOptions('group_files', false, SITE_ID); if (!$groupLib || !isset($groupLib['id']) || !($iblockId = intval($groupLib['id']))) { return false; } $result = CIBlockWebdavSocnet::GetSectionID($iblockId, 'group', $groupId); if (intval($result) > 0) { return $result; } $dbRes = CUserTypeEntity::GetList(array($by => $order), array("ENTITY_ID" => "IBLOCK_" . $iblockId . "_SECTION", "FIELD_NAME" => "UF_USE_BP")); if (!$dbRes || !($res = $dbRes->GetNext())) { $arFields = array("ENTITY_ID" => "IBLOCK_" . $iblockId . "_SECTION", "FIELD_NAME" => "UF_USE_BP", "USER_TYPE_ID" => "string", "MULTIPLE" => "N", "MANDATORY" => "N", "SETTINGS" => array("DEFAULT_VALUE" => "Y")); $arFieldName = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $dir = str_replace(array("\\", "//"), "/", dirname(__FILE__)); $dirs = explode("/", $dir); array_pop($dirs); $file = trim(implode("/", $dirs) . "/lang/" . $arLanguage["LID"] . "/include/webdav_settings.php"); $tmp_mess = __IncludeLang($file, true); $arFieldName[$arLanguage["LID"]] = empty($tmp_mess["SONET_UF_USE_BP"]) ? "Use Business Process" : $tmp_mess["SONET_UF_USE_BP"]; } $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } $arFields = array("IBLOCK_ID" => $iblockId, "ACTIVE" => "Y", "SOCNET_GROUP_ID" => false, "IBLOCK_SECTION_ID" => 0, "UF_USE_BP" => "N"); $arFields["SOCNET_GROUP_ID"] = $groupId; $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $groupId; $dbGroup = CSocNetGroup::GetList(array(), array("ID" => (int) $groupId), false, false, array("ID", "SITE_ID", "NAME")); if ($arGroup = $dbGroup->Fetch()) { $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $arGroup["NAME"]; } if (CIBlock::GetarrayByID($iblockId, "RIGHTS_MODE") === "E") { $arTasks = CWebDavIblock::GetTasks(); $arFields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_A', 'TASK_ID' => $arTasks['X']), 'n1' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_E', 'TASK_ID' => $arTasks['W']), 'n2' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_K', 'TASK_ID' => $arTasks['W'])); } $GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $iblockId . "_SECTION", $arFields); $bs = new CIBlockSection(); $sectionId = $bs->Add($arFields); if (!$sectionId) { return false; } return $sectionId; }
function UnInstallUserFields() { $arFields = array("ENTITY_ID" => "FORUM_MESSAGE"); $rsData = CUserTypeEntity::GetList(array("ID" => "ASC"), $arFields); if ($rsData && ($arRes = $rsData->Fetch())) { $ent = new CUserTypeEntity(); do { $ent->Delete($arRes['ID']); } while ($arRes = $rsData->Fetch()); } return; }
public function GetStatusList($XML_ID = false) { if (is_array($this->CacheStorage["STATUS_LIST"]) && array_key_exists(intval($XML_ID), $this->CacheStorage["STATUS_LIST"])) { return $this->CacheStorage["STATUS_LIST"][intval($XML_ID)]; } $obCache = new CPHPCache(); $life_time = 60 * 60 * 24 * 30; //over 1 month $cache_id = 'idea_status_list'; //no need to keep unique all time, just caching for 1 day if no changes $cache_path = '/' . SITE_ID . '/idea/status_list/'; $arStatus = array(); if ($obCache->StartDataCache($life_time, $cache_id, $cache_path)) { $arStatusField = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => CIdeaManagment::UFStatusField))->Fetch(); if ($arStatusField) { $oStatus = CUserFieldEnum::GetList(array(), array("USER_FIELD_ID" => $arStatusField["ID"])); while ($r = $oStatus->Fetch()) { $arStatus[$r["ID"]] = $r; } $obCache->EndDataCache($arStatus); } else { $obCache->AbortDataCache(); } } else { $arStatus = $obCache->GetVars(); } if ($XML_ID) { $arStatusXML = array(); foreach ($arStatus as $Status) { $arStatusXML[$Status["XML_ID"]] = $Status; } $arStatus = $arStatusXML; } return $this->CacheStorage["STATUS_LIST"][intval($XML_ID)] = $arStatus; }
case "delete": @set_time_limit(0); $DB->StartTransaction(); if(!$obUserField->Delete($ID)) { $DB->Rollback(); $lAdmin->AddGroupError(GetMessage("USERTYPE_DEL_ERROR"), $ID); } $DB->Commit(); break; } } } $rsData = CUserTypeEntity::GetList(array($by=>$order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("USERTYPE_NAV"))); $lAdmin->AddHeaders(array( array( "id" => "ID", "content" => "ID", "sort" => "ID", "align" => "right", "default" => true, ), array( "id" => "ENTITY_ID", "content" => GetMessage("USERTYPE_ENTITY_ID"),
$arLanguages = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } $arUserFields = array("UF_BROWSER_TITLE", "UF_KEYWORDS", "UF_META_DESCRIPTION"); foreach ($arUserFields as $userField) { $arLabelNames = array(); foreach ($arLanguages as $languageID) { WizardServices::IncludeServiceLang("property_names.php", $languageID); $arLabelNames[$languageID] = GetMessage($userField); } $arProperty["EDIT_FORM_LABEL"] = $arLabelNames; $arProperty["LIST_COLUMN_LABEL"] = $arLabelNames; $arProperty["LIST_FILTER_LABEL"] = $arLabelNames; $dbRes = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => 'IBLOCK_' . $IBLOCK_CATALOG_ID . '_SECTION', "FIELD_NAME" => $userField)); if ($arRes = $dbRes->Fetch()) { $userType = new CUserTypeEntity(); $userType->Update($arRes["ID"], $arProperty); } //if($ex = $APPLICATION->GetException()) //$strError = $ex->GetString(); } //demo discount $dbDiscount = CCatalogDiscount::GetList(array(), array("SITE_ID" => WIZARD_SITE_ID)); if (!$dbDiscount->Fetch()) { if (CModule::IncludeModule("iblock")) { $dbSect = CIBlockSection::GetList(array(), array("IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => $IBLOCK_CATALOG_ID, "CODE" => "underwear", "IBLOCK_SITE_ID" => WIZARD_SITE_ID)); if ($arSect = $dbSect->Fetch()) { $sofasSectId = $arSect["ID"]; }
function GetUserFieldValue($entity_id, $field_id, $value_id, $LANG=false) { global $DB; $entity_id = preg_replace("/[^0-9A-Z_]+/", "", $entity_id); $field_id = preg_replace("/[^0-9A-Z_]+/", "", $field_id); $value_id = intval($value_id); $strTableName = "b_uts_".strtolower($entity_id); $result = false; $arFilter = array( "ENTITY_ID" => $entity_id, "FIELD_NAME" => $field_id, ); if($LANG) $arFilter["LANG"]=$LANG; $rs = CUserTypeEntity::GetList(array(), $arFilter); if($arUserField = $rs->Fetch()) { $arUserField["USER_TYPE"] = $this->GetUserType($arUserField["USER_TYPE_ID"]); $arTableFields = $DB->GetTableFields($strTableName); if(array_key_exists($field_id, $arTableFields)) { if($arUserField["USER_TYPE"]["BASE_TYPE"] == "datetime" && $arUserField["MULTIPLE"] == "N") $select = $this->DateTimeToChar($field_id); else $select = $field_id; $rs = $DB->Query("SELECT ".$select." VALUE FROM ".$strTableName." WHERE VALUE_ID = ".$value_id, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__); if($ar = $rs->Fetch()) { if($arUserField["MULTIPLE"]=="Y") $result = $this->OnAfterFetch($arUserField, unserialize($ar["VALUE"])); else $result = $this->OnAfterFetch($arUserField, $ar["VALUE"]); } } } return $result; }
function __CreateUserProperty() { if ($this->attachIBlockID < 1) { return false; } $success = true; $dbRes = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "USER", "FIELD_NAME" => $this->userPropertyName)); if (!$dbRes->Fetch()) { $arLabelNames = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/classes/general/csv_user_import_labels.php", $arLanguage["LID"]); $arLabelNames[$arLanguage["LID"]] = GetMessage("DEPARTMENT_USER_PROPERTY_NAME"); } $arFields = array('ENTITY_ID' => 'USER', 'FIELD_NAME' => $this->userPropertyName, 'USER_TYPE_ID' => 'iblock_section', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'Y', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'I', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y', 'SETTINGS' => array('DISPLAY' => 'LIST', 'LIST_HEIGHT' => '8', 'IBLOCK_ID' => $this->attachIBlockID), "EDIT_FORM_LABEL" => $arLabelNames, "LIST_COLUMN_LABEL" => $arLabelNames, "LIST_FILTER_LABEL" => $arLabelNames); $userType = new CUserTypeEntity(); $success = (bool) $userType->Add($arFields); } return $success; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } $arProperties = array('UF_PHONE_INNER' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_PHONE_INNER', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 2, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'S', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_1C' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_1C', 'USER_TYPE_ID' => 'boolean', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'I', 'SHOW_IN_LIST' => 'N', 'EDIT_IN_LIST' => 'N', 'IS_SEARCHABLE' => 'Y', 'SETTINGS' => array('DISPLAY' => 'CHECKBOX')), 'UF_INN' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_INN', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'I', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_DISTRICT' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_DISTRICT', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_SKYPE' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_SKYPE', 'USER_TYPE_ID' => 'string_formatted', 'XML_ID' => 'UF_SKYPE', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y', 'SETTINGS' => array('PATTERN' => '<a href="callto:#VALUE#">#VALUE#</a>')), 'UF_TWITTER' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_TWITTER', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_FACEBOOK' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_FACEBOOK', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_LINKEDIN' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_LINKEDIN', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_XING' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_XING', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_WEB_SITES' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_WEB_SITES', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_SKILLS' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_SKILLS', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), 'UF_INTERESTS' => array('ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_INTERESTS', 'USER_TYPE_ID' => 'string', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'Y', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y')); $arLanguages = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } foreach ($arProperties as $arProperty) { $dbRes = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => $arProperty["ENTITY_ID"], "FIELD_NAME" => $arProperty["FIELD_NAME"])); if ($dbRes->Fetch()) { continue; } $arLabelNames = array(); foreach ($arLanguages as $languageID) { WizardServices::IncludeServiceLang("property_names.php", $languageID); $arLabelNames[$languageID] = GetMessage($arProperty["FIELD_NAME"]); } $arProperty["EDIT_FORM_LABEL"] = $arLabelNames; $arProperty["LIST_COLUMN_LABEL"] = $arLabelNames; $arProperty["LIST_FILTER_LABEL"] = $arLabelNames; $userType = new CUserTypeEntity(); $success = (bool) $userType->Add($arProperty); //if($ex = $APPLICATION->GetException()) //$strError = $ex->GetString(); }
/** * Delete * @param $entityName * @return bool * @throws \Exception */ public static function Delete($entityName) { $userType = new \CUserTypeEntity(); if (!strlen($entityName)) { throw new BimException('Incorrect entityName param value'); } $filter = array('NAME' => $entityName); $hlBlockDbRes = HL\HighloadBlockTable::getList(array("filter" => $filter)); if (!$hlBlockDbRes->getSelectedRowsCount()) { throw new BimException('Not found highloadBlock with entityName = ' . $entityName); } $hlBlockRow = $hlBlockDbRes->fetch(); $entity = HL\HighloadBlockTable::compileEntity($hlBlockRow); $entityDataClass = $entity->getDataClass(); $obList = $entityDataClass::getList(); if ($obList->getSelectedRowsCount() > 0) { throw new BimException('Unable to remove a highloadBlock[' . $entityName . '], because it has elements'); } # delete all Fields $obHl = $userType->GetList(array(), array("ENTITY_ID" => "HLBLOCK_" . $hlBlockRow['ID'])); while ($arHl = $obHl->Fetch()) { $obUF = new \CUserTypeEntity(); $obUF->Delete($arHl['ID']); } $delResult = HL\HighloadBlockTable::delete($hlBlockRow['ID']); if (!$delResult->isSuccess()) { throw new BimException(implode(", ", $delResult->getErrorMessages())); } return true; }
public function down() { global $APPLICATION; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\ProgExternalTable::getTableName())))->fetch(); if ($arHlblock) { $oUserTypeEntity = new \CUserTypeEntity(); $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => "UF_DATETIME")); if ($aUserHasField = $resProperty->Fetch()) { $oUserTypeEntity->Delete($aUserHasField['ID']); $this->outSuccess("Свойство 'Дата добавления' удалено!"); } } }