1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
prop_fileman.php
См. документацию.
1<?php
2
6
8{
11
12 public static function GetUserTypeDescription()
13 {
14 if (Loader::includeModule('bitrix24'))
15 {
16 return [];
17 }
18
19 return [
20 'PROPERTY_TYPE' => Iblock\PropertyTable::TYPE_STRING,
22 'DESCRIPTION' => Loc::getMessage('IBLOCK_PROP_FILEMAN_DESC'),
23 'GetPropertyFieldHtml' => [__CLASS__, 'GetPropertyFieldHtml'],
24 'GetPropertyFieldHtmlMulty' => [__CLASS__, 'GetPropertyFieldHtmlMulty'],
25 'ConvertToDB' => [__CLASS__, 'ConvertToDB'],
26 'ConvertFromDB' => [__CLASS__, 'ConvertFromDB'],
27 'GetSettingsHTML' => [__CLASS__, 'GetSettingsHTML'],
28 'GetUIEntityEditorProperty' => [__CLASS__, 'GetUIEntityEditorProperty'],
29 'GetUIEntityEditorPropertyEditHtml' => [__CLASS__, 'GetUIEntityEditorPropertyEditHtml'],
30 'GetUIEntityEditorPropertyViewHtml' => [__CLASS__, 'GetUIEntityEditorPropertyViewHtml'],
31 ];
32 }
33
34 public static function GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
35 {
36 if($strHTMLControlName["MODE"]=="FORM_FILL" && CModule::IncludeModule('fileman'))
37 {
38 $inputName = array();
40 foreach ($arValues as $intPropertyValueID => $arOneValue)
41 {
42 $key = $strHTMLControlName["VALUE"]."[".$intPropertyValueID."]";
43 $inputName[$key."[VALUE]"] = $arOneValue["VALUE"];
44 $description[$key."[DESCRIPTION]"] = $arOneValue["DESCRIPTION"];
45 }
46
47 return CFileInput::ShowMultiple($inputName, $strHTMLControlName["VALUE"]."[n#IND#][VALUE]", array(
48 "PATH" => "Y",
49 "IMAGE" => "N",
50 "MAX_SIZE" => array(
51 "W" => COption::GetOptionString("iblock", "detail_image_size"),
52 "H" => COption::GetOptionString("iblock", "detail_image_size"),
53 ),
54 ), false, array(
55 'upload' => false,
56 'medialib' => true,
57 'file_dialog' => true,
58 'cloud' => true,
59 'del' => true,
60 'description' => $arProperty["WITH_DESCRIPTION"]=="Y"? array(
61 "VALUES" => $description,
62 'NAME_TEMPLATE' => $strHTMLControlName["VALUE"]."[n#IND#][DESCRIPTION]",
63 ): false,
64 ));
65 }
66 else
67 {
68 $table_id = md5($strHTMLControlName["VALUE"]);
69 $return = '<table id="tb'.$table_id.'" border=0 cellpadding=0 cellspacing=0>';
70 foreach ($arValues as $intPropertyValueID => $arOneValue)
71 {
72 $return .= '<tr><td>';
73
74 $return .= '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]."[$intPropertyValueID][VALUE]").'" size="'.$arProperty["COL_COUNT"].'" value="'.htmlspecialcharsEx($arOneValue["VALUE"]).'">';
75
76 if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
77 $return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]."[$intPropertyValueID][DESCRIPTION]").'" value="'.htmlspecialcharsEx($arOneValue["DESCRIPTION"]).'" size="18" type="text"></span>';
78
79 $return .= '</td></tr>';
80 }
81
82 $return .= '<tr><td>';
83 $return .= '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]."[n0][VALUE]").'" size="'.$arProperty["COL_COUNT"].'" value="">';
84 if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
85 $return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]."[n0][DESCRIPTION]").'" value="" size="18" type="text"></span>';
86 $return .= '</td></tr>';
87
88 $return .= '<tr><td><input type="button" value="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_ADD").'" onClick="BX.IBlock.Tools.addNewRow(\'tb'.$table_id.'\')"></td></tr>';
89 return $return.'</table>';
90 }
91 }
92
93 public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
94 {
95 global $APPLICATION;
96
97 if (!isset($strHTMLControlName['FORM_NAME']) || trim($strHTMLControlName['FORM_NAME']) === '')
98 {
99 $strHTMLControlName['FORM_NAME'] = 'form_element';
100 }
101 $name = preg_replace("/[^a-zA-Z0-9_]/i", "x", htmlspecialcharsbx($strHTMLControlName['VALUE']));
102
103 if (isset($value['VALUE']) && is_array($value['VALUE']))
104 {
105 $value['VALUE'] = $value['VALUE']['VALUE'];
106 $value['DESCRIPTION'] = $value['DESCRIPTION']['VALUE'];
107 }
108
109 if($strHTMLControlName["MODE"]=="FORM_FILL" && CModule::IncludeModule('fileman'))
110 {
111 return CFileInput::Show($strHTMLControlName["VALUE"], $value["VALUE"],
112 array(
113 "PATH" => "Y",
114 "IMAGE" => "N",
115 "MAX_SIZE" => array(
116 "W" => COption::GetOptionString("iblock", "detail_image_size"),
117 "H" => COption::GetOptionString("iblock", "detail_image_size"),
118 ),
119 ), array(
120 'upload' => false,
121 'medialib' => true,
122 'file_dialog' => true,
123 'cloud' => true,
124 'del' => true,
125 'description' => $arProperty["WITH_DESCRIPTION"]=="Y"? array(
126 "VALUE" => $value["DESCRIPTION"],
127 "NAME" => $strHTMLControlName["DESCRIPTION"],
128 ): false,
129 )
130 );
131 }
132 else
133 {
134 $return = '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'" id="'.$name.'" size="'.$arProperty["COL_COUNT"].'" value="'.htmlspecialcharsEx($value["VALUE"]).'">';
135
136 if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
137 {
138 $return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]).'" value="'.htmlspecialcharsEx($value["DESCRIPTION"]).'" size="18" type="text"></span>';
139 }
140
141 return $return;
142 }
143 }
144
145 public static function ConvertToDB($arProperty, $value)
146 {
147 $result = array();
148 $return = array();
149 if(is_array($value["VALUE"]))
150 {
151 $result["VALUE"] = $value["VALUE"]["VALUE"];
152 $result["DESCRIPTION"] = $value["DESCRIPTION"]["VALUE"];
153 }
154 else
155 {
156 $result["VALUE"] = $value["VALUE"];
157 $result["DESCRIPTION"] = $value["DESCRIPTION"] ?? '';
158 }
159 $return["VALUE"] = trim((string)$result["VALUE"]);
160 $return["DESCRIPTION"] = trim((string)$result["DESCRIPTION"]);
161 return $return;
162 }
163
164 public static function ConvertFromDB($arProperty, $value)
165 {
166 $return = [];
167 $propertyValue = trim((string)($value['VALUE'] ?? ''));
168 if ($propertyValue !== '')
169 {
170 $return['VALUE'] = $propertyValue;
171 }
172 $description = trim((string)($value['DESCRIPTION'] ?? ''));
173 if ($description !== '')
174 {
175 $return['DESCRIPTION'] = $description;
176 }
177
178 return $return;
179 }
180
181 public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
182 {
183 $arPropertyFields = array(
184 "HIDE" => array("MULTIPLE_CNT"),
185 );
186
187 return '';
188 }
189
190 public static function GetUIEntityEditorProperty($settings, $value)
191 {
192 return [
193 'type' => 'custom'
194 ];
195 }
196
197 public static function GetUIEntityEditorPropertyEditHtml(array $params = []): string
198 {
199 $settings = $params['SETTINGS'] ?? [];
200 $value = $params['VALUE'] ?? '';
201 if (!is_array($value))
202 {
203 $value = ['VALUE' => $value];
204 }
205 $paramsHTMLControl = [
206 'MODE' => 'iblock_element_admin',
207 'VALUE' => $params['FIELD_NAME'] ?? '',
208 ];
209 if (array_key_exists('VALUE', $value))
210 {
211 return self::GetPropertyFieldHtml($settings, $value, $paramsHTMLControl);
212 }
213 else
214 {
215 return self::GetPropertyFieldHtmlMulty($settings, $value, $paramsHTMLControl);
216 }
217 }
218
219 public static function GetUIEntityEditorPropertyViewHtml(array $params = []): string
220 {
221 $result = '';
222 if(!empty($params['VALUE']))
223 {
224 }
225 return $result;
226 }
227}
const TYPE_STRING
Определения propertytable.php:65
const USER_TYPE_FILE_MAN
Определения propertytable.php:78
Определения loader.php:13
static includeModule($moduleName)
Определения loader.php:67
static GetUserTypeDescription()
Определения prop_fileman.php:12
const USER_TYPE
Определения prop_fileman.php:10
static GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
Определения prop_fileman.php:34
$arValues
Определения component_props.php:25
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description
Определения .description.php:24
$inputName
Определения options.php:197
htmlspecialcharsEx($str)
Определения tools.php:2685
if(empty($signedUserToken)) $key
Определения quickway.php:257