1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
list.php
См. документацию.
1<?php
2
4
5class CList
6{
8 var $fields = null;
9 var $new_ids = array();
10 protected $iblock_id = 0;
11
13 {
14 $this->iblock_id = intval($iblock_id);
15 $this->fields = new CListFieldList($iblock_id);
16 }
17
19 {
21 }
22
23 function is_readonly($field_id)
24 {
25 $obField = $this->fields->GetByID($field_id);
26 if(is_object($obField))
27 return $obField->IsReadonly();
28 else
29 return false;
30 }
31
32 function GetFields()
33 {
34 $arFields = array();
35
36 foreach($this->fields->GetFields() as $FIELD_ID)
37 $arFields[$FIELD_ID] = $this->fields->GetArrayByID($FIELD_ID);
38
39 return $arFields;
40 }
41
42 function GetAllTypes()
43 {
45 }
46
47 function GetAvailableTypes($ID = "")
48 {
49 $arTypeNames = CListFieldTypeList::GetTypesNames();
50 foreach($this->fields->GetFields() as $FIELD_ID)
51 if($FIELD_ID != $ID)
52 unset($arTypeNames[$FIELD_ID]);
53 return $arTypeNames;
54 }
55
56 function DeleteField($field_id)
57 {
58 return $this->fields->DeleteField($field_id);
59 }
60
62 {
63 return $this->fields->AddField($arFields);
64 }
65
66 function GetNewID($TEMP_ID)
67 {
68 return $this->new_ids[$TEMP_ID];
69 }
70
71 function UpdateField($field_id, $arFields)
72 {
73 $arFields["NAME"] = trim($arFields["NAME"], " \n\r\t");
74 $this->new_ids[$field_id] = $this->fields->UpdateField($field_id, $arFields);
75 return $this->new_ids[$field_id];
76 }
77
78 function Save()
79 {
80 }
81
82 public static function UpdatePropertyList($prop_id, $list)
83 {
84 foreach ($list as $id => $arEnum)
85 {
86 if (is_array($arEnum))
87 {
88 $value = trim($arEnum["VALUE"], " \t\n\r");
89 if ((string) $value <> '')
90 {
91 $dbEnum = CIBlockPropertyEnum::GetByID($id);
92 if(is_array($dbEnum))
93 {
94 $def = isset($arEnum["DEF"])? $arEnum["DEF"] : $dbEnum["DEF"];
95 $sort = intval($arEnum["SORT"]);
96 if(
97 $dbEnum["VALUE"] != $value
98 || $dbEnum["SORT"] != $sort
99 || $dbEnum["DEF"] != $def
100 )
101 {
102 $dbEnum["VALUE"] = $value;
103 $dbEnum["SORT"] = $sort;
104 $dbEnum["DEF"] = $def;
105 unset($dbEnum["ID"]);
106 CIBlockPropertyEnum::Update($id, $dbEnum);
107 }
108 }
109 else
110 {
111 $arEnum["PROPERTY_ID"] = $prop_id;
113 }
114 }
115 else
116 {
118 }
119 }
120 }
121 }
122
124 {
125 global $DB;
126 static $urlCache = array();
127
128 if(!array_key_exists($this->iblock_id, $urlCache))
129 {
130 $rs = $DB->Query("SELECT URL FROM b_lists_url WHERE IBLOCK_ID = ".$this->iblock_id);
131 $urlCache[$this->iblock_id] = $rs->Fetch();
132 }
133
134 if($urlCache[$this->iblock_id])
135 {
136 if($urlCache[$this->iblock_id]["URL"] != $url)
137 {
138 $DB->Query("UPDATE b_lists_url SET URL = '".$DB->ForSQL($url)."' WHERE IBLOCK_ID = ".$this->iblock_id);
139 }
140 }
141 else
142 {
143 $DB->Query("INSERT INTO b_lists_url (IBLOCK_ID, URL) values (".$this->iblock_id.", '".$DB->ForSQL($url)."')");
144 }
145
146 $urlCache[$this->iblock_id] = array("URL" => $url);
147 }
148
149 public static function OnGetDocumentAdminPage($arElement)
150 {
151 $url = self::getUrlByIblockId($arElement["IBLOCK_ID"]);
152 if ($url != "")
153 {
154 return str_replace(
155 array("#section_id#", "#element_id#"),
156 array(intval($arElement["IBLOCK_SECTION_ID"]), intval($arElement["ID"])),
157 $url
158 );
159 }
160 return "";
161 }
162
163 public static function OnSearchGetURL($arFields)
164 {
165
166 if (
167 $arFields["MODULE_ID"] === "iblock"
168 && $arFields["ITEM_ID"] > 0
169 && mb_substr($arFields["URL"], 0, 1) === "="
170 )
171 {
173 if ($url != "")
174 {
175 $arElement = array();
176 parse_str(mb_substr($arFields["URL"], 1), $arElement);
177
178 return str_replace(
179 array("#section_id#", "#element_id#"),
180 array(intval($arElement["IBLOCK_SECTION_ID"]), intval($arElement["ID"])),
181 $url
182 );
183 }
184 }
185
186 return $arFields["URL"];
187 }
188
189 public static function getUrlByIblockId($IBLOCK_ID)
190 {
191 global $DB;
192 static $cache = array();
193 $IBLOCK_ID = intval($IBLOCK_ID);
194
195 if (!isset($cache[$IBLOCK_ID]))
196 {
197 $rs = $DB->Query("SELECT URL FROM b_lists_url WHERE IBLOCK_ID = ".$IBLOCK_ID);
198 $cache[$IBLOCK_ID] = $rs->Fetch();
199 }
200
201 if ($cache[$IBLOCK_ID])
202 return $cache[$IBLOCK_ID]["URL"];
203 else
204 return "";
205 }
206}
static Delete($ID)
Определения iblockpropertyenum.php:201
static Add($arFields)
Определения iblockpropertyenum.php:127
static GetByID($ID)
Определения iblockpropertyenum.php:217
static Update($ID, $arFields)
Определения iblockpropertyenum.php:157
Определения listfields.php:5
static GetTypesNames()
Определения listfieldtypes.php:35
static IsField($type_id)
Определения listfieldtypes.php:26
Определения list.php:6
GetNewID($TEMP_ID)
Определения list.php:66
GetAvailableTypes($ID="")
Определения list.php:47
static UpdatePropertyList($prop_id, $list)
Определения list.php:82
ActualizeDocumentAdminPage($url)
Определения list.php:123
GetAllTypes()
Определения list.php:42
$iblock_id
Определения list.php:10
is_field($type_id)
Определения list.php:18
AddField($arFields)
Определения list.php:61
GetFields()
Определения list.php:32
is_readonly($field_id)
Определения list.php:23
static OnSearchGetURL($arFields)
Определения list.php:163
$fields
Определения list.php:8
UpdateField($field_id, $arFields)
Определения list.php:71
$new_ids
Определения list.php:9
static OnGetDocumentAdminPage($arElement)
Определения list.php:149
DeleteField($field_id)
Определения list.php:56
__construct($iblock_id)
Определения list.php:12
Save()
Определения list.php:78
static getUrlByIblockId($IBLOCK_ID)
Определения list.php:189
$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
if($ajaxMode) $ID
Определения get_user.php:27
foreach(CLists::GetPermission() as $type_id=> $groups)(in_array($type_id, $arIBTypes["REFERENCE_ID"]))($groups as $group)("group_right[n". $i."]", $arGroups, $group, GetMessage("LISTS_OPTIONS_CHOOSE_GROUP"))?></td >< td ><?echo SelectBoxFromArray("type_right[n". $i."]" $type_id
Определения options.php:152
global $DB
Определения cron_frame.php:29
$IBLOCK_ID
Определения csv_new_run.php:168
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
$rs
Определения action.php:82
foreach($arTemplatesList as $templ) if(mb_strpos($templ["NAME"] $def
Определения template_copy.php:264
$url
Определения iframe.php:7