1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
prop_element_sku.php
См. документацию.
1<?php
2
5
7{
10
11 public static function GetUserTypeDescription()
12 {
13 return [
14 'PROPERTY_TYPE' => Iblock\PropertyTable::TYPE_ELEMENT,
16 'DESCRIPTION' => Loc::getMessage('BT_UT_SKU_DESCRIPTION'),
17 'GetPropertyFieldHtml' => [__CLASS__, 'GetPropertyFieldHtml'],
18 'GetPropertyFieldHtmlMulty' => [__CLASS__, 'GetPropertyFieldHtml'],
19 'GetPublicViewHTML' => [__CLASS__, 'GetPublicViewHTML'],
20 'GetPublicEditHTML' => [__CLASS__, 'GetPublicEditHTML'],
21 'GetAdminListViewHTML' => [__CLASS__,'getAdminListViewHTMLExtended'],
22 'GetAdminFilterHTML' => [__CLASS__,'GetAdminFilterHTML'],
23 'GetSettingsHTML' => [__CLASS__,'GetSettingsHTML'],
24 'PrepareSettings' => [__CLASS__,'PrepareSettings'],
25 'AddFilterFields' => [__CLASS__,'AddFilterFields'],
26 'GetUIFilterProperty' => [__CLASS__, 'GetUIFilterProperty'],
27 'GetUIEntityEditorProperty' => [__CLASS__, 'GetUIEntityEditorProperty'],
28 'GetUIEntityEditorPropertyEditHtml' => [__CLASS__, 'GetUIEntityEditorPropertyEditHtml'],
29 'GetUIEntityEditorPropertyViewHtml' => [__CLASS__, 'GetUIEntityEditorPropertyViewHtml'],
30 ];
31 }
32
33 public static function PrepareSettings($arFields)
34 {
35 /*
36 * VIEW - view type
37 * SHOW_ADD - show button for add new values in linked iblock
38 * MAX_WIDTH - max width textarea and input in pixels
39 * MIN_HEIGHT - min height textarea in pixels
40 * MAX_HEIGHT - max height textarea in pixels
41 * BAN_SYM - banned symbols string
42 * REP_SYM - replace symbol
43 * OTHER_REP_SYM - non standart replace symbol
44 * IBLOCK_MESS - get lang mess from linked iblock
45 * remove SHOW_ADD manage
46 */
47 $arResult = parent::PrepareSettings($arFields);
48 $arResult['SHOW_ADD'] = 'N';
49 $arFields['USER_TYPE_SETTINGS'] = $arResult;
50 $arFields['MULTIPLE'] = 'N';
51
52 return $arFields;
53 }
54
55 public static function GetSettingsHTML($arFields,$strHTMLControlName, &$arPropertyFields)
56 {
57 $arPropertyFields = array(
58 "HIDE" => array("ROW_COUNT", "COL_COUNT", "MULTIPLE_CNT", "MULTIPLE"),
59 "SET" => array("MULTIPLE" => "N"),
60 'USER_TYPE_SETTINGS_TITLE' => Loc::getMessage('BT_UT_SKU_SETTING_TITLE'),
61 );
62
63 $arSettings = static::PrepareSettings($arFields);
64 if (isset($arSettings['USER_TYPE_SETTINGS']))
65 $arSettings = $arSettings['USER_TYPE_SETTINGS'];
66
67 $strResult = '<tr>
68 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_VIEW').'</td>
69 <td>'.SelectBoxFromArray($strHTMLControlName["NAME"].'[VIEW]', static::GetPropertyViewsList(true),htmlspecialcharsbx($arSettings['VIEW'])).'</td>
70 </tr>
71 <tr>
72 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MAX_WIDTH').'</td>
73 <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MAX_WIDTH]" value="'.intval($arSettings['MAX_WIDTH']).'">&nbsp;'.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MAX_WIDTH').'</td>
74 </tr>
75 <tr>
76 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MIN_HEIGHT').'</td>
77 <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MIN_HEIGHT]" value="'.intval($arSettings['MIN_HEIGHT']).'">&nbsp;'.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MIN_HEIGHT').'</td>
78 </tr>
79 <tr>
80 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MAX_HEIGHT').'</td>
81 <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MAX_HEIGHT]" value="'.intval($arSettings['MAX_HEIGHT']).'">&nbsp;'.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MAX_HEIGHT').'</td>
82 </tr>
83 <tr>
84 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_BAN_SYMBOLS').'</td>
85 <td><input type="text" name="'.$strHTMLControlName["NAME"].'[BAN_SYM]" value="'.htmlspecialcharsbx($arSettings['BAN_SYM']).'"></td>
86 </tr>
87 <tr>
88 <td>'.Loc::getMessage('BT_UT_SKU_SETTING_REP_SYMBOL').'</td>
89 <td>'.SelectBoxFromArray($strHTMLControlName["NAME"].'[REP_SYM]', static::GetReplaceSymList(true),htmlspecialcharsbx($arSettings['REP_SYM'])).'&nbsp;<input type="text" name="'.$strHTMLControlName["NAME"].'[OTHER_REP_SYM]" size="1" maxlength="1" value="'.htmlspecialcharsbx($arSettings['OTHER_REP_SYM']).'"></td>
90 </tr>';
91
92 return $strResult;
93 }
94
95 public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
96 {
97 $elementId = (int)($arValue['VALUE'] ?? 0);
98 $element = self::getElement($elementId);
99 if (!$element)
100 {
101 return '';
102 }
103
104 $viewMode = '';
105 $resultKey = '';
106 if (!empty($strHTMLControlName['MODE']))
107 {
108 switch ($strHTMLControlName['MODE'])
109 {
110 case 'CSV_EXPORT':
111 $viewMode = 'CSV_EXPORT';
112 $resultKey = 'ID';
113 break;
114 case 'EXTERNAL_ID':
115 $viewMode = 'EXTERNAL_ID';
116 $resultKey = 'XML_ID';
117 break;
118 case 'SIMPLE_TEXT':
119 $viewMode = 'SIMPLE_TEXT';
120 $resultKey = 'NAME';
121 break;
122 case 'ELEMENT_TEMPLATE':
123 $viewMode = 'ELEMENT_TEMPLATE';
124 $resultKey = 'NAME';
125 break;
126 }
127 }
128
129 if ($viewMode !== '' && $resultKey !== '')
130 {
131 return $element[$resultKey];
132 }
133
134 return htmlspecialcharsbx($element['NAME']) . ' [' . $elementId . ']';
135 }
136
137 public static function getAdminListViewHTMLExtended(array $property, array $value, $control): string
138 {
139 $result = '';
140 if ($value['VALUE'])
141 {
142 $isPublicMode = (defined("PUBLIC_MODE") && (int)PUBLIC_MODE === 1);
143
144 if ($isPublicMode)
145 {
146 $result .= self::GetPublicViewHTML($property, $value, $control);
147 }
148 else
149 {
150 $result .= self::GetAdminListViewHTML($property, $value, $control);
151 }
152 }
153
154 return $result;
155 }
156
157 public static function GetUIEntityEditorProperty($settings, $value)
158 {
159 $result = parent::GetUIEntityEditorProperty($settings, $value);
160 $result['allowedMultiple'] = false;
161
162 return $result;
163 }
164
165 private static function getElement(int $elementId): ?array
166 {
167 if ($elementId <= 0)
168 {
169 return null;
170 }
171
173 [],
174 [
175 'ID' => $elementId,
176 ],
177 false,
178 false,
179 [
180 'ID',
181 'IBLOCK_ID',
182 'NAME',
183 'XML_ID',
184 ]
185 );
186 $element = $iterator->Fetch();
187
188 if ($element)
189 {
190 return $element;
191 }
192
193 return null;
194 }
195}
196
198const BT_UT_SKU_CODE = Iblock\PropertyTable::USER_TYPE_SKU;
$arResult
Определения generate_coupon.php:16
const TYPE_ELEMENT
Определения propertytable.php:68
const USER_TYPE_SKU
Определения propertytable.php:83
static GetList($arOrder=array("SORT"=>"ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения iblockelement.php:658
static GetAdminListViewHTML($arProperty, $arValue, $strHTMLControlName)
Определения prop_element_auto.php:390
static PrepareSettings($arFields)
Определения prop_element_sku.php:33
static GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
Определения prop_element_sku.php:95
static GetUserTypeDescription()
Определения prop_element_sku.php:11
static GetSettingsHTML($arFields, $strHTMLControlName, &$arPropertyFields)
Определения prop_element_sku.php:55
static GetUIEntityEditorProperty($settings, $value)
Определения prop_element_sku.php:157
const USER_TYPE
Определения prop_element_sku.php:9
static getAdminListViewHTMLExtended(array $property, array $value, $control)
Определения prop_element_sku.php:137
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$control
Определения iblock_catalog_edit.php:61
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
SelectBoxFromArray( $strBoxName, $db_array, $strSelectedVal="", $strDetText="", $field1="class='typeselect'", $go=false, $form="form1")
Определения tools.php:216
$settings
Определения product_settings.php:43
const BT_UT_SKU_CODE
Определения prop_element_sku.php:198
$iterator
Определения yandex_run.php:610