Ejemplo n.º 1
0
 function __IRM_InitReservation($iblockId)
 {
     $arResult = array();
     $arResult["ALLOWED_FIELDS"] = array("ID" => array("NAME" => GetMessage("INAF_F_ID"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "int", "IS_FIELD" => true), "NAME" => array("NAME" => GetMessage("INAF_F_NAME"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "string", "IS_FIELD" => true), "DESCRIPTION" => array("NAME" => GetMessage("INAF_F_DESCRIPTION"), "ORDERABLE" => false, "FILTERABLE" => false, "TYPE" => "text", "IS_FIELD" => true), "UF_FLOOR" => array("NAME" => GetMessage("INAF_F_FLOOR"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "integer", "IS_FIELD" => false), "UF_PLACE" => array("NAME" => GetMessage("INAF_F_PLACE"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "integer", "IS_FIELD" => false), "UF_PHONE" => array("NAME" => GetMessage("INAF_F_PHONE"), "ORDERABLE" => false, "FILTERABLE" => false, "TYPE" => "string", "IS_FIELD" => false));
     $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_" . $iblockId . "_SECTION", 0, LANGUAGE_ID);
     $arKeys = Array_Keys($arResult["ALLOWED_FIELDS"]);
     foreach ($arKeys as $key) {
         if (!$arResult["ALLOWED_FIELDS"][$key]["IS_FIELD"]) {
             if (!Array_Key_Exists($key, $arUserFields)) {
                 $arFields = array("ENTITY_ID" => "IBLOCK_" . $iblockId . "_SECTION", "FIELD_NAME" => $key, "USER_TYPE_ID" => $arResult["ALLOWED_FIELDS"][$key]["TYPE"]);
                 $obUserField = new CUserTypeEntity();
                 $obUserField->Add($arFields);
             }
         }
     }
     $arResult["ALLOWED_ITEM_PROPERTIES"] = array("UF_PERSONS" => array("NAME" => GetMessage("INTASK_C29_UF_PERSONS"), "ACTIVE" => "Y", "SORT" => 300, "CODE" => "UF_PERSONS", "PROPERTY_TYPE" => "N", "USER_TYPE" => false, "ROW_COUNT" => 1, "COL_COUNT" => 5, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "Y", "SEARCHABLE" => "Y", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId), "UF_RES_TYPE" => array("NAME" => GetMessage("INTASK_C29_UF_RES_TYPE"), "ACTIVE" => "Y", "SORT" => 200, "CODE" => "UF_RES_TYPE", "PROPERTY_TYPE" => "L", "USER_TYPE" => false, "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "Y", "SEARCHABLE" => "Y", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "Y", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId, "VALUES" => array(array("VALUE" => GetMessage("INTASK_C29_UF_RES_TYPEA"), "DEF" => "Y", "SORT" => 100, "XML_ID" => "A"), array("VALUE" => GetMessage("INTASK_C29_UF_RES_TYPEB"), "DEF" => "N", "SORT" => 200, "XML_ID" => "B"), array("VALUE" => GetMessage("INTASK_C29_UF_RES_TYPEC"), "DEF" => "N", "SORT" => 200, "XML_ID" => "C"), array("VALUE" => GetMessage("INTASK_C29_UF_RES_TYPED"), "DEF" => "N", "SORT" => 300, "XML_ID" => "D"))), "UF_PREPARE_ROOM" => array("NAME" => GetMessage("INTASK_C29_UF_PREPARE_ROOM"), "ACTIVE" => "Y", "SORT" => 500, "CODE" => "UF_PREPARE_ROOM", "PROPERTY_TYPE" => "S", "USER_TYPE" => false, "DEFAULT_VALUE" => "Y", "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "N", "SEARCHABLE" => "N", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId), "PERIOD_TYPE" => array("NAME" => GetMessage("INTASK_C29_PERIOD_TYPE"), "ACTIVE" => "Y", "SORT" => 500, "CODE" => "PERIOD_TYPE", "PROPERTY_TYPE" => "S", "USER_TYPE" => false, "DEFAULT_VALUE" => "NONE", "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "N", "SEARCHABLE" => "N", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId), "PERIOD_COUNT" => array("NAME" => GetMessage("INTASK_C29_PERIOD_COUNT"), "ACTIVE" => "Y", "SORT" => 500, "CODE" => "PERIOD_COUNT", "PROPERTY_TYPE" => "N", "USER_TYPE" => false, "DEFAULT_VALUE" => "", "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "N", "SEARCHABLE" => "N", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId), "EVENT_LENGTH" => array("NAME" => GetMessage("INTASK_C29_EVENT_LENGTH"), "ACTIVE" => "Y", "SORT" => 500, "CODE" => "EVENT_LENGTH", "PROPERTY_TYPE" => "N", "USER_TYPE" => false, "DEFAULT_VALUE" => "", "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "N", "SEARCHABLE" => "N", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId), "PERIOD_ADDITIONAL" => array("NAME" => GetMessage("INTASK_C29_PERIOD_ADDITIONAL"), "ACTIVE" => "Y", "SORT" => 500, "CODE" => "PERIOD_ADDITIONAL", "PROPERTY_TYPE" => "S", "USER_TYPE" => false, "DEFAULT_VALUE" => "", "ROW_COUNT" => 1, "COL_COUNT" => 30, "LINK_IBLOCK_ID" => 0, "WITH_DESCRIPTION" => "N", "FILTRABLE" => "N", "SEARCHABLE" => "N", "MULTIPLE" => "N", "MULTIPLE_CNT" => 5, "IS_REQUIRED" => "N", "FILE_TYPE" => "jpg, gif, bmp, png, jpeg", "LIST_TYPE" => "L", "IBLOCK_ID" => $iblockId));
     $dbIBlockProps = CIBlock::GetProperties($iblockId);
     while ($arIBlockProps = $dbIBlockProps->Fetch()) {
         if (Array_Key_Exists($arIBlockProps["CODE"], $arResult["ALLOWED_ITEM_PROPERTIES"])) {
             $arResult["ALLOWED_ITEM_PROPERTIES"][$arIBlockProps["CODE"]]["ID"] = $arIBlockProps["ID"];
         }
     }
     $keys = Array_Keys($arResult["ALLOWED_ITEM_PROPERTIES"]);
     foreach ($keys as $key) {
         if (IntVal($arResult["ALLOWED_ITEM_PROPERTIES"][$key]["ID"]) <= 0) {
             $ibp = new CIBlockProperty();
             $arResult["ALLOWED_ITEM_PROPERTIES"][$key]["ID"] = $ibp->Add($arResult["ALLOWED_ITEM_PROPERTIES"][$key]);
         }
     }
     return $arResult;
 }
Ejemplo n.º 2
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();
		}
	}
Ejemplo n.º 3
0
 function InstallDBUserFields()
 {
     $ImportantUserFields = $this->GetIdeaUserFields();
     foreach ($ImportantUserFields as $UserFieldName => $Exists) {
         if (!$Exists) {
             $UserType = new CUserTypeEntity();
             switch ($UserFieldName) {
                 case "UF_CATEGORY_CODE":
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "string", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => array(LANGUAGE_ID => GetMessage("IDEA_UF_CATEGORY_CODE_DESCRIPTION"))));
                     break;
                 case "UF_ANSWER_ID":
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "integer", "IS_SEARCHABLE" => "N", "MULTIPLE" => "Y", "EDIT_FORM_LABEL" => array(LANGUAGE_ID => GetMessage("IDEA_UF_ANSWER_ID_DESCRIPTION"))));
                     break;
                 case "UF_ORIGINAL_ID":
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "string", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => array(LANGUAGE_ID => GetMessage("IDEA_UF_ORIGINAL_ID_DESCRIPTION"))));
                     break;
                 case "UF_STATUS":
                     $ID = $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "enumeration", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => array(LANGUAGE_ID => GetMessage("IDEA_UF_STATUS_DESCRIPTION"))));
                     if (intval($ID) > 0) {
                         $UserTypeEnum = new CUserFieldEnum();
                         $UserTypeEnum->SetEnumValues($ID, array("n0" => array("SORT" => 100, "XML_ID" => "NEW", "VALUE" => GetMessage("IDEA_UF_STATUS_NEW_TITLE"), "DEF" => "Y"), "n1" => array("SORT" => 200, "XML_ID" => "PROCESSING", "VALUE" => GetMessage("IDEA_UF_STATUS_PROCESSING_TITLE"), "DEF" => "N"), "n2" => array("SORT" => 300, "XML_ID" => "COMPLETED", "VALUE" => GetMessage("IDEA_UF_STATUS_COMPLETED_TITLE"), "DEF" => "N")));
                     }
                     break;
             }
         }
     }
 }
