1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
log_events.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/socialnetwork/classes/general/log_events.php");
4
6{
7 /***************************************/
8 /******** DATA MODIFICATION **********/
9 /***************************************/
10 public static function Add($arFields)
11 {
12 global $DB;
13
15
17 return false;
18
19 $arInsert = $DB->PrepareInsert("b_sonet_log_events", $arFields);
21
22 $ID = false;
23 if ($arInsert[0] <> '')
24 {
25 $strSql =
26 "INSERT INTO b_sonet_log_events(".$arInsert[0].") ".
27 "VALUES(".$arInsert[1].")";
28 $DB->Query($strSql);
29
30 $ID = intval($DB->LastID());
31 }
32
33 return $ID;
34 }
35
36 public static function Update($ID, $arFields)
37 {
38 global $DB;
39
40 $ID = intval($ID);
41 if ($ID <= 0)
42 {
43 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_LE_WRONG_PARAMETER_ID"), "ERROR_NO_ID");
44 return false;
45 }
46
48
50 return false;
51
52 $strUpdate = $DB->PrepareUpdate("b_sonet_log_events", $arFields);
54
55 if ($strUpdate <> '')
56 {
57 $strSql =
58 "UPDATE b_sonet_log_events SET ".
59 " ".$strUpdate." ".
60 "WHERE ID = ".$ID." ";
61 $DB->Query($strSql);
62 }
63 else
64 {
65 $ID = False;
66 }
67
68 return $ID;
69 }
70
71 /***************************************/
72 /********** DATA SELECTION ***********/
73 /***************************************/
74 public static function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array(), $arParams = array())
75 {
76 global $DB;
77
78 if (count($arSelectFields) <= 0)
79 $arSelectFields = array("ID", "USER_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "EVENT_ID", "SITE_ID", "MAIL_EVENT", "TRANSPORT", "VISIBLE");
80
81 static $arFields1 = array(
82 "ID" => Array("FIELD" => "LE.ID", "TYPE" => "int"),
83 "USER_ID" => Array("FIELD" => "LE.USER_ID", "TYPE" => "int"),
84 "ENTITY_TYPE" => Array("FIELD" => "LE.ENTITY_TYPE", "TYPE" => "string"),
85 "ENTITY_ID" => Array("FIELD" => "LE.ENTITY_ID", "TYPE" => "int"),
86 "ENTITY_CB" => Array("FIELD" => "LE.ENTITY_CB", "TYPE" => "string"),
87 "ENTITY_MY" => Array("FIELD" => "LE.ENTITY_MY", "TYPE" => "string"),
88 "EVENT_ID" => Array("FIELD" => "LE.EVENT_ID", "TYPE" => "string"),
89 "SITE_ID" => Array("FIELD" => "LE.SITE_ID", "TYPE" => "string"),
90 "MAIL_EVENT" => Array("FIELD" => "LE.MAIL_EVENT", "TYPE" => "string"),
91 "TRANSPORT" => Array("FIELD" => "LE.TRANSPORT", "TYPE" => "string"),
92 "VISIBLE" => Array("FIELD" => "LE.VISIBLE", "TYPE" => "string"),
93 "USER_NAME" => Array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
94 "USER_LAST_NAME" => Array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
95 "USER_LOGIN" => Array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
96 "USER_LID" => Array("FIELD" => "U.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
97 "USER_EMAIL" => Array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
98 "USER_ACTIVE" => Array("FIELD" => "U.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (LE.USER_ID = U.ID)"),
99 );
100
101 if (array_key_exists("GROUP_SITE_ID", $arFilter) || array_key_exists("COMMON_GROUP_SITE_ID", $arFilter))
102 {
103 $arFields["GROUP_SITE_ID"] = Array("FIELD" => "SGS.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G on G.ID = LE.ENTITY_ID LEFT JOIN b_sonet_group_site SGS on SGS.GROUP_ID = G.ID");
104 $arFields["COMMON_GROUP_SITE_ID"] = Array("FIELD" => "SGS.SITE_ID", "TYPE" => "string_or_null", "FROM" => "LEFT JOIN b_sonet_group G ON G.ID = LE.ENTITY_ID LEFT JOIN b_sonet_group_site SGS on SGS.GROUP_ID = G.ID");
105
106 $strDistinct = " DISTINCT ";
107 foreach ($arSelectFields as $i => $strFieldTmp)
108 if (in_array($strFieldTmp, array("GROUP_SITE_ID", "COMMON_GROUP_SITE_ID")))
109 unset($arSelectFields[$i]);
110
111 foreach ($arOrder as $by => $order)
112 if (!in_array($by, $arSelectFields))
113 $arSelectFields[] = $by;
114 }
115 else
116 {
117 $arFields["GROUP_SITE_ID"] = Array("FIELD" => "G.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G on G.ID = LE.ENTITY_ID");
118 $arFields["COMMON_GROUP_SITE_ID"] = Array("FIELD" => "G.SITE_ID", "TYPE" => "string_or_null", "FROM" => "LEFT JOIN b_sonet_group G ON G.ID = LE.ENTITY_ID");
119 $strDistinct = " ";
120 }
121
122 $arFields = array_merge($arFields1, $arFields);
123
124 $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
125
126 if (
127 !empty($arParams)
128 && array_key_exists("ENTITY_TYPE", $arParams)
129 && array_key_exists("ENTITY_ID", $arParams)
130 && array_key_exists("EVENT_ID", $arParams)
131 && (
132 array_key_exists("TRANSPORT", $arParams)
133 || array_key_exists("VISIBLE", $arParams)
134 )
135 )
136 $arSqls["SUBSCRIBE"] = CSocNetLogEvents::GetSQLForEvent(
137 $arParams["ENTITY_TYPE"],
138 $arParams["ENTITY_ID"],
139 $arParams["EVENT_ID"],
140 $arParams["USER_ID"],
141 $arParams["TRANSPORT"],
142 $arParams["VISIBLE"],
143 $arParams["OF_ENTITIES"]
144 );
145
146 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", $strDistinct, $arSqls["SELECT"]);
147
148 if (is_array($arGroupBy) && count($arGroupBy)==0)
149 {
150 $strSql =
151 "SELECT ".$arSqls["SELECT"]." ".
152 "FROM b_sonet_log_events LE ".
153 " ".$arSqls["FROM"]." ";
154 if ($arSqls["WHERE"] <> '')
155 {
156 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
157 if ($arSqls["SUBSCRIBE"] <> '')
158 $strSql .= $arSqls["SUBSCRIBE"]." ";
159 }
160 if ($arSqls["GROUPBY"] <> '')
161 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
162
163 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
164
165 $dbRes = $DB->Query($strSql);
166 if ($arRes = $dbRes->Fetch())
167 return $arRes["CNT"];
168 else
169 return False;
170 }
171
172 $strSql =
173 "SELECT ".$arSqls["SELECT"]." ".
174 "FROM b_sonet_log_events LE ".
175 " ".$arSqls["FROM"]." ";
176 if ($arSqls["WHERE"] <> '')
177 {
178 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
179 if (($arSqls["SUBSCRIBE"] ?? '') <> '')
180 {
181 $strSql .= $arSqls["SUBSCRIBE"]." ";
182 }
183 }
184 if ($arSqls["GROUPBY"] <> '')
185 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
186 if ($arSqls["ORDERBY"] <> '')
187 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
188
189 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) <= 0)
190 {
191 $strSql_tmp =
192 "SELECT COUNT('x') as CNT ".
193 "FROM b_sonet_log_events LE ".
194 " ".$arSqls["FROM"]." ";
195 if ($arSqls["WHERE"] <> '')
196 {
197 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
198 if (($arSqls["SUBSCRIBE"] ?? '') <> '')
199 {
200 $strSql .= $arSqls["SUBSCRIBE"]." ";
201 }
202 }
203 if ($arSqls["GROUPBY"] <> '')
204 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
205
206 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
207
208 $dbRes = $DB->Query($strSql_tmp);
209 $cnt = 0;
210 if ($arSqls["GROUPBY"] == '')
211 {
212 if ($arRes = $dbRes->Fetch())
213 $cnt = $arRes["CNT"];
214 }
215 else
216 {
217 // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД
218 $cnt = $dbRes->SelectedRowsCount();
219 }
220
221 $dbRes = new CDBResult();
222
223 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
224
225 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
226 }
227 else
228 {
229 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) > 0)
230 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
231
232 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
233
234 $dbRes = $DB->Query($strSql);
235 }
236
237 return $dbRes;
238 }
239
240 public static function GetUserLogEvents($userID, $arFilter = array())
241 {
242 global $DB;
244 $helper = $connection->getSqlHelper();
245
246 $userID = (int)$userID;
247 if ($userID <= 0)
248 {
249 return false;
250 }
251
252 $strWhere = "";
253 if (is_array($arFilter) && count($arFilter) > 0)
254 {
255 foreach ($arFilter as $key => $value)
256 {
257 switch ($key)
258 {
259 case "ENTITY_TYPE":
260 $strWhere .= " AND L.ENTITY_TYPE = '".$DB->ForSql($value, 1)."' ";
261 break;
262 case "ENTITY_ID":
263 $strWhere .= " AND L.ENTITY_ID = ". (int)$value ." ";
264 break;
265 case "EVENT_ID":
266 if (!is_array($value))
267 {
268 $strWhere .= " AND L.EVENT_ID = '" . $DB->ForSql($value, 50) . "' ";
269 }
270 else
271 {
272 if (!function_exists('__tmp_str_apos'))
273 {
274 function __tmp_str_apos(&$tmpval, $tmpind)
275 {
276 if ($tmpval <> '')
277 {
278 $tmpval = "'" . $GLOBALS["DB"]->ForSql($tmpval, 50) . "'";
279 }
280 }
281 }
282 array_walk($value, '__tmp_str_apos');
283 $strWhere .= " AND L.EVENT_ID IN (".implode(", ", $value).") ";
284 }
285 break;
286 case "LOG_DATE_DAYS":
287 $strWhere .= " AND L.LOG_DATE >= " . $helper->addDaysToDateTime(-(int)$value) . " ";
288 break;
289 case "SITE_ID":
290 if (!is_array($value)):
291 $strWhere .= " AND L.SITE_ID = '".$DB->ForSql($value, 2)."' ";
292 else:
293 $counter = 0;
294 $strWhere .= " AND (";
295 foreach($value as $site_id):
296 if ($site_id === false)
297 {
298 $strWhere .= ($counter > 0 ? " OR" : "") . " L.SITE_ID IS NULL ";
299 }
300 else
301 {
302 $strWhere .= ($counter > 0 ? " OR" : "") . " L.SITE_ID = '" . $DB->ForSql($site_id, 2) . "' ";
303 }
304 $counter++;
306 $strWhere .= ") ";
307 endif;
308 break;
309 }
310 }
311 }
312
313 $strSql =
314 "SELECT L.ID, L.ENTITY_TYPE, L.ENTITY_ID, L.EVENT_ID, L.LOG_DATE, L.SITE_ID as SITE_ID, ".
315 " ".$DB->DateToCharFunction("L.LOG_DATE", "FULL")." as LOG_DATE_FORMAT, ".
316 " L.TITLE_TEMPLATE, L.TITLE, L.MESSAGE, L.URL, L.MODULE_ID, L.CALLBACK_FUNC, ".
317 " G.NAME as GROUP_NAME, G.OWNER_ID as GROUP_OWNER_ID, G.INITIATE_PERMS as GROUP_INITIATE_PERMS, ".
318 " G.VISIBLE as GROUP_VISIBLE, G.OPENED as GROUP_OPENED, ".
319 " U.NAME as USER_NAME, U.LAST_NAME as USER_LAST_NAME, U.SECOND_NAME as USER_SECOND_NAME, U.LOGIN as USER_LOGIN ".
320 "FROM b_sonet_log L ";
321
322 if (!Array_Key_Exists("ALL", $arFilter) || mb_strtoupper($arFilter["ALL"]) != "Y")
323 {
324 $strSql .=
325 " INNER JOIN b_sonet_log_events LE ".
326 " ON (L.ENTITY_TYPE = LE.ENTITY_TYPE AND L.ENTITY_ID = LE.ENTITY_ID AND (L.EVENT_ID = LE.EVENT_ID OR ((L.EVENT_ID = 'blog_post' OR L.EVENT_ID = 'blog_comment' OR L.EVENT_ID = 'blog_post_micro') AND LE.EVENT_ID = 'blog'))) ";
327 }
328 $strSql .=
329 " LEFT JOIN b_sonet_group G ".
330 " ON (L.ENTITY_TYPE = 'G' AND L.ENTITY_ID = G.ID) ".
331 " LEFT JOIN b_user U ".
332 " ON (L.ENTITY_TYPE = 'U' AND L.ENTITY_ID = U.ID) ".
333 "WHERE 1 = 1 ";
334 if (!Array_Key_Exists("ALL", $arFilter) || mb_strtoupper($arFilter["ALL"]) != "Y")
335 $strSql .= " AND LE.USER_ID = ".$userID." ";
336
337 $strSql .=
338 $strWhere.
339 "ORDER BY L.LOG_DATE DESC";
340
341 $dbRes = $DB->Query($strSql);
342
343 return $dbRes;
344 }
345}
$arParams
Определения access_dialog.php:21
$connection
Определения actionsdefinitions.php:38
static getConnection($name="")
Определения application.php:638
static processEqualityFieldsToUpdate($fields1, &$update)
Определения util.php:239
static getEqualityFields(&$fields)
Определения util.php:207
static processEqualityFieldsToInsert($fields1, &$insert)
Определения util.php:222
static CheckFields($ACTION, &$arFields, $ID=0)
Определения log_events.php:10
static GetSQLForEvent($entity_type, $entity_id, $event_id, $user_id, $transport=false, $visible=true, $arOfEntities=array())
Определения log_events.php:675
Определения log_events.php:6
static Add($arFields)
Определения log_events.php:10
static GetUserLogEvents($userID, $arFilter=array())
Определения log_events.php:240
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arParams=array())
Определения log_events.php:74
static Update($ID, $arFields)
Определения log_events.php:36
$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
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
endif
Определения csv_new_setup.php:990
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
$counter
Определения options.php:5
global_menu_<?echo $menu["menu_id"]?> adm main menu item icon adm main menu item text text adm main menu hover adm submenu menucontainer menu_id menu_id items_id items_id desktop menu_id block none adm global submenu<?=($subMenuDisplay=="block" ? " adm-global-submenu-active" :"")?> global_submenu_<?echo $menu["menu_id"]?> text MAIN_PR_ADMIN_FAV items adm submenu items wrap adm submenu items stretch wrap BX adminMenu itemsStretchScroll()"> <table class if (!empty( $menu["items"])) elseif ( $menu[ 'menu_id']=='desktop') if ( $menu[ 'menu_id']=='desktop') endforeach
Определения prolog_main_admin.php:255
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
$arRes
Определения options.php:104
$site_id
Определения sonet_set_content_view.php:9
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168