/** * @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"); } }
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'])); } }
public function up() { global $APPLICATION; $arHlData = $this->arHlData; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\RecordTable::getTableName())))->fetch(); if ($arHlblock) { $oUserTypeEntity = new \CUserTypeEntity(); $sort = 500; foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) { $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array()); if (isset($fieldValue[2]) && is_array($fieldValue[2])) { $aUserField = array_merge($aUserField, $fieldValue[2]); } $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME'])); if ($aUserHasField = $resProperty->Fetch()) { $idUserTypeProp = $aUserHasField['ID']; if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) { $this->out('Обновлено свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } else { if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) { $this->out('Добавлено новое свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } $sort += 100; } $arFilter = array(); $arSelect = array("ID"); $result = \Hawkart\Megatv\RecordTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arRecord = $result->fetch()) { \Hawkart\Megatv\RecordTable::update($arRecord["ID"], array('UF_DATETIME_ADD' => new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s'), 'Y-m-d H:i:s'))); } $oUserTypeEntity = new \CUserTypeEntity(); $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => "UF_SOTAL_ID")); if ($aUserHasField = $resProperty->Fetch()) { $oUserTypeEntity->Delete($aUserHasField['ID']); $this->outSuccess("Свойство удалено!"); } $this->outSuccess('Все готово на %d%%', 100); } }
public function up() { $arHlData = array('FIELDS' => array('UF_DATETIME' => array('N', 'datetime', array('EDIT_FORM_LABEL' => array('ru' => 'Дата добавления'), 'LIST_COLUMN_LABEL' => array('ru' => 'Дата добавления'))))); 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(); $sort = 500; foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) { $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array()); if (isset($fieldValue[2]) && is_array($fieldValue[2])) { $aUserField = array_merge($aUserField, $fieldValue[2]); } $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME'])); if ($aUserHasField = $resProperty->Fetch()) { $idUserTypeProp = $aUserHasField['ID']; if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) { $this->out('Обновлено свойство - ' . $aUserField['FIELD_NAME']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } else { if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) { $this->out('Добавлено новое свойство - ' . $aUserField['FIELD_NAME']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } $sort += 100; } //Import datetime to field from Json field $result = \Hawkart\Megatv\ProgExternalTable::getList(array('filter' => array(), 'select' => array("ID", "UF_JSON"))); while ($row = $result->fetch()) { $datetime = $row["UF_JSON"]["created_ts"]; if (!empty($datetime)) { $datetime = new \Bitrix\Main\Type\DateTime(date("Y-m-d H:i:s", strtotime($datetime)), 'Y-m-d H:i:s'); \Hawkart\Megatv\ProgExternalTable::update($row["ID"], array("UF_DATETIME" => $datetime)); } } $this->outSuccess('Все готово на %d%%', 100); } }
public function up() { 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) { $oUserTypeEntity = new \CUserTypeEntity(); $sort = 500; foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) { $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array()); if (isset($fieldValue[2]) && is_array($fieldValue[2])) { $aUserField = array_merge($aUserField, $fieldValue[2]); } $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME'])); if ($aUserHasField = $resProperty->Fetch()) { $idUserTypeProp = $aUserHasField['ID']; if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) { $this->out('Обновлено свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } else { if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) { $this->out('Добавлено новое свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } $sort += 100; } $dbUsers = \CUser::GetList($by = "EMAIL", $order = "desc", array("UF_SOTAL_LOGIN" => false)); while ($arUser = $dbUsers->Fetch()) { \CUserEx::generateDataSotal($arUser["ID"]); } $this->outSuccess('Все готово на %d%%', 100); } }
public function up() { $arHlData = array('FIELDS' => array('UF_DATETIME_TO' => array('N', 'datetime', array('EDIT_FORM_LABEL' => array('ru' => 'Дата окончания подписки'), 'LIST_COLUMN_LABEL' => array('ru' => 'Дата окончания подписки'))))); global $APPLICATION, $DB; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\SubscribeTable::getTableName())))->fetch(); if ($arHlblock) { $oUserTypeEntity = new \CUserTypeEntity(); $sort = 500; foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) { $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array()); if (isset($fieldValue[2]) && is_array($fieldValue[2])) { $aUserField = array_merge($aUserField, $fieldValue[2]); } $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME'])); if ($aUserHasField = $resProperty->Fetch()) { $idUserTypeProp = $aUserHasField['ID']; if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) { $this->out('Обновлено свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } else { if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) { $this->out('Добавлено новое свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } $sort += 100; } $strSql = "UPDATE " . \Hawkart\Megatv\SubscribeTable::getTableName() . " SET UF_DATETIME_TO=curdate() + INTERVAL 1 DAY + INTERVAL 3 HOUR + INTERVAL 30 MINUTE"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); $this->outSuccess('Все готово на %d%%', 100); } }
public function up() { $arHlData = array('FIELDS' => array('UF_DEFAULT' => array('N', 'boolean', array('EDIT_FORM_LABEL' => array('ru' => 'Город по умолчанию'), 'LIST_COLUMN_LABEL' => array('ru' => 'Город по умолчанию'))))); global $APPLICATION; \Bitrix\Main\Loader::includeModule("highloadblock"); $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\CityTable::getTableName())))->fetch(); if ($arHlblock) { $oUserTypeEntity = new \CUserTypeEntity(); $sort = 500; foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) { $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array()); if (isset($fieldValue[2]) && is_array($fieldValue[2])) { $aUserField = array_merge($aUserField, $fieldValue[2]); } $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME'])); if ($aUserHasField = $resProperty->Fetch()) { $idUserTypeProp = $aUserHasField['ID']; if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) { $this->out('Обновлено свойство - ' . $aUserField['FIELD_NAME']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } else { if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) { $this->out('Добавлено новое свойство - ' . $aUserField['FIELD_NAME']); } else { if ($ex = $APPLICATION->GetException()) { $this->outError('Ошибка - ' . $ex->GetString()); } } } $sort += 100; } $this->outSuccess('Все готово на %d%%', 100); } }
$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); if ($arSite = $dbSite->Fetch()) {
); if($lAdmin->EditAction()) { $obUserField = new CUserTypeEntity; foreach($FIELDS as $ID=>$arFields) { if(!$lAdmin->IsUpdated($ID)) continue; //Rights check if($USER_FIELD_MANAGER->GetRights(false, $ID) < "W") continue; //Update $DB->StartTransaction(); $ID = IntVal($ID); if(!$obUserField->Update($ID, $arFields)) { if($e = $APPLICATION->GetException()) $lAdmin->AddGroupError(GetMessage("USERTYPE_UPDATE_ERROR")." ".$e->GetString(), $ID); $DB->Rollback(); } $DB->Commit(); } } if($arID = $lAdmin->GroupAction()) { if($_REQUEST['action_target']=='selected') { $rsData = CUserTypeEntity::GetList(array($by=>$order), $arFilter); while($arRes = $rsData->Fetch())
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; }
$obEnum = new CUserFieldEnum(); $aTabs[] = array("DIV" => "edit2", "TAB" => GetMessage("USER_TYPE_TAB2"), "ICON" => "main_user_edit", "TITLE" => GetMessage("USER_TYPE_TAB2_TITLE")); } } } } $tabControl = new CAdminTabControl("tabControl", $aTabs); $ID = intval($ID); // Id of the edited record $message = null; $bVarsFromForm = false; if ($REQUEST_METHOD == "POST" && ($save != "" || $apply != "") && $RIGHTS >= "W" && check_bitrix_sessid()) { $arFields = array("ENTITY_ID" => $ENTITY_ID, "FIELD_NAME" => $FIELD_NAME, "USER_TYPE_ID" => $USER_TYPE_ID, "XML_ID" => $XML_ID, "SORT" => $SORT, "MULTIPLE" => $MULTIPLE, "MANDATORY" => $MANDATORY, "SHOW_FILTER" => $SHOW_FILTER, "SHOW_IN_LIST" => $SHOW_IN_LIST, "EDIT_IN_LIST" => $EDIT_IN_LIST, "IS_SEARCHABLE" => $IS_SEARCHABLE, "SETTINGS" => $SETTINGS, "EDIT_FORM_LABEL" => $EDIT_FORM_LABEL, "LIST_COLUMN_LABEL" => $LIST_COLUMN_LABEL, "LIST_FILTER_LABEL" => $LIST_FILTER_LABEL, "ERROR_MESSAGE" => $ERROR_MESSAGE, "HELP_MESSAGE" => $HELP_MESSAGE); $obUserField = new CUserTypeEntity(); if ($ID > 0) { $res = $obUserField->Update($ID, $arFields); } else { $ID = $obUserField->Add($arFields); $res = $ID > 0; } if (is_object($obEnum)) { if (is_array($LIST)) { foreach ($LIST as $id => $value) { if (is_array($value)) { $LIST[$id]["DEF"] = "N"; } } } if (is_array($LIST["DEF"])) { foreach ($LIST["DEF"] as $value) { if (is_array($LIST[$value])) {
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; }
function InstallUserFields($id = "all") { global $APPLICATION, $USER_FIELD_MANAGER; $errors = null; $id = (empty($id) ? "all" : (in_array($id, array("all", "webdav", "vote"/*, "blog"*/)) ? $id : false)); if (!!$id) { $USER_FIELD_MANAGER->CleanCache(); $USER_FIELD_MANAGER->arUserTypes = ''; $arFields = array(); if ($id != "webdav") { $arFields[] = array( "USER_TYPE_ID" => "file", "ENTITY_ID" => "SONET_LOG", "FIELD_NAME" => "UF_SONET_LOG_FILE", "XML_ID" => "UF_SONET_LOG_FILE", "MAX_ALLOWED_SIZE" => COption::GetOptionString("socialnetwork", "file_max_size", "5000000"), "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y", ); $arFields[] = array( "USER_TYPE_ID" => "file", "ENTITY_ID" => "SONET_COMMENT", "FIELD_NAME" => "UF_SONET_COM_FILE", "XML_ID" => "UF_SONET_COM_FILE", "MAX_ALLOWED_SIZE" => COption::GetOptionString("socialnetwork", "file_max_size", "5000000"), "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y", ); if (IsModuleInstalled("blog")) { $arImportantPostUF = array( "USER_TYPE_ID" => "integer", "ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => "UF_BLOG_POST_IMPRTNT", "XML_ID" => "UF_BLOG_POST_IMPRTNT", "EDIT_FORM_LABEL" => Array(), "LIST_COLUMN_LABEL" => Array(), "LIST_FILTER_LABEL" => Array()); $dbLangs = CLanguage::GetList(($b = ""), ($o = ""), array("ACTIVE" => "Y")); while ($arLang = $dbLangs->Fetch()) { $messages = IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/socialnetwork/install/index.php", $arLang["LID"], true); $arImportantPostUF["EDIT_FORM_LABEL"][$arLang["LID"]] = $messages["SONETP_EDIT_FORM_LABEL"]; $arImportantPostUF["LIST_COLUMN_LABEL"][$arLang["LID"]] = $messages["SONETP_LIST_COLUMN_LABEL"]; $arImportantPostUF["LIST_FILTER_LABEL"][$arLang["LID"]] = $messages["SONETP_LIST_FILTER_LABEL"]; } $arFields[] = $arImportantPostUF; } } if (IsModuleInstalled("webdav")) { $arFields[] = array( "USER_TYPE_ID" => "webdav_element", "ENTITY_ID" => "SONET_LOG", "FIELD_NAME" => "UF_SONET_LOG_DOC", "XML_ID" => "UF_SONET_LOG_DOC", "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y" ); $arFields[] = array( "USER_TYPE_ID" => "webdav_element", "ENTITY_ID" => "SONET_COMMENT", "FIELD_NAME" => "UF_SONET_COM_DOC", "XML_ID" => "UF_SONET_COM_DOC", "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y" ); } if (IsModuleInstalled("vote")) { AddEventHandler("main", "OnUserTypeBuildList", array("CUserTypeVote", "GetUserTypeDescription")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/classes/general/usertypevote.php"); $arFields[] = array( "USER_TYPE_ID" => "vote", "ENTITY_ID" => "BLOG_POST", "FIELD_NAME" => "UF_BLOG_POST_VOTE", "XML_ID" => "UF_BLOG_POST_VOTE", "SETTINGS" => array( "CHANNEL_ID" => "add", "CHANNEL_TITLE" => "UF_BLOG_POST_VOTE", "CHANNEL_SYMBOLIC_NAME" => "UF_BLOG_POST_VOTE", "CHANNEL_USE_CAPTCHA" => "N", "NOTIFY" => (IsModuleInstalled("im") ? "I" : "N"), "UNIQUE" => 13, "UNIQUE_IP_DELAY" => array( "DELAY" => "10", "DELAY_TYPE" => "D" ) ) ); } $obUserField = new CUserTypeEntity; foreach ($arFields as $arField) { $rsData = CUserTypeEntity::GetList(array("ID" => "ASC"), $arField); if (!($rsData && ($arRes = $rsData->Fetch()) && !!$arRes)) { $intID = $obUserField->Add($arField, false); if ( false == $intID && ($strEx = $APPLICATION->GetException()) ) { $errors = $strEx->GetString(); } else if ( $arField["FIELD_NAME"] == "UF_BLOG_POST_IMPRTNT" && $GLOBALS["DB"]->TableExists("b_uts_blog_post") && !$GLOBALS["DB"]->IndexExists("b_uts_blog_post", array("UF_BLOG_POST_IMPRTNT", "VALUE_ID")) ) { $GLOBALS["DB"]->Query("CREATE INDEX UX_UF_BLOG_POST_IMPRTNT ON b_uts_blog_post(UF_BLOG_POST_IMPRTNT, VALUE_ID)", true); } } else if ($arField["FIELD_NAME"] == "UF_BLOG_POST_VOTE") { $obUserField->Update($arRes["ID"], $arField); } } } return $errors; }
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; }
function GetPropertyByXML_ID($XML_ID, $arData = null) { if (!$this->arPropertiesCache[$XML_ID]) { $dbRes = CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'USER', 'XML_ID' => $XML_ID)); while ($arRes = $dbRes->Fetch()) { $this->arPropertiesCache[$arRes['XML_ID']] = $arRes['FIELD_NAME']; } } if (null != $arData) { if (!$this->arPropertiesCache[$XML_ID]) { $bAdd = true; $arFields = array('ENTITY_ID' => 'USER', 'FIELD_NAME' => $this->CalcPropertyFieldName($XML_ID), 'USER_TYPE_ID' => 'string', 'XML_ID' => $XML_ID, 'MULTIPLE' => 'N', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'I', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'Y', 'SETTINGS' => array('ROWS' => 1)); } else { $bAdd = false; $arFields = array(); } $arFields['EDIT_FORM_LABEL'] = $arFields['LIST_COLUMN_LABEL'] = $arFields['LIST_FILTER_LABEL'] = array('ru' => $arData['NAME']); $ob = new CUserTypeEntity(); if ($bAdd) { $this->arPropertiesCache[$XML_ID] = $ob->Add($arFields); } else { $ob->Update($this->arPropertiesCache[$XML_ID], $arFields); } } return $this->arPropertiesCache[$XML_ID]; }