コード例 #1
0
ファイル: helpers.php プロジェクト: dayAlone/MyQube
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));
    }
}
コード例 #2
0
ファイル: cml2.php プロジェクト: nycmic/bittest
 function ImportSectionPropertyEnum($FIELD_ID, $arEnumXmlNodes)
 {
     $arEnumMap = array();
     $arEnumValues = array();
     $obEnum = new CUserFieldEnum();
     $rsEnum = $obEnum->GetList(array(), array("USER_FIELD_ID" => $FIELD_ID));
     while ($arEnum = $rsEnum->Fetch()) {
         $arEnumValues[$arEnum["ID"]] = $arEnum;
         $arEnumMap[$arEnum["XML_ID"]] =& $arEnumValues[$arEnum["ID"]];
     }
     $i = 0;
     foreach ($arEnumXmlNodes as $arE) {
         if ($arE["NAME"] == $this->mess["IBLOCK_XML2_CHOICE"]) {
             $arE = $this->_xml_file->GetAllChildrenArray($arE);
             if (isset($arE[$this->mess["IBLOCK_XML2_ID"]])) {
                 $xml_id = $arE[$this->mess["IBLOCK_XML2_ID"]];
                 if (!array_key_exists($xml_id, $arEnumMap)) {
                     $arEnumValues["n" . $i] = array();
                     $arEnumMap[$xml_id] =& $arEnumValues["n" . $i];
                     $i++;
                 }
                 $arEnumMap[$xml_id]["CML2_EXPORT_FLAG"] = true;
                 $arEnumMap[$xml_id]["XML_ID"] = $xml_id;
                 if (isset($arE[$this->mess["IBLOCK_XML2_VALUE"]])) {
                     $arEnumMap[$xml_id]["VALUE"] = $arE[$this->mess["IBLOCK_XML2_VALUE"]];
                 }
                 if (isset($arE[$this->mess["IBLOCK_XML2_BY_DEFAULT"]])) {
                     $arEnumMap[$xml_id]["DEF"] = $arE[$this->mess["IBLOCK_XML2_BY_DEFAULT"]] == "true" || intval($arE[$this->mess["IBLOCK_XML2_BY_DEFAULT"]]) ? "Y" : "N";
                 }
                 if (isset($arE[$this->mess["IBLOCK_XML2_SORT"]])) {
                     $arEnumMap[$xml_id]["SORT"] = intval($arE[$this->mess["IBLOCK_XML2_SORT"]]);
                 }
             }
         }
     }
     $bUpdateOnly = array_key_exists("bUpdateOnly", $this->next_step) && $this->next_step["bUpdateOnly"];
     $sort = 100;
     foreach ($arEnumValues as $id => $arEnum) {
         if (!isset($arEnum["CML2_EXPORT_FLAG"])) {
             //Delete value only when full exchange happened
             if (!$bUpdateOnly) {
                 $arEnumValues[$id]["VALUE"] = "";
             }
         } elseif (isset($arEnum["SORT"])) {
             if ($arEnum["SORT"] > $sort) {
                 $sort = $arEnum["SORT"] + 100;
             }
         } else {
             $arEnumValues[$id]["SORT"] = $sort;
             $sort += 100;
         }
     }
     $obEnum = new CUserFieldEnum();
     $res = $obEnum->SetEnumValues($FIELD_ID, $arEnumValues);
     return true;
 }
コード例 #3
0
ファイル: crm_fields.php プロジェクト: DarneoStudio/bitrix
 public function UpdateField($ID, $arField)
 {
     $obUserField = new CUserTypeEntity();
     $res = $obUserField->Update($ID, $arField);
     if ($res) {
         UserFieldHistory::processModification(CCrmOwnerType::ResolveIDByUFEntityID($this->sUFEntityID), $ID);
     }
     if ($res && $arField['USER_TYPE_ID'] == 'enumeration' && is_array($arField['LIST'])) {
         $obEnum = new CUserFieldEnum();
         $res = $obEnum->SetEnumValues($ID, $arField['LIST']);
     }
     $this->arUFList = $this->GetUserFields($this->sUFEntityID, 0, LANGUAGE_ID);
     return $res;
 }
