forked from uploadcare/uploadcare-bitrix
/
properties.php
108 lines (95 loc) · 3.1 KB
/
properties.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
class CUserTypeUploadcare {
function GetUserTypeDescription() {
return array(
"USER_TYPE_ID" => "uploadcare",
"CLASS_NAME" => "CUserTypeUploadcare",
"DESCRIPTION" => "Uploadcare",
"BASE_TYPE" => "string"
);
}
function GetIBlockPropertyDescription() {
return array(
"PROPERTY_TYPE" => "S",
"USER_TYPE" => "uploadcare",
"DESCRIPTION" => "Uploadcare",
'GetPropertyFieldHtml' => array('CUserTypeUploadcare', 'GetPropertyFieldHtml'),
'GetAdminListViewHTML' => array('CUserTypeUploadcare', 'GetAdminListViewHTML'),
'ConvertToDB' => array('CUserTypeUploadcare', 'ConvertToDB'),
'ConvertFromDB' => array('CUserTypeUploadcare', 'ConvertFromDB'),
);
}
function GetDBColumnType($arUserField)
{
global $DB;
switch(strtolower($DB->type))
{
case "mysql":
return "text";
case "oracle":
return "varchar2(2000 char)";
case "mssql":
return "varchar(2000)";
}
}
function ConvertToDB($arProperty, $value)
{
$value = $value['VALUE'];
if (!$value) {
return array('VALUE' => '');
}
if (strpos($value, 'ucarecdn.com')) {
$parts = parse_url($value);
$path = $parts['path'];
$path_parts = explode('/', $path);
$file_id = $path_parts[1];
} else {
$file_id = $value;
}
$public_key = COption::GetOptionString("uploadcare", "publickey");
$secret_key = COption::GetOptionString("uploadcare", "secretkey");
$uploadcare_api = new Uploadcare_Api($public_key, $secret_key);
$file = $uploadcare_api->getFile($file_id);
$file->store();
$arResult = array('VALUE' => $value);
return $arResult;
}
function ConvertFromDB($arProperty, $value)
{
return array('VALUE' => self::GetValue($value['VALUE']));
}
function GetValue($value)
{
if (!$value) {
return '';
}
if (strpos($value, 'ucarecdn.com')) {
return $value;
} else {
return 'https://ucarecdn.com/'.$value.'/';
}
}
function getViewHTML($name, $value) {
return '';
}
function getEditHTML($name, $value, $is_ajax = false) {
$public_key = COption::GetOptionString("uploadcare", "publickey");
$secret_key = COption::GetOptionString("uploadcare", "secretkey");
$uploadcare_api = new Uploadcare_Api($public_key, $secret_key);
$result = $uploadcare_api->widget->getInputTag($name, array('value' => $value));
return $result;
}
function GetEditFormHTML($arUserField, $arHtmlControl) {
return self::getEditHTML($arHtmlControl['NAME'], $arHtmlControl['VALUE'], false);
}
function GetAdminListEditHTML($arUserField, $arHtmlControl) {
return self::getViewHTML($arHtmlControl['NAME'], $arHtmlControl['VALUE'], true);
}
function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName) {
return self::getViewHTML($strHTMLControlName['VALUE'], $value['VALUE']);
}
function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName) {
return $strHTMLControlName['MODE'] == 'FORM_FILL' ? self::getEditHTML($strHTMLControlName['VALUE'], $value['VALUE'], false) : self::getViewHTML($strHTMLControlName['VALUE'], $value['VALUE']);
}
}
?>