Example #1
0
 /**
  * Генерация создания
  *
  * 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);
 }
Example #2
0
 /**
  * @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;
 }
Example #3
0
	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;
 }
Example #6
0
 /**
  * Возвращает список полей, которые подключены к пользователю
  * @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];
 }
Example #7
0
 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']));
     }
 }
Example #8
0
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;
 }
Example #10
0
 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'));
 }
Example #11
0
 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();
     }
 }
Example #12
0
 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("Свойство удалено!");
             }
         }
     }
 }
Example #13
0
 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("Свойство 'Дата окончания подписки' удалено!");
             }
         }
     }
 }
Example #14
0
 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);
 }
Example #16
0
 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();
             }
         }
Example #18
0
    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;
 }
Example #20
0
		'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);
Example #21
0
 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;
 }
Example #22
0
 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;
 }
Example #23
0
 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;
 }
Example #24
0
		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"),
Example #25
0
 $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"];
         }
Example #26
0
	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;
	}
Example #27
0
 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;
 }
Example #28
0
<?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();
}
Example #29
-1
 /**
  * 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;
 }
Example #30
-1
 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("Свойство 'Дата добавления' удалено!");
         }
     }
 }