Ejemplo n.º 4
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);
 }
Ejemplo n.º 5
0
 public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false)
 {
     $ENTITY_ID = 'TASKS_TASK';
     $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID);
     if ($arElement == false || !isset($arElement['UF_CRM_TASK'])) {
         $arFields = array();
         $arFields['ENTITY_ID'] = $ENTITY_ID;
         $arFields['FIELD_NAME'] = 'UF_CRM_TASK';
         $arFields['USER_TYPE_ID'] = 'crm';
         $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['SETTINGS']['LEAD'] = 'Y';
         $arFields['SETTINGS']['CONTACT'] = 'Y';
         $arFields['SETTINGS']['COMPANY'] = 'Y';
         $arFields['SETTINGS']['DEAL'] = 'Y';
         $arFields['MULTIPLE'] = 'Y';
         $CAllUserTypeEntity = new CUserTypeEntity();
         $CAllUserTypeEntity->Add($arFields);
     }
     if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) {
         $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
         $arFilter['UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID'];
         unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']);
     } else {
         if (isset($arFilter['ENTITY_TYPE'])) {
             if (!empty($arFilter['ENTITY_TYPE'])) {
                 $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
                 $arFilter['%UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_';
             } else {
                 $arFilter['!=UF_CRM_TASK'] = '';
             }
             unset($arFilter['ENTITY_TYPE']);
         } else {
             $arFilter['!=UF_CRM_TASK'] = '';
         }
     }
     if (isset($arFilter['TITLE'])) {
         $arFilter['%TITLE'] = $arFilter['TITLE'];
         unset($arFilter['TITLE']);
     }
     if (isset($arFilter['REAL_STATUS'])) {
         $arFilter['STATUS'] = $arFilter['REAL_STATUS'];
         unset($arFilter['REAL_STATUS']);
     }
     if (isset($arOrder['ID']) || isset($arOrder['id'])) {
         $arSelect[] = 'ID';
     }
     if (in_array('RESPONSIBLE_ID', $arSelect)) {
         $arSelect[] = 'RESPONSIBLE_NAME';
         $arSelect[] = 'RESPONSIBLE_LAST_NAME';
         $arSelect[] = 'RESPONSIBLE_SECOND_NAME';
         $arSelect[] = 'RESPONSIBLE_LOGIN';
     }
     $obRes = CTasks::GetList($arOrder, $arFilter, $arSelect, $nPageTop);
     return $obRes;
 }
 public function deleteUserTypeEntityIfExists($entityId, $fieldName)
 {
     $aItem = $this->getUserTypeEntity($entityId, $fieldName);
     if (!$aItem) {
         return false;
     }
     $entity = new \CUserTypeEntity();
     if ($entity->Delete($aItem['ID'])) {
         return true;
     }
     $this->throwException(__METHOD__, 'UserType not deleted');
 }