コード例 #4
0
ファイル: index.php プロジェクト: webgksupport/alpina
 function InstallUserFields()
 {
     $ImportantUserFields = $this->GetIdeaUserFields();
     $messages = array();
     $db_res = \Bitrix\Main\Localization\LanguageTable::getList(array('order' => array('SORT' => 'ASC')));
     while ($ar = $db_res->fetch()) {
         $messages[$ar["LID"]] = IncludeModuleLangFile(__FILE__, $ar["LID"], true);
     }
     foreach ($ImportantUserFields as $UserFieldName => $Exists) {
         if (!$Exists) {
             $EDIT_FORM_LABEL = array();
             foreach ($messages as $lid => $mess) {
                 $EDIT_FORM_LABEL[$lid] = $mess["IDEA_" . $UserFieldName . "_DESCRIPTION"];
             }
             $UserType = new CUserTypeEntity();
             switch ($UserFieldName) {
                 case "UF_CATEGORY_CODE":
                     GetMessage("IDEA_UF_CATEGORY_CODE_DESCRIPTION");
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "string", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => $EDIT_FORM_LABEL));
                     break;
                 case "UF_ANSWER_ID":
                     GetMessage("IDEA_UF_ANSWER_ID_DESCRIPTION");
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "integer", "IS_SEARCHABLE" => "N", "MULTIPLE" => "Y", "EDIT_FORM_LABEL" => $EDIT_FORM_LABEL));
                     break;
                 case "UF_ORIGINAL_ID":
                     GetMessage("IDEA_UF_ORIGINAL_ID_DESCRIPTION");
                     $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "string", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => $EDIT_FORM_LABEL));
                     break;
                 case "UF_STATUS":
                     GetMessage("IDEA_UF_STATUS_DESCRIPTION");
                     $ID = $UserType->Add(array("ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => $UserFieldName, "USER_TYPE_ID" => "enumeration", "IS_SEARCHABLE" => "N", "EDIT_FORM_LABEL" => $EDIT_FORM_LABEL));
                     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;
             }
         }
     }
 }
