1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
val_file_type.php
См. документацию.
1<?php
2
4
6{
7 public static function GetDescription()
8 {
9 return array(
10 "NAME" => "file_type", // unique validator string ID
11 "DESCRIPTION" => GetMessage('FORM_VALIDATOR_FILE_TYPE_DESCRIPTION'), // validator description
12 "TYPES" => array("file"), // list of types validator can be applied.
13 "SETTINGS" => array("CFormValidatorFileType", "GetSettings"), // method returning array of validator settings, optional
14 "CONVERT_TO_DB" => array("CFormValidatorFileType", "ToDB"), // method, processing validator settings to string to put to db, optional
15 "CONVERT_FROM_DB" => array("CFormValidatorFileType", "FromDB"), // method, processing validator settings from string from db, optional
16 "HANDLER" => array("CFormValidatorFileType", "DoValidate") // main validation method
17 );
18 }
19
20 public static function GetSettings()
21 {
22 return array(
23 "EXT" => array(
24 "TITLE" => GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_EXT"),
25 "TYPE" => "DROPDOWN",
26 "VALUES" => array(
27 GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_TYPE_EXT_NONE"),
28 "doc,rtf,pdf,txt" => GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_EXT_DOCS"),
29 "rar,tar,gz,zip,7z,ace,kgb,arj" => GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_EXT_ARCH"),
30 "jpg,jpeg,bmp,gif,png" => GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_EXT_IMG"),
31 ),
32 "DEFAULT" => "",
33 ),
34
35 "EXT_CUSTOM" => array(
36 "TITLE" => GetMessage("FORM_VALIDATOR_FILE_TYPE_SETTINGS_EXT_CUSTOM"),
37 "TYPE" => "TEXT",
38 "DEFAULT" => "",
39 ),
40 );
41 }
42
43 public static function ToDB($arParams)
44 {
45 return serialize($arParams);
46 }
47
48 public static function FromDB($strParams)
49 {
50 return unserialize($strParams, ['allowed_classes' => false]);
51 }
52
53 public static function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
54 {
55 global $APPLICATION;
56
57 if (!empty($arValues))
58 {
59 $arExt = array();
60 if ($arParams["EXT"] <> '')
61 $arExt = array_merge($arExt, explode(",", mb_strtolower($arParams["EXT"])));
62
63 if ($arParams["EXT_CUSTOM"] <> '')
64 $arExt = array_merge($arExt, explode(",", mb_strtolower($arParams["EXT_CUSTOM"])));
65
66 if (!empty($arExt))
67 {
68 foreach ($arExt as $key => $value) $arExt[$key] = trim($value);
69 $arExt = array_unique($arExt);
70 $arExtKeys = array_fill_keys($arExt, true);
71 $res = true;
72
73 foreach ($arValues as $arFile)
74 {
75 if (empty($arFile) || !is_array($arFile))
76 {
77 continue;
78 }
79 if ($arFile["tmp_name"] <> '' && $arFile["error"] == "0")
80 {
81 $point_pos = mb_strrpos($arFile["name"], ".");
82 if ($point_pos === false)
83 {
84 $res = false;
85 break;
86 }
87
88 $ext = mb_strtolower(mb_substr($arFile["name"], $point_pos + 1));
89 if (!isset($arExtKeys[$ext]))
90 {
91 $res = false;
92 break;
93 }
94 }
95 }
96
97 if (!$res)
98 {
99 $APPLICATION->ThrowException(GetMessage("FORM_VALIDATOR_FILE_TYPE_ERROR"));
100 return false;
101 }
102 }
103 }
104
105 return true;
106
107 }
108}
109
110AddEventHandler("form", "onFormValidatorBuildList", array("CFormValidatorFileType", "GetDescription"));
$arParams
Определения access_dialog.php:21
global $APPLICATION
Определения include.php:80
static ToDB($arParams)
Определения val_file_type.php:43
static GetSettings()
Определения val_file_type.php:20
static DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
Определения val_file_type.php:53
static FromDB($strParams)
Определения val_file_type.php:48
static GetDescription()
Определения val_file_type.php:7
$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
$res
Определения filter_act.php:7
AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT=100, $FULL_PATH=false)
Определения tools.php:5165
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
if(empty($signedUserToken)) $key
Определения quickway.php:257