Ejemplo n.º 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']));
     }
 }
Ejemplo n.º 8
0
 /**
  * @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;
 }
Ejemplo n.º 9
0
 public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false)
 {
     // Fix for #27449
     if (!CModule::IncludeModule('calendar')) {
         $obRes = new CDBResult();
         $obRes->InitFromArray(array());
         return $obRes;
     }
     global $USER;
     $ENTITY_ID = 'CALENDAR_EVENT';
     $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID);
     if ($arElement == false || !isset($arElement['UF_CRM_CAL_EVENT'])) {
         $arFields = array();
         $arFields['ENTITY_ID'] = $ENTITY_ID;
         $arFields['FIELD_NAME'] = 'UF_CRM_CAL_EVENT';
         $arFields['USER_TYPE_ID'] = 'crm';
         $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['SETTINGS']['LEAD'] = 'Y';
         $arFields['SETTINGS']['CONTACT'] = 'Y';
         $arFields['SETTINGS']['COMPANY'] = 'Y';
         $arFields['SETTINGS']['DEAL'] = 'Y';
         $arFields['MULTIPLE'] = 'Y';
         $CAllUserTypeEntity = new CUserTypeEntity();
         $CAllUserTypeEntity->Add($arFields);
     }
     if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) {
         $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
         $arFilter['UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID'];
         unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']);
     } else {
         if (!empty($arFilter['ENTITY_TYPE'])) {
             $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
             $arFilter['%UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_';
             unset($arFilter['ENTITY_TYPE']);
         } else {
             $arFilter['!=UF_CRM_CAL_EVENT'] = '';
         }
     }
     $arFilter['CAL_TYPE'] = 'user';
     $arFilter['DELETED'] = 'N';
     if (isset($arFilter['OWNER_ID']) && is_array($arFilter['OWNER_ID'])) {
         $arFilter['OWNER_ID'] = current($arFilter['OWNER_ID']);
     }
     $arCal = CCalendarEvent::GetList(array('arFilter' => $arFilter, 'parseRecursion' => false, 'userId' => $USER->GetID(), 'fetchAttendees' => false, 'fetchMeetings' => true));
     $obRes = new CDBResult();
     $obRes->InitFromArray($arCal);
     return $obRes;
 }
Ejemplo n.º 10
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();
     }
 }
Ejemplo n.º 11
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;
 }
Ejemplo n.º 12
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("Свойство 'Дата окончания подписки' удалено!");
             }
         }
     }
 }
Ejemplo n.º 13
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("Свойство удалено!");
             }
         }
     }
 }
 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;
 }
Ejemplo n.º 15
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];
 }
Ejemplo n.º 16
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));
    }
}
Ejemplo n.º 17
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'));
 }
Ejemplo n.º 18
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");
         }
     }
 }
Ejemplo n.º 19
0
 /**
  * Абстрактный метод проверки передаваемых параметров
  *
  * checkParams
  * @param array $params
  * @return mixed|void
  * @throws \Exception
  */
 public function checkParams($params)
 {
     if (!isset($params['hlblockId']) || empty($params['hlblockId'])) {
         throw new BimException('В параметрах не найден hlblockId');
     }
     if (!isset($params['hlFieldId']) || empty($params['hlFieldId'])) {
         throw new BimException('В параметрах не найден hlFieldId');
     }
     $hlBlock = HL\HighloadBlockTable::getById($params['hlblockId'])->fetch();
     if (!$hlBlock) {
         throw new BimException('В системе не найден highload инфоблок с id = ' . $params['hlblockId']);
     }
     $this->ownerItemDbData['hlblockData'] = $hlBlock;
     if ($params['hlFieldId']) {
         $userFieldData = $this->userType->GetByID($params['hlFieldId']);
         if ($userFieldData === false || empty($userFieldData)) {
             throw new BimException('Не найдено пользовательское поле с id = ' . $params['hlFieldId']);
         }
         $this->ownerItemDbData['hlFieldData'] = $userFieldData;
     }
 }
 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);
 }
