1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
typebase.php
См. документацию.
1<?php
2
3namespace Bitrix\Main\UserField;
4
10
11abstract class TypeBase
12{
13 static $helper = array();
14
15 const USER_TYPE_ID = '_generic';
16
20 public static function getHelper()
21 {
22 if(!array_key_exists(static::USER_TYPE_ID, static::$helper))
23 {
24 static::setHelper(new TypeHelper(static::USER_TYPE_ID));
25 }
26
27 return static::$helper[static::USER_TYPE_ID];
28 }
29
33 public static function setHelper(TypeHelper $helper)
34 {
35 static::$helper[static::USER_TYPE_ID] = $helper;
36 }
37
38 protected static function initDisplay(array $additional = array())
39 {
40 \CJSCore::init(array_merge(array('uf'), $additional));
41 }
42
43 protected static function buildTagAttributes(array $attributes)
44 {
45 $s = '';
46 foreach($attributes as $attribute => $value)
47 {
48 $s .= htmlspecialcharsbx($attribute) . '="' . htmlspecialcharsbx($value) . '" ';
49 }
50
51 return $s;
52 }
53
54 protected static function getFieldName($arUserField, $arAdditionalParameters = array())
55 {
56 $fieldName = $arUserField["FIELD_NAME"];
57 if($arUserField["MULTIPLE"] == "Y")
58 {
59 $fieldName .= "[]";
60 }
61
62 return $fieldName;
63 }
64
65 protected static function normalizeFieldValue($value)
66 {
67 if(!is_array($value))
68 {
69 $value = array($value);
70 }
71 if(empty($value))
72 {
73 $value = array(null);
74 }
75
76 return $value;
77 }
78
79 protected static function getFieldValue($arUserField, $arAdditionalParameters = array())
80 {
81 if(!$arAdditionalParameters["bVarsFromForm"])
82 {
83 if($arUserField["ENTITY_VALUE_ID"] <= 0)
84 {
85 switch($arUserField['USER_TYPE_ID'])
86 {
87 case \CUserTypeDate::USER_TYPE_ID:
88 case \CUserTypeDateTime::USER_TYPE_ID:
89
90 $full = $arUserField['USER_TYPE_ID'] === \CUserTypeDateTime::USER_TYPE_ID;
91 if($arUserField["SETTINGS"]["DEFAULT_VALUE"]["TYPE"] == "NOW")
92 {
93 $value = $full
94 ? \ConvertTimeStamp(time() + \CTimeZone::getOffset(), "FULL")
95 : \ConvertTimeStamp(time(), 'SHORT');
96 }
97 else
98 {
99 $value = $full
100 ? str_replace(" 00:00:00", "", \CDatabase::formatDate($arUserField["SETTINGS"]["DEFAULT_VALUE"]["VALUE"], "YYYY-MM-DD HH:MI:SS", \CLang::getDateFormat("FULL")))
101 : \CDatabase::formatDate($arUserField["SETTINGS"]["DEFAULT_VALUE"]["VALUE"], "YYYY-MM-DD", \CLang::getDateFormat('SHORT'));
102 }
103
104 break;
105 case \CUserTypeEnum::USER_TYPE_ID:
106
107 $value = $arUserField['MULTIPLE'] === 'Y' ? array() : null;
108 foreach($arUserField['ENUM'] as $enum)
109 {
110 if($enum['DEF'] === 'Y')
111 {
112 if($arUserField['MULTIPLE'] === 'Y')
113 {
114 $value[] = $enum['ID'];
115 }
116 else
117 {
118 $value = $enum['ID'];
119 break;
120 }
121 }
122 }
123
124 break;
125 default:
126 $value = $arUserField["SETTINGS"]["DEFAULT_VALUE"] ?? null;
127
128 break;
129 }
130 }
131 else
132 {
133 $value = $arUserField['VALUE'] ?? null;
134 }
135 }
136 else
137 {
138 $value = $_REQUEST[$arUserField["FIELD_NAME"]] ?? null;
139 }
140
141 return static::normalizeFieldValue($value);
142 }
143
144 public static function getPublicText($userField)
145 {
146 $value = static::normalizeFieldValue($userField['VALUE']);
147
148 return join(', ', array_map(function($v)
149 {
150 return is_null($v) || is_scalar($v) ? (string)$v : '';
151 }, $value));
152 }
153
154}
static buildTagAttributes(array $attributes)
Определения typebase.php:43
static setHelper(TypeHelper $helper)
Определения typebase.php:33
static normalizeFieldValue($value)
Определения typebase.php:65
const USER_TYPE_ID
Определения typebase.php:15
static getFieldName($arUserField, $arAdditionalParameters=array())
Определения typebase.php:54
static getHelper()
Определения typebase.php:20
static $helper
Определения typebase.php:13
static getPublicText($userField)
Определения typebase.php:144
static initDisplay(array $additional=array())
Определения typebase.php:38
static getFieldValue($arUserField, $arAdditionalParameters=array())
Определения typebase.php:79
const USER_TYPE_ID
Определения usertypetime.php:12
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701