コード例 #5
0
 protected function migrateCustomUf($oldName, $newName)
 {
     global $DB;
     $arUserFieldQuery = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => $oldName));
     if (!$arUserFieldQuery) {
         return;
     }
     $blackList = array('UF_LINK_SECTION_ID' => true, 'UF_LINK_IBLOCK_ID' => true, 'UF_LINK_CAN_FORWARD' => true, 'UF_LINK_RSECTION_ID' => true, 'UF_USE_DOC_PREVIEW' => true, 'UF_USE_EXT_SERVICES' => true, 'UF_USE_BP' => true);
     $oldTableNameUf = "b_utm_" . strtolower($oldName);
     $oldTableNameSingleUf = "b_uts_" . strtolower($oldName);
     $newTableNameUf = "b_utm_" . strtolower($newName);
     $newTableNameSingleUf = "b_uts_" . strtolower($newName);
     $isFolder = strpos($newName, 'FILE') === false;
     $externalColumn = $isFolder ? 'WEBDAV_SECTION_ID' : 'WEBDAV_ELEMENT_ID';
     $columns = array();
     while ($arUserField = $arUserFieldQuery->fetch()) {
         if (isset($blackList[$arUserField['FIELD_NAME']])) {
             continue;
         }
         $enumValueInfos = array();
         $rs = $DB->Query("SELECT * FROM b_user_field_lang WHERE USER_FIELD_ID = " . intval($arUserField['ID']), false, "FILE: " . __FILE__ . "<br>LINE: " . __LINE__);
         while ($ar = $rs->Fetch()) {
             foreach (array("EDIT_FORM_LABEL", "LIST_COLUMN_LABEL", "LIST_FILTER_LABEL", "ERROR_MESSAGE", "HELP_MESSAGE") as $label) {
                 $arUserField[$label][$ar["LANGUAGE_ID"]] = $ar[$label];
             }
         }
         if ($arUserField['USER_TYPE_ID'] == 'enumeration') {
             $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arUserField['ID']));
             $key = 0;
             while ($valueData = $dbRes->Fetch()) {
                 $enumValueInfos['n' . $key] = array('VALUE' => $valueData['VALUE'], 'XML_ID' => $valueData['XML_ID'], 'DEF' => $valueData['DEF'], 'SORT' => $valueData['SORT']);
                 $key++;
             }
         }
         $arUserField['ENTITY_ID'] = $newName;
         $CAllUserTypeEntity = new CUserTypeEntity();
         unset($arUserField['ID']);
         $id = $CAllUserTypeEntity->add($arUserField);
         if ($id) {
             $id = (int) $id;
             $oldId = (int) $arUserField['ID'];
             $columns[] = $arUserField['FIELD_NAME'];
             if ($arUserField['MULTIPLE'] == 'Y') {
                 if ($isFolder) {
                     //id section == id folders
                     $this->connection->queryExecute("\n\t\t\t\t\t\tINSERT INTO {$newTableNameUf} (VALUE_ID, FIELD_ID, VALUE, VALUE_INT, VALUE_DOUBLE, VALUE_DATE)\n\t\t\t\t\t\t\tSELECT obj.ID, {$id}, VALUE, VALUE_INT, VALUE_DOUBLE, VALUE_DATE FROM {$oldTableNameUf}\n\t\t\t\t\t\t\tWHERE FIELD_ID = {$oldId}\n\t\t\t\t\t\t");
                 } else {
                     $this->connection->queryExecute("\n\t\t\t\t\t\tINSERT INTO {$newTableNameUf} (VALUE_ID, FIELD_ID, VALUE, VALUE_INT, VALUE_DOUBLE, VALUE_DATE)\n\t\t\t\t\t\t\tSELECT obj.ID, {$id}, VALUE, VALUE_INT, VALUE_DOUBLE, VALUE_DATE FROM {$oldTableNameUf}\n\t\t\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.{$externalColumn} = {$oldTableNameUf}.VALUE_ID\n\t\t\t\t\t\t\tWHERE FIELD_ID = {$oldId}\n\t\t\t\t\t\t");
                 }
             }
         }
         if ($id && $enumValueInfos) {
             $obEnum = new CUserFieldEnum();
             $res = $obEnum->SetEnumValues($id, $enumValueInfos);
         }
         if (!$id) {
             $this->log(array('Could not add userType', $arUserField));
         }
     }
     if ($columns) {
         if ($isFolder) {
             //id section == id folders
             $this->connection->queryExecute("\n\t\t\t\tINSERT INTO {$newTableNameSingleUf} (VALUE_ID, " . implode(',', $columns) . ")\n\t\t\t\t\tSELECT VALUE_ID, " . implode(',', $columns) . " FROM {$oldTableNameSingleUf}\n\t\t\t\t");
         } else {
             $this->connection->queryExecute("\n\t\t\t\tINSERT INTO {$newTableNameSingleUf} (VALUE_ID, " . implode(',', $columns) . ")\n\t\t\t\t\tSELECT obj.ID, " . implode(',', $columns) . " FROM {$oldTableNameSingleUf}\n\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.{$externalColumn} = {$oldTableNameSingleUf}.VALUE_ID\n\t\t\t\t");
         }
     }
 }
コード例 #6
0
ファイル: crm_fields.php プロジェクト: mrdeadmouse/u136006
 public function UpdateField($ID, $arField)
 {
     $obUserField = new CUserTypeEntity();
     $res = $obUserField->Update($ID, $arField);
     if ($res && $arField['USER_TYPE_ID'] == 'enumeration' && is_array($arField['LIST'])) {
         $obEnum = new CUserFieldEnum();
         $res = $obEnum->SetEnumValues($ID, $arField['LIST']);
     }
     $this->arUFList = $this->GetUserFields($this->sUFEntityID, 0, LANGUAGE_ID);
     return $res;
 }
