1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
channel.php
См. документацию.
1<?
2#############################################
3# Bitrix Site Manager Forum #
4# Copyright (c) 2002-2009 Bitrix #
5# https://www.bitrixsoft.com #
6# mailto:admin@bitrixsoft.com #
7#############################################
8IncludeModuleLangFile(__FILE__);
9
11{
12 public static function CheckFields($ACTION, &$arFields, $ID = 0)
13 {
14 global $DB, $APPLICATION;
15 $aMsg = array();
16 $ID = intval($ID);
17
18 foreach(array("TITLE", "SYMBOLIC_NAME") as $key)
19 {
20 if (is_set($arFields, $key) || $ACTION == "ADD")
21 {
22 $arFields[$key] = trim($arFields[$key]);
23 if (empty($arFields[$key]))
24 $aMsg[] = array(
25 "id" => $key,
26 "text" => GetMessage("VOTE_FORGOT_".$key));
27// GetMessage("VOTE_FORGOT_SYMBOLIC_NAME");
28// GetMessage("VOTE_FORGOT_TITLE");
29 }
30 }
31 if (is_set($arFields, "SITE") || $ACTION == "ADD")
32 {
33 if (!(is_array($arFields["SITE"]) && !empty($arFields["SITE"])))
34 {
35 $aMsg[] = array(
36 "id" => "SITE",
37 "text" => GetMessage("VOTE_FORGOT_SITE"));
38 }
39 else
40 {
41 reset($arFields["SITE"]);
42 }
43 }
44 if (empty($aMsg) && is_set($arFields, "SYMBOLIC_NAME"))
45 {
46 if (preg_match("/[^a-z_0-9]/is", $arFields["SYMBOLIC_NAME"], $matches))
47 {
48 $aMsg[] = array(
49 "id" => "SYMBOLIC_NAME",
50 "text" => GetMessage("VOTE_INCORRECT_SYMBOLIC_NAME"));
51 }
52 elseif (is_set($arFields, "SITE"))
53 {
55 "ID" => "~".$ID,
56 "SITE" => $arFields["SITE"],
57 "ACTIVE" => "Y",
58 "SID" => $arFields["SYMBOLIC_NAME"],
59 "SID_EXACT_MATCH" => "Y");
61 if ($db_res && ($res = $db_res->Fetch()))
62 {
63 $aMsg[] = array(
64 "id" => "SYMBOLIC_NAME",
65 "text" => str_replace(
66 "#ID#", $res["ID"],
67 GetMessage("VOTE_SYMBOLIC_NAME_ALREADY_IN_USE")));
68 }
69 }
70 if (empty($aMsg))
71 $arFields["SYMBOLIC_NAME"] = mb_strtoupper($arFields["SYMBOLIC_NAME"]);
72 }
73
74 unset($arFields["TIMESTAMP_X"]);
75
76 if (is_set($arFields, "FIRST_SITE_ID") || $ACTION == "ADD")
77 {
78 $arFields["=FIRST_SITE_ID"] = $DB->ForSql($arFields["FIRST_SITE_ID"], 2);
79 unset($arFields["FIRST_SITE_ID"]);
80 }
81
82 if (is_set($arFields, "C_SORT") || $ACTION == "ADD") $arFields["C_SORT"] = trim($arFields["C_SORT"]);
83 foreach(array("ACTIVE", "HIDDEN", "VOTE_SINGLE", "USE_CAPTCHA") as $key)
84 if (is_set($arFields, $key) || $ACTION == "ADD") $arFields[$key] = ($arFields[$key] == "Y" ? "Y" : "N");
85
86 if(!empty($aMsg))
87 {
88 $e = new CAdminException($aMsg);
89 $APPLICATION->ThrowException($e);
90 return false;
91 }
92 return true;
93 }
94
95 public static function Add($arFields)
96 {
97 global $DB;
98
99 if (!self::CheckFields("ADD", $arFields))
100 return false;
101/***************** Event onBeforeMessageAdd ************************/
102 foreach (GetModuleEvents("vote", "onBeforeVoteChannelAdd", true) as $arEvent)
103 if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
104 return false;
105/***************** /Event ******************************************/
106 if ($DB->type == "ORACLE")
107 $arFields["ID"] = $DB->NextID("SQ_B_VOTE_CHANNEL");
108
109 $arInsert = $DB->PrepareInsert("b_vote_channel", $arFields);
110
111 $strSql = "INSERT INTO b_vote_channel (".$arInsert[0].", TIMESTAMP_X) ".
112 "VALUES(".$arInsert[1].", ".$DB->GetNowFunction().")";
113
114 $DB->Query($strSql);
115
116 $ID = intval($DB->type == "ORACLE" ? $arFields["ID"] : $DB->LastID());
117
118 if ($ID > 0)
119 {
120 foreach ($arFields["SITE"] as $sid)
121 {
122 $strSql = "INSERT INTO b_vote_channel_2_site (CHANNEL_ID, SITE_ID) ".
123 "VALUES ($ID, '".$DB->ForSql($sid, 2)."')";
124 $DB->Query($strSql);
125 }
126 }
127 if (is_array($arFields["GROUP_ID"]) && !empty($arFields["GROUP_ID"]))
129/***************** Events onAfterMessageAdd ************************/
130 foreach (GetModuleEvents("vote", "onAfterVoteChannelAdd", true) as $arEvent)
132/***************** /Events *****************************************/
133
134 return $ID;
135 }
136
137 public static function Update($ID, $arFields)
138 {
139 global $DB;
140 if (!self::CheckFields("UPDATE", $arFields, $ID))
141 return false;
142 $ID = intval($ID);
143 /***************** Event onBeforeMessageAdd ************************/
144 foreach (GetModuleEvents("vote", "onBeforeVoteChannelUpdate", true) as $arEvent)
145 if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
146 return false;
147 /***************** /Event ******************************************/
148
149 $strUpdate = $DB->PrepareUpdate("b_vote_channel", $arFields);
150
151 $strSql = "UPDATE b_vote_channel SET ".$strUpdate." WHERE ID=".$ID;
152 $DB->Query($strSql);
153
154 if (!empty($arFields["SITE"]))
155 {
156 $DB->Query("DELETE FROM b_vote_channel_2_site WHERE CHANNEL_ID=".$ID);
157 foreach ($arFields["SITE"] as $sid)
158 {
159 $strSql = "INSERT INTO b_vote_channel_2_site (CHANNEL_ID, SITE_ID) ".
160 "VALUES ($ID, '".$DB->ForSql($sid, 2)."')";
161 $DB->Query($strSql);
162 }
163 }
164 if (is_array($arFields["GROUP_ID"]) && !empty($arFields["GROUP_ID"]))
166 /***************** Events onAfterMessageAdd ************************/
167 foreach (GetModuleEvents("vote", "onAfterVoteChannelUpdate", true) as $arEvent)
169 /***************** /Events *****************************************/
170
171 return $ID;
172 }
173
174 public static function SetAccessPermissions($ID, $arGroups)
175 {
176 global $DB;
177 $ID = intval($ID);
178 $arGroups = (is_array($arGroups) ? $arGroups : array());
179 $arMainGroups = array();
180 if ($ID <= 0 || empty($arGroups))
181 return false;
182
183 $db_res = CGroup::GetList("ID", "ASC");
184 if ($db_res && $res = $db_res->Fetch())
185 {
186 do
187 {
188 $arMainGroups[$res["ID"]] = $res["ID"];
189 } while ($res = $db_res->Fetch());
190 $arGroups = array_intersect_key($arGroups, $arMainGroups);
191
192 $DB->Query(
193 "DELETE FROM b_vote_channel_2_group WHERE CHANNEL_ID=".$ID);
194
195 foreach ($arGroups as $key => $val)
196 {
197 $key = intval($key); $val = intval($val);
198 if ($key <= 1 || !in_array($val, $GLOBALS["aVotePermissions"]["reference_id"]))
199 continue;
201 "CHANNEL_ID" => $ID,
202 "GROUP_ID" => $key,
203 "PERMISSION" => "'".$val."'");
204 $DB->Insert("b_vote_channel_2_group", $arFields, "File: ".__FILE__."<br>Line: ".__LINE__);
205 }
206 }
207 return true;
208 }
209
210 public static function GetList($by = 's_id', $order = 'desc', $arFilter = [])
211 {
212 global $DB;
213
214 $arSqlSearch = Array();
215 $left_join = "";
216 if (is_array($arFilter))
217 {
218 foreach ($arFilter as $key => $val)
219 {
220 if(is_array($val))
221 {
222 if(count($val) <= 0)
223 continue;
224 }
225 else
226 {
227 if( ((string)$val == '') || ($val === "NOT_REF") )
228 continue;
229 }
230 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
231 $key = strtoupper($key);
232 switch($key)
233 {
234 case "ID":
235 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
236 $arSqlSearch[] = GetFilterQuery("C.ID",$val,$match);
237 break;
238 case "SITE_ID":
239 case "SITE":
240 if (is_array($val)) $val = implode(" | ", $val);
241 $match = (isset($arFilter[$key."_EXACT_MATCH"]) && $arFilter[$key."_EXACT_MATCH"]==="N" && $match_value_set) ? "Y" : "N";
242 $arSqlSearch[] = GetFilterQuery("CS.SITE_ID", $val, $match);
243 $left_join = "LEFT JOIN b_vote_channel_2_site CS ON (C.ID = CS.CHANNEL_ID)";
244 break;
245 case "TITLE":
246 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
247 $arSqlSearch[] = GetFilterQuery("C.TITLE",$val,$match);
248 break;
249 case "SID":
250 case "SYMBOLIC_NAME":
251 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
252 $arSqlSearch[] = GetFilterQuery("C.SYMBOLIC_NAME",$val,$match);
253 break;
254 case "HIDDEN":
255 case "ACTIVE":
256 $arSqlSearch[] = ($val=="Y") ? "C.".$key."='Y'" : "C.".$key."='N'";
257 break;
258 case "FIRST_SITE_ID":
259 case "LID":
260 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
261 $arSqlSearch[] = GetFilterQuery("C.FIRST_SITE_ID",$val,$match);
262 break;
263 }
264 }
265 }
266
267 if ($by == "s_id") $strSqlOrder = "ORDER BY C.ID";
268 elseif ($by == "s_timestamp") $strSqlOrder = "ORDER BY C.TIMESTAMP_X";
269 elseif ($by == "s_c_sort") $strSqlOrder = "ORDER BY C.C_SORT";
270 elseif ($by == "s_active") $strSqlOrder = "ORDER BY C.ACTIVE";
271 elseif ($by == "s_hidden") $strSqlOrder = "ORDER BY C.HIDDEN";
272 elseif ($by == "s_symbolic_name") $strSqlOrder = "ORDER BY C.SYMBOLIC_NAME";
273 elseif ($by == "s_title") $strSqlOrder = "ORDER BY C.TITLE ";
274 elseif ($by == "s_votes") $strSqlOrder = "ORDER BY VOTES";
275 else
276 {
277 $strSqlOrder = "ORDER BY C.ID";
278 }
279
280 if ($order != "asc")
281 {
282 $strSqlOrder .= " desc ";
283 }
284
285 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
286 $strSql = "
287 SELECT CC.*, C.*, C.FIRST_SITE_ID LID, C.SYMBOLIC_NAME SID,
288 ".$DB->DateToCharFunction("C.TIMESTAMP_X")." TIMESTAMP_X
289 FROM (
290 SELECT C.ID, count(V.ID) VOTES
291 FROM b_vote_channel C
292 LEFT JOIN b_vote V ON (V.CHANNEL_ID = C.ID)
293 ".$left_join."
294 WHERE ".$strSqlSearch."
295 GROUP BY C.ID) CC
296 INNER JOIN b_vote_channel C ON (C.ID = CC.ID)
297 ".$strSqlOrder;
298
299 if (VOTE_CACHE_TIME===false || mb_strpos($_SERVER['REQUEST_URI'], '/bitrix/admin/') !== false)
300 {
301 $res = $DB->Query($strSql);
302 return $res;
303 }
304 else
305 {
306 global $CACHE_MANAGER;
307 $md5 = md5($strSql);
308 $arCache = array();
309 if($CACHE_MANAGER->Read(VOTE_CACHE_TIME, "b_vote_channel_".$md5, "b_vote_channel"))
310 {
311 $arCache = $CACHE_MANAGER->Get("b_vote_channel_".$md5);
312 }
313 else
314 {
315 $res = $DB->Query($strSql);
316 while($ar = $res->Fetch())
317 $arCache[] = $ar;
318
319 $CACHE_MANAGER->Set("b_vote_channel_".$md5, $arCache);
320 }
321
322 $r = new CDBResult();
323 $r->InitFromArray($arCache);
324 unset($arCache);
325 return $r;
326 }
327 }
328
329 public static function GetSiteArray($CHANNEL_ID)
330 {
331 global $DB;
332
333 $CHANNEL_ID = intval($CHANNEL_ID);
334 if ($CHANNEL_ID<=0) return false;
335
336 $arCache = Array();
337
338 if (VOTE_CACHE_TIME===false)
339 {
340 $arrRes = array();
341 $rs = $DB->Query("SELECT CS.SITE_ID FROM b_vote_channel_2_site CS WHERE CS.CHANNEL_ID = ".$CHANNEL_ID);
342 while ($ar = $rs->Fetch()) $arrRes[] = $ar["SITE_ID"];
343 return $arrRes;
344 }
345 else
346 {
347 global $CACHE_MANAGER;
348 if($CACHE_MANAGER->Read(VOTE_CACHE_TIME, "b_vote_channel_2_site", "b_vote_channel_2_site"))
349 {
350 $arCache = $CACHE_MANAGER->Get("b_vote_channel_2_site");
351 }
352 else
353 {
354 $rs = $DB->Query('SELECT * '.'FROM b_vote_channel_2_site');
355 while ($ar = $rs->Fetch())
356 $arCache[$ar["CHANNEL_ID"]][] = $ar["SITE_ID"];
357
358 $CACHE_MANAGER->Set("b_vote_channel_2_site", $arCache);
359 }
360 if (array_key_exists($CHANNEL_ID, $arCache))
361 return $arCache[$CHANNEL_ID];
362 else
363 return array();
364 }
365
366 }
367
368 public static function Delete($ID)
369 {
370 global $DB;
371
372 $ID = intval($ID);
373 if ($ID <= 0):
374 return true;
375 endif;
376 /***************** Event onBeforeVoteChannelDelete ******************/
377 foreach (GetModuleEvents("vote", "onBeforeVoteChannelDelete", true) as $arEvent)
378 if (ExecuteModuleEventEx($arEvent, array(&$ID)) === false)
379 return false;
380 /***************** /Event ******************************************/
381
382 // drop votes
383 $z = $DB->Query("SELECT ID FROM b_vote WHERE CHANNEL_ID='$ID'");
384 while ($zr = $z->Fetch()) CVote::Delete($zr["ID"]);
385
386 $DB->Query("DELETE FROM b_vote_channel_2_group WHERE CHANNEL_ID=".$ID);
387 $DB->Query("DELETE FROM b_vote_channel_2_site WHERE CHANNEL_ID=".$ID);
388 $res = $DB->Query("DELETE FROM b_vote_channel WHERE ID=".$ID);
389 /***************** Event onAfterVoteChannelDelete ******************/
390 foreach (GetModuleEvents("vote", "onAfterVoteChannelDelete", true) as $arEvent)
391 ExecuteModuleEventEx($arEvent, array($ID));
392 /***************** /Event ******************************************/
393 return $res;
394 }
395
396 public static function GetByID($ID)
397 {
398 $ID = intval($ID);
399 if ($ID <= 0)
400 return false;
401 $res = CVoteChannel::GetList('', '', array("ID" => $ID));
402 return $res;
403 }
404
405 public static function GetArrayGroupPermission($channel_id)
406 {
407 global $DB;
408
409 $strSql =
410 "SELECT * ".
411 "FROM b_vote_channel_2_group ".
412 "WHERE CHANNEL_ID = '".intval($channel_id)."'";
413
414 $dbres = $DB->Query($strSql);
415 $arRes = Array();
416 while($res = $dbres->Fetch())
417 $arRes[$res["GROUP_ID"]] = $res["PERMISSION"];
418
419 return $arRes;
420
421 }
422
423 public static function GetGroupPermission($channel_id, $arGroups=false, $params = array())
424 {
426
427 $channel_id = trim($channel_id);
428 $arGroups = ($arGroups === false ? $USER->GetUserGroupArray() : $arGroups);
429 $arGroups = ((!is_array($arGroups) || empty($arGroups)) ? array(2) : $arGroups);
430 $groups = implode(",", $arGroups);
431 $params = is_array($params) ? $params : array("get_from_database" => $params);
432
433 $cache = array(
434 "channel_id" => $channel_id,
435 "groups" => $arGroups,
436 "get_from_database" => $params["get_from_database"] ?? null);
437 $cache_id = "b_vote_perm_".md5(serialize($cache));
438 $permission = 0;
439
440 if (VOTE_CACHE_TIME !== false && $CACHE_MANAGER->Read(VOTE_CACHE_TIME, $cache_id, "b_vote_perm"))
441 {
442 $permission = intval($CACHE_MANAGER->Get($cache_id));
443 }
444 else
445 {
446 if ($params["get_from_database"] ?? null != "Y")
447 $permission = ((in_array(1, $USER->GetUserGroupArray()) || $APPLICATION->GetGroupRight("vote") >= "W") ? 4 : $permission);
448
449 if ($permission <= 0 && !empty($groups))
450 {
451 $strSql =
452 "SELECT BVC2G.CHANNEL_ID, BVC.SYMBOLIC_NAME CHANNEL_SID, MAX(BVC2G.PERMISSION) as PERMISSION
453 FROM b_vote_channel_2_group BVC2G
454 INNER JOIN b_vote_channel BVC ON (BVC2G.CHANNEL_ID = BVC.ID)
455 WHERE ".((!isset($params["CHANNEL_SID"]) || $params["CHANNEL_SID"] !== "Y") ? "BVC2G.CHANNEL_ID" : "BVC.SYMBOLIC_NAME").
456 "='".$DB->ForSql($channel_id)."' and GROUP_ID in ($groups)
457 GROUP BY BVC2G.CHANNEL_ID, BVC.SYMBOLIC_NAME";
458 $db_res = $DB->Query($strSql);
459 if ($db_res && ($res = $db_res->Fetch()))
460 {
461 $permission = intval($res["PERMISSION"]);
462 if (VOTE_CACHE_TIME !== false)
463 {
464 $cache["channel_id"] = $res["CHANNEL_SID"];
465 $cache_id = "b_vote_perm_".md5(serialize($cache));
466 $CACHE_MANAGER->Set($cache_id, $permission);
467 $cache["channel_id"] = trim($res["CHANNEL_ID"]);
468 }
469 }
470 }
471 if (VOTE_CACHE_TIME !== false)
472 {
473 $cache_id = "b_vote_perm_".md5(serialize($cache));
474 $CACHE_MANAGER->Set($cache_id, $permission);
475 }
476 }
477 return $permission;
478 }
479}
480
482{
483 var $arType = Array();
484
485 public function __construct()
486 {
487 $this->arType = Array(
488 VOTE_DEFAULT_DIAGRAM_TYPE => GetMessage("VOTE_DIAGRAM_TYPE_HISTOGRAM"),
489 "circle" => GetMessage("VOTE_DIAGRAM_TYPE_CIRCLE")
490 );
491 }
492
493 public static function &getInstance()
494 {
495 static $instance;
496 if (!is_object($instance))
498
499 return $instance;
500 }
501
502}
503
505{
506 $strNegative = "N";
507 if (mb_substr($key, 0, 1) == "!")
508 {
509 $key = mb_substr($key, 1);
510 $strNegative = "Y";
511 }
512
513 if (mb_substr($key, 0, 2) == ">=")
514 {
515 $key = mb_substr($key, 2);
516 $strOperation = ">=";
517 }
518 elseif (mb_substr($key, 0, 1) == ">")
519 {
520 $key = mb_substr($key, 1);
521 $strOperation = ">";
522 }
523 elseif (mb_substr($key, 0, 2) == "<=")
524 {
525 $key = mb_substr($key, 2);
526 $strOperation = "<=";
527 }
528 elseif (mb_substr($key, 0, 1) == "<")
529 {
530 $key = mb_substr($key, 1);
531 $strOperation = "<";
532 }
533 elseif (mb_substr($key, 0, 1) == "@")
534 {
535 $key = mb_substr($key, 1);
536 $strOperation = "IN";
537 }
538 elseif (mb_substr($key, 0, 1) == "%")
539 {
540 $key = mb_substr($key, 1);
541 $strOperation = "LIKE";
542 }
543 else
544 {
545 $strOperation = "=";
546 }
547
548 return array("FIELD"=>$key, "NEGATIVE"=>$strNegative, "OPERATION"=>$strOperation);
549}
$db_res
Определения options_user_settings.php:8
global $APPLICATION
Определения include.php:80
static GetList($by='c_sort', $order='asc', $arFilter=[], $SHOW_USERS_AMOUNT="N")
Определения group.php:136
Определения channel.php:11
static GetArrayGroupPermission($channel_id)
Определения channel.php:405
static SetAccessPermissions($ID, $arGroups)
Определения channel.php:174
static Delete($ID)
Определения channel.php:368
static Add($arFields)
Определения channel.php:95
static GetByID($ID)
Определения channel.php:396
static GetSiteArray($CHANNEL_ID)
Определения channel.php:329
static CheckFields($ACTION, &$arFields, $ID=0)
Определения channel.php:12
static GetGroupPermission($channel_id, $arGroups=false, $params=array())
Определения channel.php:423
static Update($ID, $arFields)
Определения channel.php:137
static GetList($by='s_id', $order='desc', $arFilter=[])
Определения channel.php:210
static Delete($ID)
Определения vote.php:245
Определения channel.php:482
__construct()
Определения channel.php:485
$arType
Определения channel.php:483
static & getInstance()
Определения channel.php:493
global $CACHE_MANAGER
Определения clear_component_cache.php:7
$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
$arGroups
Определения options.php:1766
$res
Определения filter_act.php:7
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
$zr
Определения options.php:5
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$ACTION
Определения csv_new_setup.php:27
endif
Определения csv_new_setup.php:990
$groups
Определения options.php:30
$z
Определения options.php:31
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$instance
Определения ps_b24_final.php:14
$ar
Определения options.php:199
if(empty($signedUserToken)) $key
Определения quickway.php:257
$md5
Определения result_rec.php:12
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$val
Определения options.php:1793
$matches
Определения index.php:22
$arRes
Определения options.php:104
$rs
Определения action.php:82
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
VoteGetFilterOperation($key)
Определения channel.php:504
const VOTE_DEFAULT_DIAGRAM_TYPE
Определения include.php:11