1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
basetype.php
См. документацию.
1<?php
2
4
5abstract class BaseType
6{
7 public const
8 MODE_EDIT = 'main.edit',
9 MODE_VIEW = 'main.view';
10
11 private const
12 MODE_ADMIN_SETTINGS = 'main.admin_settings',
13 MODE_EDIT_FORM = 'main.edit_form',
14 MODE_FILTER_HTML = 'main.filter_html',
15 MODE_ADMIN_LIST_VIEW_HTML = 'main.admin_list_view_html',
16 MODE_ADMIN_LIST_EDIT_HTML = 'main.admin_list_edit_html',
17 MODE_PUBLIC_TEXT = 'main.public_text';
18
19 protected const
21 RENDER_COMPONENT = null; // component name, sample bitrix:main.field.string
22
26 public static function getUserTypeDescription(): array
27 {
28 return array_merge(static::getBaseUserTypeDescription(), static::getDescription());
29 }
30
34 protected static function getDescription(): array
35 {
36 return [];
37 }
38
42 protected static function getBaseUserTypeDescription(): array
43 {
44 return [
45 'USER_TYPE_ID' => static::USER_TYPE_ID,
46 'CLASS_NAME' => static::class,
47 'EDIT_CALLBACK' => [static::class, 'renderEdit'],
48 'VIEW_CALLBACK' => [static::class, 'renderView'],
49 'USE_FIELD_COMPONENT' => true,
50 ];
51 }
52
58 public static function renderField(array $userField, ?array $additionalParameters = []): string
59 {
60 return self::getHtml($userField, $additionalParameters);
61 }
62
75 public static function renderView(array $userField, ?array $additionalParameters = []): string
76 {
77 $additionalParameters['mode'] = self::MODE_VIEW;
78 return self::getHtml($userField, $additionalParameters);
79 }
80
92 public static function renderEdit(array $userField, ?array $additionalParameters = []): string
93 {
94 $additionalParameters['mode'] = self::MODE_EDIT;
95 return self::getHtml($userField, $additionalParameters);
96 }
97
108 public static function renderSettings($userField, ?array $additionalParameters, $varsFromForm): string
109 {
110 $additionalParameters['mode'] = self::MODE_ADMIN_SETTINGS;
111 $additionalParameters['bVarsFromForm'] = $varsFromForm;
112 return self::getHtml($userField, $additionalParameters);
113 }
114
126 public static function renderEditForm(array $userField, ?array $additionalParameters): string
127 {
128 $additionalParameters['mode'] = self::MODE_EDIT_FORM;
129 $userField['USE_COMPONENT'] = 'Y';
130 return self::getHtml($userField, $additionalParameters);
131 }
132
143 public static function renderAdminListView(array $userField, ?array $additionalParameters): string
144 {
145 $additionalParameters['mode'] = self::MODE_ADMIN_LIST_VIEW_HTML;
146 return self::getHtml($userField, $additionalParameters);
147 }
148
158 public static function renderAdminListEdit(array $userField, ?array $additionalParameters)
159 {
160 $additionalParameters['mode'] = self::MODE_ADMIN_LIST_EDIT_HTML;
161 return self::getHtml($userField, $additionalParameters);
162 }
163
174 public static function renderFilter(array $userField, ?array $additionalParameters): string
175 {
176 $additionalParameters['mode'] = self::MODE_FILTER_HTML;
177 return self::getHtml($userField, $additionalParameters);
178 }
179
184 public static function renderText(array $userField): string
185 {
186 $additionalParameters = [];
187 $additionalParameters['mode'] = self::MODE_PUBLIC_TEXT;
188 return self::getHtml($userField, $additionalParameters);
189 }
190
196 private static function getHtml($userField, $additionalParameters): string
197 {
198 global $APPLICATION;
199 global $USER_FIELD_MANAGER;
200
201 $preparedSettings = $USER_FIELD_MANAGER->PrepareSettings(0, $userField);
202 if (!empty($preparedSettings))
203 {
204 if (isset($userField['SETTINGS']) && is_array($userField['SETTINGS']))
205 {
206 $userField['SETTINGS'] = array_merge($userField['SETTINGS'], $preparedSettings);
207 }
208 else
209 {
210 $userField['SETTINGS'] = $preparedSettings;
211 }
212 }
213
214 ob_start();
215 $APPLICATION->IncludeComponent(
216 self::getComponentName(),
217 '',
218 [
219 'userField' => $userField,
220 'additionalParameters' => $additionalParameters,
221 ]
222 );
223 return ob_get_clean();
224 }
225
231 private static function getComponentName(): string
232 {
233 if (str_contains(static::RENDER_COMPONENT, ':'))
234 {
235 return static::RENDER_COMPONENT;
236 }
237 return 'bitrix:' . static::RENDER_COMPONENT;
238 }
239
246 public static function getSettingsHtml($userField, ?array $additionalParameters, $varsFromForm): string
247 {
248 return static::renderSettings($userField, $additionalParameters, $varsFromForm);
249 }
250
256 public static function getPublicView(array $userField, ?array $additionalParameters = []): string
257 {
258 return static::renderView($userField, $additionalParameters);
259 }
260
266 public static function getPublicEdit(array $userField, ?array $additionalParameters = []): string
267 {
268 return static::renderEdit($userField, $additionalParameters);
269 }
270
276 public static function getEditFormHtml(array $userField, ?array $additionalParameters): string
277 {
278 return static::renderEditForm($userField, $additionalParameters);
279 }
280
286 public static function getAdminListViewHtml(array $userField, ?array $additionalParameters)
287 {
288 return static::renderAdminListView($userField, $additionalParameters);
289 }
290
296 public static function getAdminListEditHTML(array $userField, ?array $additionalParameters)
297 {
298 return static::renderAdminListEdit($userField, $additionalParameters);
299 }
300
306 public static function getFilterHtml(array $userField, ?array $additionalParameters): string
307 {
308 return static::renderFilter($userField, $additionalParameters);
309 }
310
315 public static function getPublicText(array $userField): string
316 {
317 return static::renderText($userField);
318 }
319
325 public static function getDefaultValue(array $userField, array $additionalParameters = [])
326 {
327 $value = ($userField['SETTINGS']['DEFAULT_VALUE'] ?? null);
328 return ($userField['MULTIPLE'] === 'Y' ? [$value] : $value);
329 }
330
331 abstract public static function getDbColumnType(): string;
332
333 public static function isMandatorySupported(): bool
334 {
335 return true;
336 }
337
338 public static function isMultiplicitySupported(): bool
339 {
340 return true;
341 }
342}
global $APPLICATION
Определения include.php:80
static getUserTypeDescription()
Определения basetype.php:26
static isMultiplicitySupported()
Определения basetype.php:338
static renderAdminListEdit(array $userField, ?array $additionalParameters)
Определения basetype.php:158
static getPublicEdit(array $userField, ?array $additionalParameters=[])
Определения basetype.php:266
static renderEdit(array $userField, ?array $additionalParameters=[])
Определения basetype.php:92
static getDefaultValue(array $userField, array $additionalParameters=[])
Определения basetype.php:325
static getAdminListEditHTML(array $userField, ?array $additionalParameters)
Определения basetype.php:296
static getBaseUserTypeDescription()
Определения basetype.php:42
static renderEditForm(array $userField, ?array $additionalParameters)
Определения basetype.php:126
static getEditFormHtml(array $userField, ?array $additionalParameters)
Определения basetype.php:276
static getAdminListViewHtml(array $userField, ?array $additionalParameters)
Определения basetype.php:286
static renderText(array $userField)
Определения basetype.php:184
static renderField(array $userField, ?array $additionalParameters=[])
Определения basetype.php:58
static getSettingsHtml($userField, ?array $additionalParameters, $varsFromForm)
Определения basetype.php:246
static getDescription()
Определения basetype.php:34
static renderView(array $userField, ?array $additionalParameters=[])
Определения basetype.php:75
static renderSettings($userField, ?array $additionalParameters, $varsFromForm)
Определения basetype.php:108
static getFilterHtml(array $userField, ?array $additionalParameters)
Определения basetype.php:306
static renderFilter(array $userField, ?array $additionalParameters)
Определения basetype.php:174
static getPublicText(array $userField)
Определения basetype.php:315
static getPublicView(array $userField, ?array $additionalParameters=[])
Определения basetype.php:256
static renderAdminListView(array $userField, ?array $additionalParameters)
Определения basetype.php:143
static isMandatorySupported()
Определения basetype.php:333
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
global $USER_FIELD_MANAGER
Определения attempt.php:6