コード例 #7
0
        $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);
        if ($arFields['FIELD_NAME'] == 'UF_TYPE') {
            $obEnum = new CUserFieldEnum();
            $obEnum->SetEnumValues($ID_USER_FIELD, array('n0' => array('VALUE' => GetMessage('UF_TYPE_sv'), 'USER_FIELD_ID' => $ID_USER_FIELD, 'DEF' => 'N', 'SORT' => 100, 'XML_ID' => 'sv'), 'n1' => array('VALUE' => GetMessage('UF_TYPE_tm'), 'USER_FIELD_ID' => $ID_USER_FIELD, 'DEF' => 'N', 'SORT' => 200, 'XML_ID' => 'tm')));
        }
    }
}
$dbHblock = HL\HighloadBlockTable::getList(array("filter" => array("TABLE_NAME" => "backgrounddet")));
$br = $dbHblock->Fetch();
if (!$br) {
    $data = array('NAME' => 'BackgroundDet', 'TABLE_NAME' => 'backgrounddet');
    $result = HL\HighloadBlockTable::add($data);
    $ID = $result->getId();
    $_SESSION["YOUSTORE_HBLOCK_DBACK_ID"] = $ID;
    $hldata = HL\HighloadBlockTable::getById($ID)->fetch();
    $hlentity = HL\HighloadBlockTable::compileEntity($hldata);
    //adding user fields
    $arUserFields = array(array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_NAME', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_NAME', 'SORT' => '100', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_FILE', 'USER_TYPE_ID' => 'file', 'XML_ID' => 'UF_DBACK_FILE', 'SORT' => '200', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_LINK', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_LINK', 'SORT' => '300', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_DESCRIPTION', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_DESCR', 'SORT' => '400', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_FULL_DESCRIPTION', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_FULL_DESCR', 'SORT' => '500', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_SORT', 'USER_TYPE_ID' => 'double', 'XML_ID' => 'UF_DBACK_SORT', 'SORT' => '600', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_EXTERNAL_CODE', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_EXTERNAL_CODE', 'SORT' => '700', 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N'), array('ENTITY_ID' => 'HLBLOCK_' . $ID, 'FIELD_NAME' => 'UF_XML_ID', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_DBACK_XML_ID', 'SORT' => '800', 'MULTIPLE' => 'N', 'MANDATORY' => 'Y', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N'));
    $arLanguages = array();
コード例 #8
0
 /**
  * Synchronize source type fields with destination type fields.
  * Matches are searched by comparing field labels.
  * If a source field is not found in the destination type, it will be created there.
  * @static
  * @param int $srcEntityTypeID Source Entity Type ID
  * @param int $dstEntityTypeID Destination Entity Type ID
  * @param string $languageID Language
  * @return void
  */
 public static function synchronize($srcEntityTypeID, $dstEntityTypeID, $languageID = '')
 {
     /** @var \CAllMain $APPLICATION */
     global $APPLICATION;
     $entity = new \CUserTypeEntity();
     $entityID = \CCrmOwnerType::ResolveUserFieldEntityID($dstEntityTypeID);
     $fields = self::getSynchronizationFields($srcEntityTypeID, $dstEntityTypeID, $languageID, true);
     foreach ($fields as $field) {
         $srcField = $entity->GetByID($field['ID']);
         if (!is_array($srcField)) {
             continue;
         }
         $typeID = $srcField['USER_TYPE_ID'];
         do {
             $fieldName = 'UF_CRM_' . strtoupper(uniqid());
             $dbResult = $entity->GetList(array(), array('ENTITY_ID' => $entityID, 'FIELD_NAME' => $fieldName));
         } while (is_array($dbResult->Fetch()));
         $dstField = array('FIELD_NAME' => $fieldName, 'ENTITY_ID' => $entityID, 'USER_TYPE_ID' => $typeID, 'SORT' => isset($srcField['SORT']) ? $srcField['SORT'] : 100, 'MULTIPLE' => isset($srcField['MULTIPLE']) ? $srcField['MULTIPLE'] : 'N', 'MANDATORY' => isset($srcField['MANDATORY']) ? $srcField['MANDATORY'] : 'N', 'SHOW_FILTER' => isset($srcField['SHOW_FILTER']) ? $srcField['SHOW_FILTER'] : 'N', 'SHOW_IN_LIST' => isset($srcField['SHOW_IN_LIST']) ? $srcField['SHOW_IN_LIST'] : 'N');
         if (isset($srcField['SETTINGS'])) {
             $dstField['SETTINGS'] = $srcField['SETTINGS'];
         }
         if (isset($srcField['EDIT_FORM_LABEL'])) {
             $dstField['EDIT_FORM_LABEL'] = $srcField['EDIT_FORM_LABEL'];
         }
         if (isset($srcField['LIST_COLUMN_LABEL'])) {
             $dstField['LIST_COLUMN_LABEL'] = $srcField['LIST_COLUMN_LABEL'];
         }
         if (isset($srcField['LIST_FILTER_LABEL'])) {
             $dstField['LIST_FILTER_LABEL'] = $srcField['LIST_FILTER_LABEL'];
         }
         $ID = $entity->Add($dstField);
         if ($ID === false) {
             throw new UserFieldSynchronizationException($dstField, $APPLICATION->GetException(), UserFieldSynchronizationException::CREATE_FAILED, __FILE__, __LINE__);
         }
         if ($typeID === 'enumeration') {
             if (is_callable(array($field['USER_TYPE']['CLASS_NAME'], 'GetList'))) {
                 $enumList = array();
                 $enumQty = 0;
                 $enumResult = call_user_func_array(array($field['USER_TYPE']['CLASS_NAME'], 'GetList'), array($field));
                 while ($enum = $enumResult->GetNext()) {
                     unset($enum['ID']);
                     $enumList["n{$enumQty}"] = $enum;
                     $enumQty++;
                 }
                 $enumEntity = new \CUserFieldEnum();
                 $enumEntity->SetEnumValues($ID, $enumList);
             }
         }
     }
     $historyItem = self::getHistoryItem($srcEntityTypeID, $dstEntityTypeID);
     if ($historyItem === null) {
         $historyItem = array();
     }
     $historyItem['sync'] = new DateTime();
     $historyItem['check'] = new DateTime();
     $historyItem['required'] = false;
     self::setHistoryItem($srcEntityTypeID, $dstEntityTypeID, $historyItem);
 }
コード例 #9
0
ファイル: index.php プロジェクト: k-kalashnikov/geekcon_new
 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;
             }
         }
     }
 }