Ejemplo n.º 21
0
 function ImportPropertyDirectory($arProperty, $arEnumXmlNodes)
 {
     if (!CModule::IncludeModule('highloadblock')) {
         return true;
     }
     $rsProperty = CIBlockProperty::GetList(array(), array("ID" => $arProperty["ID"]));
     $arProperty = $rsProperty->Fetch();
     if (!$arProperty) {
         return true;
     }
     $tableName = 'b_' . strtolower($arProperty["CODE"]);
     if (strlen($arProperty["USER_TYPE_SETTINGS"]["TABLE_NAME"]) <= 0) {
         $hlblock = Bitrix\Highloadblock\HighloadBlockTable::getList(array("filter" => array("=TABLE_NAME" => $tableName)))->fetch();
         if (!$hlblock) {
             $highBlockName = trim($arProperty["CODE"]);
             $highBlockName = preg_replace("/([^A-Za-z0-9]+)/", "", $highBlockName);
             if ($highBlockName == "") {
                 return GetMessage("IBLOCK_XML2_HBLOCK_NAME_IS_INVALID");
             }
             $highBlockName = strtoupper(substr($highBlockName, 0, 1)) . substr($highBlockName, 1);
             $data = array('NAME' => $highBlockName, 'TABLE_NAME' => $tableName);
             $result = Bitrix\Highloadblock\HighloadBlockTable::add($data);
             $highBlockID = $result->getId();
             $arFieldsName = array('UF_NAME' => array("Y", "string"), 'UF_XML_ID' => array("Y", "string"), 'UF_LINK' => array("N", "string"), 'UF_DESCRIPTION' => array("N", "string"), 'UF_FULL_DESCRIPTION' => array("N", "string"), 'UF_SORT' => array("N", "integer"), 'UF_FILE' => array("N", "file"), 'UF_DEF' => array("N", "boolean"));
             $obUserField = new CUserTypeEntity();
             $sort = 100;
             foreach ($arFieldsName as $fieldName => $fieldValue) {
                 $arUserField = array("ENTITY_ID" => "HLBLOCK_" . $highBlockID, "FIELD_NAME" => $fieldName, "USER_TYPE_ID" => $fieldValue[1], "XML_ID" => "", "SORT" => $sort, "MULTIPLE" => "N", "MANDATORY" => $fieldValue[0], "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array());
                 $obUserField->Add($arUserField);
                 $sort += 100;
             }
         }
         $arProperty["USER_TYPE_SETTINGS"]["TABLE_NAME"] = $tableName;
         $obProperty = new CIBlockProperty();
         $obProperty->Update($arProperty["ID"], $arProperty);
     }
     $hlblock = Bitrix\Highloadblock\HighloadBlockTable::getList(array("filter" => array("=TABLE_NAME" => $arProperty["USER_TYPE_SETTINGS"]["TABLE_NAME"])))->fetch();
     $entity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
     $entity_data_class = $entity->getDataClass();
     $arEnumMap = array();
     $rsData = $entity_data_class::getList(array("select" => array("ID", "UF_NAME", "UF_XML_ID", "UF_SORT")));
     while ($arData = $rsData->fetch()) {
         $arEnumMap[$arData["UF_XML_ID"]] = $arData;
     }
     $i = 0;
     foreach ($arEnumXmlNodes as $arE) {
         if ($arE["NAME"] == $this->mess["IBLOCK_XML2_TYPE_LIST"]) {
             $arE = $this->_xml_file->GetAllChildrenArray($arE);
             if (isset($arE[$this->mess["IBLOCK_XML2_VALUE_ID"]]) && isset($arE[$this->mess["IBLOCK_XML2_VALUE"]])) {
                 $xml_id = $arE[$this->mess["IBLOCK_XML2_VALUE_ID"]];
                 $arFields = array("UF_XML_ID" => $xml_id, "UF_NAME" => $arE[$this->mess["IBLOCK_XML2_VALUE"]]);
                 if (isset($arE[$this->mess["IBLOCK_XML2_PICTURE"]])) {
                     $arFields["UF_FILE"] = $this->MakeFileArray($arE[$this->mess["IBLOCK_XML2_PICTURE"]]);
                 }
                 if (!array_key_exists($xml_id, $arEnumMap)) {
                     $entity_data_class::add($arFields);
                 } elseif ($arEnumMap[$xml_id]["UF_NAME"] !== $arFields['UF_NAME']) {
                     $entity_data_class::update($arEnumMap[$xml_id]["ID"], $arFields);
                 }
             }
         }
     }
     return true;
 }
Ejemplo n.º 22
0
			$DB->Rollback();
		}
		$DB->Commit();
	}
}

