本文整理汇总了PHP中CUserTypeEntity::add方法的典型用法代码示例。如果您正苦于以下问题:PHP CUserTypeEntity::add方法的具体用法?PHP CUserTypeEntity::add怎么用?PHP CUserTypeEntity::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CUserTypeEntity
的用法示例。
在下文中一共展示了CUserTypeEntity::add方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: installDiskUserFields
public static function installDiskUserFields()
{
global $APPLICATION;
$errors = null;
if(!IsModuleInstalled('disk'))
{
return;
}
$props = array(
array(
"ENTITY_ID" => "BLOG_POST",
"FIELD_NAME" => "UF_BLOG_POST_FILE",
"USER_TYPE_ID" => "disk_file"
),
array(
"ENTITY_ID" => "BLOG_COMMENT",
"FIELD_NAME" => "UF_BLOG_COMMENT_FILE",
"USER_TYPE_ID" => "disk_file"
),
array(
"ENTITY_ID" => "BLOG_COMMENT",
"FIELD_NAME" => "UF_BLOG_COMMENT_FH",
"USER_TYPE_ID" => "disk_version"
),
);
$uf = new CUserTypeEntity;
foreach ($props as $prop)
{
$rsData = CUserTypeEntity::getList(array("ID" => "ASC"), array("ENTITY_ID" => $prop["ENTITY_ID"], "FIELD_NAME" => $prop["FIELD_NAME"]));
if (!($rsData && ($arRes = $rsData->Fetch())))
{
$intID = $uf->add(array(
"ENTITY_ID" => $prop["ENTITY_ID"],
"FIELD_NAME" => $prop["FIELD_NAME"],
"XML_ID" => $prop["FIELD_NAME"],
"USER_TYPE_ID" => $prop["USER_TYPE_ID"],
"SORT" => 100,
"MULTIPLE" => ($prop["USER_TYPE_ID"] == "disk_version" ? "N" : "Y"),
"MANDATORY" => "N",
"SHOW_FILTER" => "N",
"SHOW_IN_LIST" => "N",
"EDIT_IN_LIST" => "Y",
"IS_SEARCHABLE" => "N"
), false);
if (false == $intID && ($strEx = $APPLICATION->getException()))
{
$errors[] = $strEx->getString();
}
}
}
return $errors;
}
示例2: InstallUserFields
function InstallUserFields($id = "all")
{
global $APPLICATION;
$errors = null;
$id = in_array($id, array("all", "webdav", "disk")) ? $id : false;
if (!!$id && IsModuleInstalled("webdav")) {
$arFields = array("ENTITY_ID" => "FORUM_MESSAGE", "FIELD_NAME" => "UF_FORUM_MESSAGE_DOC", "XML_ID" => "UF_FORUM_MESSAGE_DOC", "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");
$rsData = CUserTypeEntity::GetList(array("ID" => "ASC"), array("ENTITY_ID" => "FORUM_MESSAGE", "FIELD_NAME" => "UF_FORUM_MESSAGE_DOCUMENT"));
if (!($rsData && ($arRes = $rsData->Fetch()))) {
$obUserField = new CUserTypeEntity();
$intID = $obUserField->Add($arFields, false);
if (false == $intID) {
if ($strEx = $GLOBALS['APPLICATION']->GetException()) {
$errors = $strEx->GetString();
}
}
}
}
if (($id == 'all' || $id == 'disk') && IsModuleInstalled("disk")) {
$props = array(array("ENTITY_ID" => "FORUM_MESSAGE", "FIELD_NAME" => "UF_FORUM_MESSAGE_DOC", "USER_TYPE_ID" => "disk_file"), array("ENTITY_ID" => "FORUM_MESSAGE", "FIELD_NAME" => "UF_FORUM_MESSAGE_VER", "USER_TYPE_ID" => "disk_version"));
$uf = new CUserTypeEntity();
foreach ($props as $prop) {
$rsData = CUserTypeEntity::getList(array("ID" => "ASC"), array("ENTITY_ID" => $prop["ENTITY_ID"], "FIELD_NAME" => $prop["FIELD_NAME"]));
if (!($rsData && ($arRes = $rsData->Fetch()))) {
$intID = $uf->add(array("ENTITY_ID" => $prop["ENTITY_ID"], "FIELD_NAME" => $prop["FIELD_NAME"], "XML_ID" => $prop["FIELD_NAME"], "USER_TYPE_ID" => $prop["USER_TYPE_ID"], "SORT" => 100, "MULTIPLE" => $prop["USER_TYPE_ID"] == "disk_version" ? "N" : "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => $prop["USER_TYPE_ID"] == "disk_file" ? "Y" : "N"), false);
if (false == $intID && ($strEx = $APPLICATION->getException())) {
$errors = $strEx->getString();
}
}
}
}
return $errors;
}
示例3: InstallUserFields
function InstallUserFields($id = "all")
{
global $APPLICATION;
$errors = null;
if (($id == 'all' || $id == 'disk') && IsModuleInstalled('disk')) {
$uf = new CUserTypeEntity();
$rsData = CUserTypeEntity::getList(array("ID" => "ASC"), array("ENTITY_ID" => 'CALENDAR_EVENT', "FIELD_NAME" => 'UF_WEBDAV_CAL_EVENT'));
if (!($rsData && ($arRes = $rsData->Fetch()))) {
$intID = $uf->add(array("ENTITY_ID" => 'CALENDAR_EVENT', "FIELD_NAME" => 'UF_WEBDAV_CAL_EVENT', "XML_ID" => 'UF_WEBDAV_CAL_EVENT', "USER_TYPE_ID" => 'disk_file', "SORT" => 100, "MULTIPLE" => "Y", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "N", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "Y"), false);
if (false == $intID && ($strEx = $APPLICATION->getException())) {
$errors[] = $strEx->getString();
}
}
}
if (($id == 'all' || $id == 'webdav') && IsModuleInstalled('webdav')) {
$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 = $APPLICATION->GetException()) {
$errors[] = $strEx->GetString();
}
}
}
}
return $errors;
}
示例4: addDocumentField
public static function addDocumentField($documentType, $fields)
{
$storageId = self::getStorageIdByType($documentType);
if (!$storageId) {
throw new CBPArgumentNullException('documentType');
}
if (strpos($fields['type'], static::getPrefixForCustomType()) === 0) {
$fields['type'] = substr($fields['type'], 3);
}
$fieldsTmp = array('USER_TYPE_ID' => $fields['type'], 'FIELD_NAME' => 'UF_' . strtoupper($fields['code']), 'ENTITY_ID' => 'DISK_FILE_' . $storageId, 'SORT' => 150, 'MULTIPLE' => $fields['multiple'] == 'Y' ? 'Y' : 'N', 'MANDATORY' => $fields['required'] == 'Y' ? 'Y' : 'N', 'SHOW_FILTER' => 'E');
$fieldsTmp['EDIT_FORM_LABEL'][LANGUAGE_ID] = $fields['name'];
$fieldsTmp['LIST_COLUMN_LABEL'][LANGUAGE_ID] = $fields['name'];
$fieldsTmp['LIST_FILTER_LABEL'][LANGUAGE_ID] = $fields['name'];
switch ($fields['type']) {
case 'select':
case 'enumeration':
$fieldsTmp['USER_TYPE_ID'] = 'enumeration';
if (!is_array($fieldsTmp['LIST'])) {
$fieldsTmp['LIST'] = array();
}
$options = isset($fields['options']) && is_array($fields['options']) ? $fields['options'] : array();
if (!empty($options)) {
$i = 10;
foreach ($options as $k => $v) {
$fieldsTmp['LIST']['n' . $i] = array('XML_ID' => $k, 'VALUE' => $v, 'DEF' => 'N', 'SORT' => $i);
$i = $i + 10;
}
}
break;
case 'text':
$fieldsTmp['USER_TYPE_ID'] = 'string';
break;
}
$userField = new \CUserTypeEntity();
$id = $userField->add($fieldsTmp);
if ($id > 0) {
if ($fieldsTmp['USER_TYPE_ID'] == 'enumeration' && is_array($fieldsTmp['LIST'])) {
$enum = new \CUserFieldEnum();
$res = $enum->setEnumValues($id, $fieldsTmp['LIST']);
}
}
return $fieldsTmp['FIELD_NAME'];
}
示例5: migrateCustomElementProperties
protected function migrateCustomElementProperties($iblockId, $entityNewName)
{
$iblockId = (int) $iblockId;
$VERSION = \CIBlockElement::GetIBVersion($iblockId);
if ($VERSION == 2) {
$strTable = "b_iblock_element_prop_m" . $iblockId;
} else {
$strTable = "b_iblock_element_property";
}
$tableNameUf = "b_utm_" . strtolower($entityNewName);
$tableNameSingleUf = "b_uts_" . strtolower($entityNewName);
$sqlHelper = $this->connection->getSqlHelper();
$listElementAll = array();
$objectQuery = $this->connection->query("\n\t\t\tSELECT obj.ID, prop.VALUE, prop.IBLOCK_PROPERTY_ID\n\t\t\tFROM b_disk_object obj\n\t\t\tINNER JOIN {$strTable} prop ON obj.WEBDAV_ELEMENT_ID = prop.IBLOCK_ELEMENT_ID\n\t\t\tWHERE obj.WEBDAV_IBLOCK_ID = {$iblockId} AND obj.TYPE = 3\n\t\t");
while ($listObject = $objectQuery->fetch()) {
$listElementAll[$listObject['ID']][$listObject['IBLOCK_PROPERTY_ID']]['FIELD_VALUE'][] = $listObject['VALUE'];
}
$listElement = array();
foreach ($this->getIblockProperties($iblockId) as $prop) {
$propId = $prop['ID'];
$mappedUfType = $this->mapTypeElementPropertyToUfType($prop);
if (!$mappedUfType) {
$this->log(array('Unknown property of element', $prop));
continue;
}
$userTypeEntity = new \CUserTypeEntity();
$symbolicName = empty($prop['CODE']) ? $propId : strtoupper($prop['CODE']);
$xmlId = empty($prop['CODE']) ? $propId : $prop['CODE'];
$fieldName = substr('UF_' . $symbolicName, 0, 20);
if ($mappedUfType == 'iblock_section' || $mappedUfType == 'iblock_element') {
$settingsArray = array('IBLOCK_ID' => $prop['LINK_IBLOCK_ID'], 'DISPLAY' => 'LIST');
} else {
$settingsArray = array();
}
$id = $userTypeEntity->add(array('ENTITY_ID' => $entityNewName, 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $mappedUfType, 'XML_ID' => 'PROPERTY_' . $xmlId, 'MULTIPLE' => $prop['MULTIPLE'], 'MANDATORY' => $prop['IS_REQUIRED'], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => null, 'EDIT_IN_LIST' => null, 'IS_SEARCHABLE' => $prop['SEARCHABLE'], 'SETTINGS' => $settingsArray, 'EDIT_FORM_LABEL' => array('en' => $prop['NAME'], 'ru' => $prop['NAME'], 'de' => $prop['NAME'])));
if ($id) {
if ($mappedUfType == 'enumeration') {
$i = 0;
$enumValues = array();
$queryEnum = \CIBlockPropertyEnum::getlist(array("SORT" => "ASC", "VALUE" => "ASC"), array('PROPERTY_ID' => $propId));
while ($queryEnum && ($rowEnum = $queryEnum->fetch())) {
$enumValues['n' . $i] = array('SORT' => $rowEnum['SORT'], 'VALUE' => $rowEnum['VALUE'], 'XML_ID' => $rowEnum['XML_ID'], 'DEF' => $rowEnum['DEF']);
$i++;
}
$userTypeEnum = new \CUserFieldEnum();
$userTypeEnum->setEnumValues($id, $enumValues);
}
foreach ($listElementAll as $newId => $propArray) {
if (array_key_exists($propId, $propArray)) {
$listElement[$newId][$propId]['FIELD_VALUE'] = $listElementAll[$newId][$propId]['FIELD_VALUE'];
$listElement[$newId][$propId]['FIELD_NAME'] = $fieldName;
if ($prop['MULTIPLE'] == 'Y') {
$listElement[$newId][$propId]['FIELD_ID'] = $id;
$listElement[$newId][$propId]['PROPERTY_TYPE'] = $mappedUfType;
}
}
}
}
}
if (!empty($listElement)) {
foreach ($listElement as $newId => $propArray) {
$fieldArray = array();
$valueArray = array();
foreach ($propArray as $prop) {
$fieldArray[] = $prop['FIELD_NAME'];
if (count($prop['FIELD_VALUE']) > 1) {
$valueArray[] = "'" . $sqlHelper->forSql(serialize($prop['FIELD_VALUE'])) . "'";
foreach ($prop['FIELD_VALUE'] as $utmValue) {
if ($prop['PROPERTY_TYPE'] == 'integer') {
$utmValue = (int) $utmValue;
$this->connection->queryExecute("\n\t\t\t\t\t\t\t\t\tINSERT INTO {$tableNameUf} (VALUE_ID, FIELD_ID, VALUE_INT)\n\t\t\t\t\t\t\t\t\tVALUES ({$newId}, {$prop['FIELD_ID']}, {$utmValue})\n\t\t\t\t\t\t\t\t");
} else {
$utmValueStr = "'" . $sqlHelper->forSql($utmValue) . "'";
$this->connection->queryExecute("\n\t\t\t\t\t\t\t\t\tINSERT INTO {$tableNameUf} (VALUE_ID, FIELD_ID, VALUE)\n\t\t\t\t\t\t\t\t\tVALUES ({$newId}, {$prop['FIELD_ID']}, {$utmValueStr})\n\t\t\t\t\t\t\t\t");
}
}
} else {
$valueArray[] = "'" . $sqlHelper->forSql($prop['FIELD_VALUE'][0]) . "'";
}
}
if (!empty($fieldArray)) {
if ($this->isMysql) {
$sql = "\n\t\t\t\t\t\t\tINSERT IGNORE INTO {$tableNameSingleUf} (VALUE_ID, " . implode(', ', $fieldArray) . ")\n\t\t\t\t\t\t\tVALUES ({$newId}, " . implode(', ', $valueArray) . ")\n\t\t\t\t\t\t";
} elseif ($this->isOracle) {
$sql = "\n\t\t\t\t\t\t\tINSERT INTO {$tableNameSingleUf} (VALUE_ID, " . implode(', ', $fieldArray) . ")\n\t\t\t\t\t\t\tSELECT {$newId}, " . implode(', ', $valueArray) . " FROM dual\n\t\t\t\t\t\t\tWHERE NOT EXISTS(SELECT 'x' FROM {$tableNameSingleUf} WHERE VALUE_ID = {$newId})\n\t\t\t\t\t\t";
} elseif ($this->isMssql) {
$sql = "\n\t\t\t\t\t\t\tINSERT INTO {$tableNameSingleUf} (VALUE_ID, " . implode(', ', $fieldArray) . ")\n\t\t\t\t\t\t\tSELECT * FROM (SELECT {$newId}, " . implode(', ', $valueArray) . ") AS tmp\n\t\t\t\t\t\t\tWHERE NOT EXISTS(SELECT 'x' FROM {$tableNameSingleUf} WHERE VALUE_ID = {$newId})\n\t\t\t\t\t\t";
}
$this->connection->queryExecute($sql);
}
}
}
}
示例6: installDiskUserFields
public static function installDiskUserFields()
{
global $APPLICATION;
$errors = null;
if (!IsModuleInstalled('disk')) {
return $errors;
}
$uf = new CUserTypeEntity();
$rsData = CUserTypeEntity::getList(array("ID" => "ASC"), array("ENTITY_ID" => 'TASKS_TASK', "FIELD_NAME" => 'UF_TASK_WEBDAV_FILES'));
if (!($rsData && ($arRes = $rsData->Fetch()))) {
$intID = $uf->add(array('ENTITY_ID' => 'TASKS_TASK', 'FIELD_NAME' => 'UF_TASK_WEBDAV_FILES', 'USER_TYPE_ID' => 'disk_file', 'XML_ID' => 'TASK_WEBDAV_FILES', 'MULTIPLE' => 'Y', 'MANDATORY' => null, 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => null, 'EDIT_IN_LIST' => null, 'IS_SEARCHABLE' => 'Y', 'EDIT_FORM_LABEL' => array('en' => 'Load files', 'ru' => 'Load files', 'de' => 'Load files')), false);
if (false == $intID && ($strEx = $APPLICATION->getException())) {
$errors[] = $strEx->getString();
}
}
return $errors;
}