コード例 #10
0
ファイル: Coded.php プロジェクト: marvin255/bxmigrate
 /**
  * @param string $entity
  * @param array $data
  * @var bool $deleteIfExists
  */
 protected function UFUpdate(array $data)
 {
     global $USER_FIELD_MANAGER;
     if (empty($data['FIELD_NAME'])) {
         throw new \Exception('You must set group FIELD_NAME');
     }
     if (empty($data['ENTITY_ID'])) {
         throw new \Exception('You must set group ENTITY_ID');
     }
     $fire = false;
     if ($id = $this->UFGetIdByCode($data['ENTITY_ID'], $data['FIELD_NAME'])) {
         $ib = new \CUserTypeEntity();
         $id = $ib->Update($id, $data);
         if ($id) {
             echo "Update {$data['FIELD_NAME']} user field\r\n";
             if (!empty($data['LIST']) && ($arType = $USER_FIELD_MANAGER->GetUserType($data['USER_TYPE_ID'])) && $arType['BASE_TYPE'] == 'enum') {
                 $obEnum = new \CUserFieldEnum();
                 $res = $obEnum->SetEnumValues($id, $data['LIST']);
                 echo "Update {$data['FIELD_NAME']} user field list\r\n";
             }
         }
     } else {
         throw new \Exception("Can't update {$data['FIELD_NAME']} user field");
     }
 }
コード例 #11
0
ファイル: fields.php プロジェクト: mrdeadmouse/u136006
 foreach ($arUserFields as $key => $arFields) {
     if (array_key_exists($key, $arExistFields)) {
         if ($arFields["USER_TYPE_ID"] == "enumeration") {
             $entities = $obUserType->GetList(array(), array("ENTITY_ID" => $entity, "FIELD_NAME" => $arFields["FIELD_NAME"]));
             $arEnumValuesUpdate = array();
             if ($arEntity = $entities->Fetch()) {
                 $dbEnumValues = $obEnum->GetList(array(), array("USER_FIELD_ID" => $arEntity["ID"]));
                 while ($arEnumValue = $dbEnumValues->Fetch()) {
                     unset($arFields["ENUM"][$arEnumValue["XML_ID"]]);
                 }
                 if (count($arFields["ENUM"]) > 0) {
                     foreach ($arFields["ENUM"] as $key => $name) {
                         $arEnumValuesUpdate['n' . $key] = array('VALUE' => $name, 'XML_ID' => $key, 'DEF' => $key == $arFields['ENUM_DEFAULT'] ? 'Y' : 'N');
                     }
                 }
                 $obEnum->SetEnumValues($arEntity["ID"], $arEnumValuesUpdate);
             }
         } else {
             continue;
         }
     }
     $arFields['ENTITY_ID'] = $entity;
     if ($enum = $arFields['ENUM']) {
         unset($arFields['ENUM']);
     }
     if ($FIELD_ID = $obUserType->Add($arFields)) {
         if (is_array($enum)) {
             $arEnumValues = array();
             foreach ($enum as $key => $name) {
                 $arEnumValues['n' . $key] = array('VALUE' => $name, 'XML_ID' => $key, 'DEF' => $key == $arFields['ENUM_DEFAULT'] ? 'Y' : 'N');
             }