if($arID = $lAdmin->GroupAction())
{
	if($_REQUEST['action_target']=='selected')
	{
		$rsData = CUserTypeEntity::GetList(array($by=>$order), $arFilter);
		while($arRes = $rsData->Fetch())
			$arID[] = $arRes['ID'];
	}

	$obUserField = new CUserTypeEntity;
	foreach($arID as $ID)
	{
		if(strlen($ID)<=0)
			continue;
		$ID = IntVal($ID);
		//Rights check
		if($USER_FIELD_MANAGER->GetRights(false, $ID) < "W")
			continue;
		//Do action
		switch($_REQUEST['action'])
		{
		case "delete":
			@set_time_limit(0);
			$DB->StartTransaction();
			if(!$obUserField->Delete($ID))
Ejemplo n.º 23
0
 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"];
         }
     }
     $dbSite = CSite::GetByID(WIZARD_SITE_ID);
Ejemplo n.º 24
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();
}
Ejemplo n.º 25
0
 public static function InitUserEntity()
 {
     if (!CModule::IncludeModule("calendar")) {
         return;
     }
     //if (!defined("BX_NO_ACCELERATOR_RESET"))
     //	define("BX_NO_ACCELERATOR_RESET", true);
     $arRequiredFields = array("UF_BXDAVEX_CALSYNC" => array("USER_TYPE_ID" => "datetime", "SORT" => 100, "EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "Calendar sync date"));
     $arUserCustomFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER");
     foreach ($arUserCustomFields as $key => $value) {
         if (array_key_exists($key, $arRequiredFields)) {
             unset($arRequiredFields[$key]);
         }
     }
     foreach ($arRequiredFields as $requiredFieldKey => $requiredFieldValue) {
         $arFields = array("ENTITY_ID" => "USER", "FIELD_NAME" => $requiredFieldKey, "SHOW_IN_LIST" => "N", "IS_SEARCHABLE" => "N", "SHOW_FILTER" => "N", "EDIT_IN_LIST" => "N", "EDIT_FORM_LABEL" => CDavExchangeClient::InitUserEntityLoadMessages($requiredFieldKey, $requiredFieldValue["EDIT_FORM_LABEL_DEFAULT_MESSAGE"]));
         $obUserField = new CUserTypeEntity();
         $obUserField->Add(array_merge($arFields, $requiredFieldValue));
     }
 }
Ejemplo n.º 26
0
     $arDirValue['UF_XML_ID'] = randString(8);
 }
 if ($_POST["PROPERTY_USER_TYPE_SETTINGS"]["TABLE_NAME"] == '-1' && isset($result) && $result->isSuccess()) {
     $entityDataClass::add($arDirValue);
 } else {
     if (isset($arDirValue["ID"]) && $arDirValue["ID"] > 0) {
         $rsData = $entityDataClass::getList(array());
         while ($arData = $rsData->fetch()) {
             $arAddField = array();
             if (!isset($arData["UF_DESCRIPTION"])) {
                 $arAddField[] = 'UF_DESCRIPTION';
             }
             if (!isset($arData["UF_FULL_DESCRIPTION"])) {
                 $arAddField[] = 'UF_FULL_DESCRIPTION';
             }
             $obUserField = new CUserTypeEntity();
             foreach ($arAddField as $addField) {
                 $arUserField = array("ENTITY_ID" => "HLBLOCK_" . $hlblock["ID"], "FIELD_NAME" => $addField, "USER_TYPE_ID" => 'string', "XML_ID" => "", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array());
                 if (isset($_POST['PROPERTY_USER_TYPE_SETTINGS']['LANG'][$addField])) {
                     $arUserField["EDIT_FORM_LABEL"] = $arUserField["LIST_COLUMN_LABEL"] = $arUserField["LIST_FILTER_LABEL"] = array(LANGUAGE_ID => $_POST['PROPERTY_USER_TYPE_SETTINGS']['LANG'][$addField]);
                 }
                 $obUserField->Add($arUserField);
             }
             if ($arDirValue["ID"] == $arData["ID"]) {
                 unset($arDirValue["ID"]);
                 $dirValueKeys = array_keys($arDirValue);
                 foreach ($dirValueKeys as $oneKey) {
                     if (!isset($fieldsList[$oneKey])) {
                         unset($arDirValue[$oneKey]);
                     }
                 }
Ejemplo n.º 27
0
	function InstallUserFields($id = "all")
	{
		$errors = null;
		$ENTITY_ID = 'CALENDAR_EVENT';
		$FIELD_NAME = 'UF_WEBDAV_CAL_EVENT';
		$arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0);
		if (empty($arElement) || $arElement == array() ||$arElement == false || !isset($arElement[$FIELD_NAME]))
		{
			$arFields = array(
				"ENTITY_ID" => $ENTITY_ID,
				"FIELD_NAME" => $FIELD_NAME,
				"XML_ID" => $FIELD_NAME,
				"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"
			);

			$obUserField  = new CUserTypeEntity;
			$intID = $obUserField->Add($arFields, false);
			if (false == $intID)
			{
				if ($strEx = $GLOBALS['APPLICATION']->GetException())
				{
					$errors = $strEx->GetString();
				}
			}
		}
		return $errors;
	}
Ejemplo n.º 28
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;
 }
Ejemplo n.º 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;
 }
Ejemplo n.º 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("Свойство 'Дата добавления' удалено!");
         }
     }
 }