1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
log.php
См. документацию.
1<?php
2
5
6Loc::loadMessages(__FILE__);
7
9{
10 /***************************************/
11 /******** DATA MODIFICATION **********/
12 /***************************************/
13 public static function CheckFields($ACTION, &$arFields, $ID = 0)
14 {
15 static $arSiteWorkgroupsPage;
16
18
19 if (
20 !$arSiteWorkgroupsPage
21 && IsModuleInstalled("extranet")
22 && isset($arFields["ENTITY_TYPE"])
23 && $arFields["ENTITY_TYPE"] === SONET_ENTITY_GROUP)
24 {
25 $rsSite = CSite::GetList("sort", "desc", Array("ACTIVE" => "Y"));
26 while($arSite = $rsSite->Fetch())
27 {
28 $arSiteWorkgroupsPage[$arSite["ID"]] = COption::GetOptionString("socialnetwork", "workgroups_page", $arSite["DIR"]."workgroups/", $arSite["ID"]);
29 }
30 }
31
32 if ($ACTION !== "ADD" && (int)$ID <= 0)
33 {
34 $APPLICATION->ThrowException("System error 870164", "ERROR");
35 return false;
36 }
37
38 $newEntityType = '';
39
40 if ((is_set($arFields, "ENTITY_TYPE") || $ACTION === "ADD") && (string)$arFields["ENTITY_TYPE"] === '')
41 {
42 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_EMPTY_ENTITY_TYPE"), "EMPTY_ENTITY_TYPE");
43 return false;
44 }
45
46 if (is_set($arFields, "ENTITY_TYPE"))
47 {
48 if (!in_array((string)$arFields["ENTITY_TYPE"], CSocNetAllowed::GetAllowedEntityTypes(), true))
49 {
50 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_NO_ENTITY_TYPE"), "ERROR_NO_ENTITY_TYPE");
51 return false;
52 }
53
54 $newEntityType = (string)$arFields["ENTITY_TYPE"];
55 }
56
57 if ((is_set($arFields, "ENTITY_ID") || $ACTION === "ADD") && (int)$arFields["ENTITY_ID"] <= 0)
58 {
59 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_EMPTY_ENTITY_ID"), "EMPTY_ENTITY_ID");
60 return false;
61 }
62
63 if (is_set($arFields, "ENTITY_ID"))
64 {
65 if ($newEntityType === '' && $ID > 0)
66 {
67 $arRe = self::GetByID($ID);
68 if ($arRe)
69 {
70 $newEntityType = (string)$arRe["ENTITY_TYPE"];
71 }
72 }
73 if ($newEntityType === '')
74 {
75 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_CALC_ENTITY_TYPE"), "ERROR_CALC_ENTITY_TYPE");
76 return false;
77 }
78
79 if ($newEntityType === SONET_ENTITY_GROUP)
80 {
81 if (!CSocNetGroup::GetByID($arFields["ENTITY_ID"]))
82 {
83 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_NO_ENTITY_ID"), "ERROR_NO_ENTITY_ID");
84 return false;
85 }
86 }
87 elseif ($newEntityType === SONET_ENTITY_USER)
88 {
89 $dbResult = CUser::GetByID($arFields["ENTITY_ID"]);
90 if (!$dbResult->Fetch())
91 {
92 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_NO_ENTITY_ID"), "ERROR_NO_ENTITY_ID");
93 return false;
94 }
95 }
96 }
97
98 if (
99 $ACTION === "ADD"
100 && (
101 !is_set($arFields, "SITE_ID")
102 || (
103 (is_array($arFields["SITE_ID"]) && count($arFields["SITE_ID"]) <= 0)
104 || (!is_array($arFields["SITE_ID"]) && $arFields["SITE_ID"] == '')
105 )
106 )
107 )
108 {
109 if ($newEntityType === SONET_ENTITY_GROUP)
110 {
111 $arSites = array();
112 $rsGroupSite = CSocNetGroup::GetSite($arFields["ENTITY_ID"]);
113 while($arGroupSite = $rsGroupSite->Fetch())
114 {
115 $arSites[] = $arGroupSite["LID"];
116 }
117 $arFields["SITE_ID"] = $arSites;
118 }
119 else
120 {
121 $arFields["SITE_ID"] = array(SITE_ID);
122 }
123 }
124
125 if (
126 isset($arFields["TAG"])
127 && !is_array($arFields["TAG"])
128 )
129 {
130 $arFields["TAG"] = array($arFields["TAG"]);
131 }
132
133 if ((is_set($arFields, "EVENT_ID") || $ACTION === "ADD") && $arFields["EVENT_ID"] == '')
134 {
135 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_EMPTY_EVENT_ID"), "EMPTY_EVENT_ID");
136 return false;
137 }
138
139 if (is_set($arFields, "EVENT_ID"))
140 {
141 $arFields["EVENT_ID"] = mb_strtolower($arFields["EVENT_ID"]);
143 $arFields["EVENT_ID"],
144 $arFields["ENTITY_TYPE"] ?? false
145 );
146 if (!$arEvent)
147 {
148 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_NO_FEATURE_ID"), "ERROR_NO_FEATURE");
149 return false;
150 }
151 }
152
153 if (is_set($arFields, "USER_ID"))
154 {
155 $res = CUser::getList(
156 'ID',
157 'ASC',
158 ['ID_EQUAL_EXACT' => $arFields["USER_ID"]],
159 ['FIELDS' => ['ID']],
160 );
161 if (!$res->fetch())
162 {
163 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID");
164 return false;
165 }
166 }
167
168 if (is_set($arFields, "LOG_DATE") && (!$DB->IsDate($arFields["LOG_DATE"], false, LANG, "FULL")))
169 {
170 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_EMPTY_DATE_CREATE"), "EMPTY_LOG_DATE");
171 return false;
172 }
173
174 if ((is_set($arFields, "TITLE") || $ACTION === "ADD") && $arFields["TITLE"] == '')
175 {
176 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_EMPTY_TITLE"), "EMPTY_TITLE");
177 return false;
178 }
179
180 if ((is_set($arFields, "TITLE") || $ACTION === "ADD") && is_string($arFields['TITLE'] ?? null))
181 {
183 }
184
185 if (
186 isset($arFields["CONTEXT_USER_ID"])
187 && (int)$arFields["CONTEXT_USER_ID"] > 0
188 )
189 {
190 $contextUserId = (int)$arFields["CONTEXT_USER_ID"];
191 }
192 elseif (
193 isset($arFields["USER_ID"])
194 && (int)$arFields["USER_ID"] > 0
195 )
196 {
197 $contextUserId = (int)$arFields["USER_ID"];
198 }
199 else
200 {
201 $contextUserId = false;
202 }
203
204 if (!$USER_FIELD_MANAGER->CheckFields("SONET_LOG", $ID, $arFields, $contextUserId))
205 {
206 return false;
207 }
208
209 if (
210 is_array($arSiteWorkgroupsPage)
211 && isset($arFields["URL"]))
212 {
213 foreach($arSiteWorkgroupsPage as $groups_page)
214 {
215 if (mb_strpos($arFields["URL"], $groups_page) === 0)
216 {
217 $arFields["URL"] = "#GROUPS_PATH#".mb_substr($arFields["URL"], mb_strlen($groups_page));
218 }
219 }
220 }
221
222 return True;
223 }
224
225 /***************************************/
226 /********** DATA SELECTION ***********/
227 /***************************************/
228 public static function GetByID($ID)
229 {
230 global $APPLICATION;
231
232 $ID = (int)$ID;
233 if ($ID <= 0)
234 {
235 $APPLICATION->ThrowException(Loc::getMessage("SONET_GL_WRONG_PARAMETER_ID"), "ERROR_NO_ID");
236 return false;
237 }
238
239 $dbResult = CSocNetLog::GetList(Array(), Array("ID" => $ID));
240 if ($arResult = $dbResult->GetNext())
241 {
242 return $arResult;
243 }
244
245 return False;
246 }
247
248 public static function MakeTitle($titleTemplate, $title, $url = '', $bHtml = true)
249 {
250 $url = (string)$url;
251 $titleTemplate = (string)$titleTemplate;
252
253 if ($url !== '')
254 {
255 $title = (
256 $bHtml
257 ? '<a href="' . $url . '">' . $title . '</a>'
258 : $title . ' [' . $url . ']'
259 );
260 }
261
262 if ($titleTemplate !== '')
263 {
264 return (
265 (mb_strpos($titleTemplate, "#TITLE#") !== false)
266 ? Str_Replace("#TITLE#", $title, $titleTemplate)
267 : $titleTemplate . ' "' . $title . '"'
268 );
269 }
270
271 return $title;
272 }
273
274 /***************************************/
275 /********** SEND EVENTS **************/
276 /***************************************/
280 public static function __InitUserTmp($userID)
281 {
282 return Deprecated\Log::__InitUserTmp($userID);
283 }
284
288 public static function __InitUsersTmp($message, $titleTemplate1, $titleTemplate2)
289 {
290 return Deprecated\Log::__InitUsersTmp($message, $titleTemplate1, $titleTemplate2);
291 }
292
296 public static function __InitGroupTmp($groupID)
297 {
298 return Deprecated\Log::__InitGroupTmp($groupID);
299 }
300
304 public static function __InitGroupsTmp($message, $titleTemplate1, $titleTemplate2)
305 {
306 return Deprecated\Log::__InitGroupsTmp($message, $titleTemplate1, $titleTemplate2);
307 }
308
309 public static function SendEventAgent($ID, $mailTemplate = "SONET_NEW_EVENT"): string
310 {
311 return (
312 CSocNetLog::SendEvent($ID, $mailTemplate, 0, true)
313 ? ""
314 : "CSocNetLog::SendEventAgent(".$ID.", '".$mailTemplate."');"
315 );
316 }
317
318 public static function SendEvent(
319 $ID,
320 $mailTemplate = "SONET_NEW_EVENT",
321 $tmpId = 0,
322 $bAgent = false
323 )
324 {
325 global $APPLICATION;
326
327 $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
328
329 $ID = (int)$ID;
330
331 if ($ID <= 0)
332 {
333 return false;
334 }
335
336 $arFilter = array("ID" => $ID);
337
339 array(),
340 $arFilter,
341 false,
342 false,
343 array("ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "EVENT_ID", "LOG_DATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "SITE_ID", "PARAMS", "SOURCE_ID", "GROUP_NAME", "CREATED_BY_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_LOGIN", "LOG_SOURCE_ID"),
344 array("MIN_ID_JOIN" => true)
345 );
346 $arLog = $dbLog->Fetch();
347 if (!$arLog)
348 {
349 return $bAgent;
350 }
351
352 if (MakeTimeStamp($arLog["LOG_DATE"]) > (time() + CTimeZone::GetOffset()))
353 {
354 $agent = "CSocNetLog::SendEventAgent(".$ID.", '".CUtil::addslashes($mailTemplate)."');";
355 $rsAgents = CAgent::GetList(array("ID"=>"DESC"), array("NAME" => $agent));
356 if(!$rsAgents->Fetch())
357 {
358 $res = CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]);
359 if(!$res)
360 {
361 $APPLICATION->ResetException();
362 }
363 }
364 elseif ($bAgent)
365 {
366 CAgent::RemoveAgent($agent, "socialnetwork");
367 CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]);
368 return true;
369 }
370 return false;
371 }
372
373 $arEvent = CSocNetLogTools::FindLogEventByID($arLog["EVENT_ID"], $arLog["ENTITY_TYPE"]);
374 if (
375 $arEvent
376 && isset($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"])
377 )
378 {
379 $dbSiteCurrent = CSite::GetByID(SITE_ID);
380 if (
381 ($arSiteCurrent = $dbSiteCurrent->Fetch())
382 && $arSiteCurrent["LANGUAGE_ID"] !== LANGUAGE_ID
383 )
384 {
385 $arLog["MAIL_LANGUAGE_ID"] = $arSiteCurrent["LANGUAGE_ID"];
386 }
387
388 $arLog["FIELDS_FORMATTED"] = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arLog, array(), true);
389 }
390
391 if (
392 isset(
393 $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["HAS_MY"],
394 $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["CLASS_OF"],
395 $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["METHOD_OF"]
396 )
397 && $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["HAS_MY"] === "Y"
398 && $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["CLASS_OF"] !== ''
399 && $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["METHOD_OF"] !== ''
400 && method_exists(
401 $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["CLASS_OF"],
402 $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["METHOD_OF"]
403 )
404 )
405 {
406 $arOfEntities = call_user_func(array($arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["CLASS_OF"], $arSocNetAllowedSubscribeEntityTypesDesc[$arLog["ENTITY_TYPE"]]["METHOD_OF"]), $arLog["ENTITY_ID"]);
407 }
408 else
409 {
410 $arOfEntities = false;
411 }
412
413 $hasAccessAll = false;
414
415
416 $arUserIdToPush = ($arFields["USERS_TO_PUSH"] ?? []);
417
419 'ENTITY_ID' => $arLog["ID"],
420 'EVENT_ID' => $arLog["EVENT_ID"],
421 'OF_ENTITIES' => $arOfEntities,
423 'FOR_ALL_ACCESS' => $hasAccessAll,
424 'USERS_TO_PUSH' => (
425 $hasAccessAll
426 || empty($arUserIdToPush)
427 || count($arUserIdToPush) > 20
428 ? []
429 : $arUserIdToPush
430 )
431 ));
432
433 return true;
434 }
435
436 public static function CounterIncrement(
437 $entityId,
438 $eventId = '',
439 $entitiesList = false,
441 $forAllAccess = false,
442 $userIdToPushList = []
443 ): void
444 {
445 if (
446 is_array($entityId)
447 && isset($entityId["ENTITY_ID"])
448 )
449 {
451 $entityId = $arFields["ENTITY_ID"];
452 $eventId = (string)($arFields["EVENT_ID"] ?? '');
454 $forAllAccess = ($arFields["FOR_ALL_ACCESS"] ?? false);
455 $userIdToPushList = ($arFields["USERS_TO_PUSH"] ?? []);
456 $sendToAuthor = (
457 isset($arFields['SEND_TO_AUTHOR'])
458 && $arFields['SEND_TO_AUTHOR'] === 'Y'
459 );
460 }
461 else
462 {
463 $sendToAuthor = false;
464 }
465
466 if ((int)$entityId <= 0)
467 {
468 return;
469 }
470
471 if (
472 $eventId === "tasks"
474 )
475 {
476 return;
477 }
478
479 if (!$forAllAccess)
480 {
481 CUserCounter::IncrementWithSelect(
483 $entityId,
484 [
485 "TYPE" => $type,
486 "FOR_ALL_ACCESS" => false,
487 "MULTIPLE" => "Y",
488 "SET_TIMESTAMP" => "Y",
489 "SEND_TO_AUTHOR" => ($sendToAuthor ? 'Y' : 'N')
490 ]
491 ),
492 false,
493 [
494 'SET_TIMESTAMP' => 'Y',
495 ]
496 );
497 }
498 else // for all, mysql only
499 {
500 $tag = time();
501
502 // don't send to pull for all records
503 CUserCounter::IncrementWithSelect(
505 $entityId,
506 [
507 "TYPE" => $type,
508 "FOR_ALL_ACCESS_ONLY" => true,
509 "TAG_SET" => $tag,
510 "MULTIPLE" => "Y",
511 "SET_TIMESTAMP" => "Y",
512 "SEND_TO_AUTHOR" => ($sendToAuthor ? 'Y' : 'N')
513 ]
514 ),
515 false,
516 [
517 "SET_TIMESTAMP" => "Y",
518 "TAG_SET" => $tag,
519 ]
520 );
521
522 // send to pull discreet records (not for all)
523 CUserCounter::IncrementWithSelect(
525 $entityId,
526 [
527 "TYPE" => $type,
528 "FOR_ALL_ACCESS_ONLY" => false,
529 "MULTIPLE" => "Y",
530 "SET_TIMESTAMP" => "Y",
531 "SEND_TO_AUTHOR" => ($sendToAuthor ? 'Y' : 'N')
532 ]
533 ),
534 true,
535 [
536 "SET_TIMESTAMP" => "Y",
537 "TAG_CHECK" => $tag,
538 ]
539 );
540 }
541
542 if ($eventId === "blog_post_important")
543 {
544 CUserCounter::IncrementWithSelect(
546 $entityId,
547 [
549 "CODE" => "'BLOG_POST_IMPORTANT'",
550 "FOR_ALL_ACCESS" => $forAllAccess,
551 "MULTIPLE" => "N",
552 "SEND_TO_AUTHOR" => ($sendToAuthor ? 'Y' : 'N')
553 ]
554 )
555 );
556 }
557
559 {
561 'commentId' => $entityId
562 ));
563 }
564 }
565
566 public static function CounterDecrement(
567 $logId,
568 $eventId = '',
570 $forAllAccess = false
571 ): void
572 {
573 $logId = (int)$logId;
574 if ($logId <= 0)
575 {
576 return;
577 }
578
579 CUserCounter::IncrementWithSelect(
581 $logId,
582 [
583 "TYPE" => $type,
584 "DECREMENT" => true,
585 "FOR_ALL_ACCESS" => $forAllAccess,
586 ]
587 )
588 );
589
590 if ($eventId === "blog_post_important")
591 {
592 CUserCounter::IncrementWithSelect(
594 $logId,
595 [
597 "CODE" => "'BLOG_POST_IMPORTANT'",
598 "DECREMENT" => true,
599 "FOR_ALL_ACCESS" => $forAllAccess,
600 ]
601 )
602 );
603 }
604 }
605
606 public static function ClearOldAgent()
607 {
608 return "";
609 }
610
611 public static function GetSign($url, $userID = false, $site_id = false)
612 {
613 global $USER;
614
615 if (!$url || trim($url) === '')
616 {
617 return false;
618 }
619
620 if (!$userID)
621 {
622 $userID = $USER->GetID();
623 }
624
625 if ($hash = CUser::GetHitAuthHash($url, $userID))
626 {
627 return $hash;
628 }
629
630 return CUser::AddHitAuthHash($url, $userID, $site_id);
631 }
632
633 public static function OnSocNetLogFormatEvent($arEvent, $arParams)
634 {
635 if (
636 $arEvent["EVENT_ID"] === "system"
637 || $arEvent["EVENT_ID"] === "system_friends"
638 || $arEvent["EVENT_ID"] === "system_groups"
639 )
640 {
641 $arEvent["TITLE_TEMPLATE"] = "";
642 $arEvent["URL"] = "";
643
644 switch ($arEvent["TITLE"])
645 {
646 case "join":
647 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
648 $arEvent["MESSAGE"],
649 Loc::getMessage("SONET_GL_TITLE_JOIN1"),
650 Loc::getMessage("SONET_GL_TITLE_JOIN2"),
652 );
653 $arEvent["TITLE"] = $titleTmp;
654 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
655 break;
656 case "unjoin":
657 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
658 $arEvent["MESSAGE"],
659 Loc::getMessage("SONET_GL_TITLE_UNJOIN1"),
660 Loc::getMessage("SONET_GL_TITLE_UNJOIN2"),
662 );
663 $arEvent["TITLE"] = $titleTmp;
664 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
665 break;
666 case "moderate":
667 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
668 $arEvent["MESSAGE"],
669 Loc::getMessage("SONET_GL_TITLE_MODERATE1"),
670 Loc::getMessage("SONET_GL_TITLE_MODERATE2"),
672 );
673 $arEvent["TITLE"] = $titleTmp;
674 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
675 break;
676 case "unmoderate":
677 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
678 $arEvent["MESSAGE"],
679 Loc::getMessage("SONET_GL_TITLE_UNMODERATE1"),
680 Loc::getMessage("SONET_GL_TITLE_UNMODERATE2"),
682 );
683 $arEvent["TITLE"] = $titleTmp;
684 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
685 break;
686 case "owner":
687 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
688 $arEvent["MESSAGE"],
689 Loc::getMessage("SONET_GL_TITLE_OWNER1"),
690 Loc::getMessage("SONET_GL_TITLE_OWNER1"),
692 );
693 $arEvent["TITLE"] = $titleTmp;
694 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
695 break;
696 case "friend":
697 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
698 $arEvent["MESSAGE"],
699 Loc::getMessage("SONET_GL_TITLE_FRIEND1"),
700 Loc::getMessage("SONET_GL_TITLE_FRIEND1"),
701 $arParams);
702 $arEvent["TITLE"] = $titleTmp;
703 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
704 break;
705 case "unfriend":
706 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
707 $arEvent["MESSAGE"],
708 Loc::getMessage("SONET_GL_TITLE_UNFRIEND1"),
709 Loc::getMessage("SONET_GL_TITLE_UNFRIEND1"),
711 );
712 $arEvent["TITLE"] = $titleTmp;
713 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
714 break;
715 case "group":
716 [$titleTmp, $messageTmp] = CSocNetLog::InitGroupsTmp(
717 $arEvent["MESSAGE"],
718 Loc::getMessage("SONET_GL_TITLE_GROUP1"),
719 Loc::getMessage("SONET_GL_TITLE_GROUP1"),
721 );
722 $arEvent["TITLE"] = $titleTmp;
723 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
724 break;
725 case "ungroup":
726 [$titleTmp, $messageTmp] = CSocNetLog::InitGroupsTmp(
727 $arEvent["MESSAGE"],
728 Loc::getMessage("SONET_GL_TITLE_UNGROUP1"),
729 Loc::getMessage("SONET_GL_TITLE_UNGROUP1"),
731 );
732 $arEvent["TITLE"] = $titleTmp;
733 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
734 break;
735 case "exclude_user":
736 [$titleTmp, $messageTmp] = CSocNetLog::InitGroupsTmp(
737 $arEvent["MESSAGE"],
738 Loc::getMessage("SONET_GL_TITLE_EXCLUDE_USER1"),
739 Loc::getMessage("SONET_GL_TITLE_EXCLUDE_USER1"),
741 );
742 $arEvent["TITLE"] = $titleTmp;
743 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
744 break;
745 case "exclude_group":
746 [$titleTmp, $messageTmp] = CSocNetLog::InitUsersTmp(
747 $arEvent["MESSAGE"],
748 Loc::getMessage("SONET_GL_TITLE_EXCLUDE_GROUP1"),
749 Loc::getMessage("SONET_GL_TITLE_EXCLUDE_GROUP1"),
751 );
752 $arEvent["TITLE"] = $titleTmp;
753 $arEvent["MESSAGE_FORMAT"] = $messageTmp;
754 break;
755 default:
756 break;
757 }
758 }
759 return $arEvent;
760 }
761
762 public static function InitUserTmp($userID, $arParams, $bCurrentUserIsAdmin = "unknown", $bRSS = false)
763 {
764 global $USER;
765
766 $title = "";
767 $message = "";
768 $bUseLogin = ($arParams['SHOW_LOGIN'] !== "N");
769
770 $dbUser = CUser::GetByID($userID);
771 if ($arUser = $dbUser->Fetch())
772 {
773 if ($bCurrentUserIsAdmin === "unknown")
774 {
775 $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin();
776 }
777
778 $canViewProfile = CSocNetUserPerms::CanPerformOperation($USER->GetID(), $arUser["ID"], "viewprofile", $bCurrentUserIsAdmin);
779 $pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUser["ID"]));
780
781 if (!$bRSS && $canViewProfile)
782 {
783 $title .= "<a href=\"".$pu."\">";
784 }
785
786 $title .= CUser::FormatName($arParams['NAME_TEMPLATE'], $arUser, $bUseLogin);
787 if (!$bRSS && $canViewProfile)
788 {
789 $title .= "</a>";
790 }
791
792 if ((int)$arUser["PERSONAL_PHOTO"] <= 0)
793 {
794 switch ($arUser["PERSONAL_GENDER"])
795 {
796 case "M":
797 $suffix = "male";
798 break;
799 case "F":
800 $suffix = "female";
801 break;
802 default:
803 $suffix = "unknown";
804 }
805 $arUser["PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID);
806 }
807 $arImage = CSocNetTools::InitImage($arUser["PERSONAL_PHOTO"], 100, "/bitrix/images/socialnetwork/nopic_user_100.gif", 100, $pu, $canViewProfile);
808
809 $message = $arImage["IMG"];
810 }
811
812 return array($title, $message);
813 }
814
815 public static function InitUsersTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bCurrentUserIsAdmin = "unknown", $bRSS = false)
816 {
817 $arUsersID = explode(",", $message);
818
819 $message = "";
820 $title = "";
821
822 $bFirst = true;
823 $count = 0;
824
825 if ($bCurrentUserIsAdmin === "unknown")
826 {
827 $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin();
828 }
829
830 foreach ($arUsersID as $userID)
831 {
832 [ $titleTmp, $messageTmp ] = self::InitUserTmp($userID, $arParams, $bCurrentUserIsAdmin, $bRSS);
833
834 $titleTmp = (string)$titleTmp;
835 $messageTmp = (string)$messageTmp;
836
837 if ($titleTmp !== '')
838 {
839 if (!$bFirst)
840 {
841 $title .= ", ";
842 }
843 $title .= $titleTmp;
844 $count++;
845 }
846
847 if ($messageTmp !== '')
848 {
849 if (!$bFirst)
850 {
851 $message .= " ";
852 }
853 $message .= $messageTmp;
854 }
855
856 $bFirst = false;
857 }
858 return array(Str_Replace("#TITLE#", $title, (($count > 1) ? $titleTemplate2 : $titleTemplate1)), $message);
859 }
860
861 public static function InitGroupTmp($groupID, $arParams, $bRSS = false)
862 {
863 $title = "";
864 $message = "";
865
866 $arGroup = CSocNetGroup::GetByID($groupID);
867 if ($arGroup)
868 {
869 $pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arGroup["ID"]));
870
871 if (!$bRSS)
872 {
873 $title .= "<a href=\"".$pu."\">";
874 }
875 $title .= $arGroup["NAME"];
876 if (!$bRSS)
877 {
878 $title .= "</a>";
879 }
880
881 if ((int)$arGroup["IMAGE_ID"] <= 0)
882 {
883 $arGroup["IMAGE_ID"] = COption::GetOptionInt("socialnetwork", "default_group_picture", false, SITE_ID);
884 }
885
886 $arImage = CSocNetTools::InitImage($arGroup["IMAGE_ID"], 100, "/bitrix/images/socialnetwork/nopic_group_100.gif", 100, $pu, true);
887
888 $message = $arImage["IMG"];
889 }
890
891 return array($title, $message);
892 }
893
894 public static function InitGroupsTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bRSS = false)
895 {
896 $arGroupsID = explode(",", $message);
897
898 $message = "";
899 $title = "";
900
901 $bFirst = true;
902 $count = 0;
903 foreach ($arGroupsID as $groupID)
904 {
905 [ $titleTmp, $messageTmp ] = CSocNetLog::InitGroupTmp($groupID, $arParams, $bRSS);
906
907 $titleTmp = (string)$titleTmp;
908 $messageTmp = (string)$messageTmp;
909
910 if ($titleTmp !== '')
911 {
912 if (!$bFirst)
913 {
914 $title .= ", ";
915 }
916 $title .= $titleTmp;
917 $count++;
918 }
919
920 if ($messageTmp !== '')
921 {
922 if (!$bFirst)
923 {
924 $message .= " ";
925 }
926 $message .= $messageTmp;
927 }
928
929 $bFirst = false;
930 }
931
932 return array(Str_Replace("#TITLE#", $title, (($count > 1) ? $titleTemplate2 : $titleTemplate1)), $message);
933 }
934
935 public static function ShowGroup($arEntityDesc, $strEntityURL, $arParams)
936 {
937 return CSocNetLogTools::ShowGroup($arEntityDesc, $strEntityURL, $arParams);
938 }
939
940 public static function ShowUser($arEntityDesc, $strEntityURL, $arParams)
941 {
942 return CSocNetLogTools::ShowUser($arEntityDesc, $strEntityURL, $arParams);
943 }
944
949
950 public static function FormatEvent_CreateAvatar($arFields, $arParams, $source = "CREATED_BY_")
951 {
953 }
954
955 public static function FormatEvent_IsMessageShort($message, $short_message = false)
956 {
958 }
959
960 public static function FormatEvent_BlogPostComment($arFields, $arParams, $bMail = false)
961 {
963 }
964
965 public static function FormatEvent_Forum($arFields, $arParams, $bMail = false)
966 {
968 }
969
970 public static function FormatEvent_Photo($arFields, $arParams, $bMail = false)
971 {
973 }
974
975 public static function FormatEvent_Files($arFields, $arParams, $bMail = false)
976 {
978 }
979
980 public static function FormatEvent_Task($arFields, $arParams, $bMail = false)
981 {
983 }
984
985 public static function FormatEvent_SystemGroups($arFields, $arParams, $bMail = false)
986 {
988 }
989
990 public static function FormatEvent_SystemFriends($arFields, $arParams, $bMail = false)
991 {
993 }
994
995 public static function FormatEvent_System($arFields, $arParams, $bMail = false)
996 {
998 }
999
1000 public static function FormatEvent_Microblog($arFields, $arParams, $bMail = false)
1001 {
1003 }
1004
1005 public static function SetCacheLastLogID($id)
1006 {
1008 }
1009
1010 public static function GetCacheLastLogID()
1011 {
1013 }
1014
1015 public static function SetUserCache($user_id, $max_id, $max_viewed_id, $count)
1016 {
1017 CSocNetLogTools::SetUserCache("log", $user_id, $max_id, $max_viewed_id, $count);
1018 }
1019
1020 public static function GetUserCache($user_id)
1021 {
1022 return CSocNetLogTools::GetUserCache("log", $user_id);
1023 }
1024
1025 public static function GetSite($log_id)
1026 {
1027 global $DB;
1028 $strSql = "SELECT L.*, LS.* FROM b_sonet_log_site LS, b_lang L WHERE L.LID=LS.SITE_ID AND LS.LOG_ID=" . (int)$log_id;
1029 return $DB->Query($strSql);
1030 }
1031
1032 public static function GetSimpleOrQuery($val, $key, $strOperation, $strNegative, $OrFields, &$arFields, &$arFilter)
1033 {
1034 global $DB;
1035
1036 if ($strNegative !== "Y")
1037 {
1038 $arOrFields = explode("|", $OrFields);
1039 if (count($arOrFields) > 1)
1040 {
1041 $strOrFields = "";
1042 foreach($arOrFields as $i => $field)
1043 {
1044 if ($i > 0)
1045 {
1046 $strOrFields .= " OR ";
1047 }
1048 $strOrFields .= "(".$field." ".$strOperation." '".$DB->ForSql($val)."')";
1049 }
1050 return $strOrFields;
1051 }
1052
1053 return false;
1054 }
1055
1056 return false;
1057 }
1058}
$arParams
Определения access_dialog.php:21
$count
Определения admin_tab.php:4
$hash
Определения ajax_redirector.php:8
$type
Определения options.php:106
$arSites
Определения options.php:15
global $APPLICATION
Определения include.php:80
$arResult
Определения generate_coupon.php:16
static encode($text)
Определения emoji.php:17
static __InitGroupTmp($groupId)
Определения log.php:66
static __InitGroupsTmp($message, $titleTemplate1, $titleTemplate2)
Определения log.php:86
static __InitUserTmp($userId)
Определения log.php:12
static __InitUsersTmp($message, $titleTemplate1, $titleTemplate2)
Определения log.php:32
static sendPush($params=array())
Определения logsubscribe.php:16
static GetSubSelect2($entityId, array $arParams=[])
Определения log_counter.php:17
Определения log.php:9
static InitGroupTmp($groupID, $arParams, $bRSS=false)
Определения log.php:861
static FormatEvent_System($arFields, $arParams, $bMail=false)
Определения log.php:995
static FormatEvent_BlogPostComment($arFields, $arParams, $bMail=false)
Определения log.php:960
static FormatEvent_Files($arFields, $arParams, $bMail=false)
Определения log.php:975
static __InitGroupTmp($groupID)
Определения log.php:296
static ClearOldAgent()
Определения log.php:606
static GetByID($ID)
Определения log.php:228
static SendEventAgent($ID, $mailTemplate="SONET_NEW_EVENT")
Определения log.php:309
static SendEvent( $ID, $mailTemplate="SONET_NEW_EVENT", $tmpId=0, $bAgent=false)
Определения log.php:318
static FormatEvent_SystemGroups($arFields, $arParams, $bMail=false)
Определения log.php:985
static InitUserTmp($userID, $arParams, $bCurrentUserIsAdmin="unknown", $bRSS=false)
Определения log.php:762
static CheckFields($ACTION, &$arFields, $ID=0)
Определения log.php:13
static CounterIncrement( $entityId, $eventId='', $entitiesList=false, $type=CSocNetLogCounter::TYPE_LOG_ENTRY, $forAllAccess=false, $userIdToPushList=[])
Определения log.php:436
static CounterDecrement( $logId, $eventId='', $type=CSocNetLogCounter::TYPE_LOG_ENTRY, $forAllAccess=false)
Определения log.php:566
static MakeTitle($titleTemplate, $title, $url='', $bHtml=true)
Определения log.php:248
static InitUsersTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bCurrentUserIsAdmin="unknown", $bRSS=false)
Определения log.php:815
static InitGroupsTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bRSS=false)
Определения log.php:894
static ShowGroup($arEntityDesc, $strEntityURL, $arParams)
Определения log.php:935
static OnSocNetLogFormatEvent($arEvent, $arParams)
Определения log.php:633
static SetUserCache($user_id, $max_id, $max_viewed_id, $count)
Определения log.php:1015
static GetSimpleOrQuery($val, $key, $strOperation, $strNegative, $OrFields, &$arFields, &$arFilter)
Определения log.php:1032
static __InitUserTmp($userID)
Определения log.php:280
static FormatEvent_Microblog($arFields, $arParams, $bMail=false)
Определения log.php:1000
static GetCacheLastLogID()
Определения log.php:1010
static GetUserCache($user_id)
Определения log.php:1020
static ShowUser($arEntityDesc, $strEntityURL, $arParams)
Определения log.php:940
static SetCacheLastLogID($id)
Определения log.php:1005
static __InitGroupsTmp($message, $titleTemplate1, $titleTemplate2)
Определения log.php:304
static GetSite($log_id)
Определения log.php:1025
static FormatEvent_CreateAvatar($arFields, $arParams, $source="CREATED_BY_")
Определения log.php:950
static FormatEvent_Forum($arFields, $arParams, $bMail=false)
Определения log.php:965
static FormatEvent_Photo($arFields, $arParams, $bMail=false)
Определения log.php:970
static FormatEvent_IsMessageShort($message, $short_message=false)
Определения log.php:955
static FormatEvent_FillTooltip($arFields, $arParams)
Определения log.php:945
static FormatEvent_Task($arFields, $arParams, $bMail=false)
Определения log.php:980
static GetSign($url, $userID=false, $site_id=false)
Определения log.php:611
static __InitUsersTmp($message, $titleTemplate1, $titleTemplate2)
Определения log.php:288
static FormatEvent_SystemFriends($arFields, $arParams, $bMail=false)
Определения log.php:990
static CanPerformOperation($fromUserID, $toUserID, $operation, $bCurrentUserIsAdmin=false)
Определения user_perms.php:231
const TYPE_LOG_COMMENT
Определения log_counter.php:12
const TYPE_LOG_ENTRY
Определения log_counter.php:11
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arParams=array())
Определения log.php:338
static FormatEvent_System($arFields, $arParams, $bMail=false)
Определения log_tools.php:2842
static FormatEvent_Files($arFields, $arParams, $bMail=false)
Определения log_tools.php:2200
static SetUserCache( $type="log", $user_id=null, $max_id=null, $max_viewed_id=null, $count=null, $bSetViewTime=false, $LastViewTS=0)
Определения log_tools.php:3123
static FormatEvent_SystemGroups($arFields, $arParams, $bMail=false)
Определения log_tools.php:2485
static FormatEvent_Blog($arFields, $arParams, $bMail=false)
Определения log_tools.php:727
static ShowGroup($arEntityDesc, $strEntityURL, $arParams)
Определения log_tools.php:320
static SetCacheLastLogID($type="log", $id=0)
Определения log_tools.php:3102
static FormatEvent_Microblog($arFields, $arParams, $bMail=false)
Определения log_tools.php:1034
static FormatEvent_CreateAvatar($arFields, $arParams, $source="CREATED_BY_", $site_id=SITE_ID)
Определения log_tools.php:418
static ShowUser($arEntityDesc, $strEntityURL, $arParams)
Определения log_tools.php:330
static GetUserCache($type="log", $user_id=0)
Определения log_tools.php:3152
static GetCacheLastLogID($type="log")
Определения log_tools.php:3112
static FormatEvent_Forum($arFields, $arParams, $bMail=false)
Определения log_tools.php:1224
static FormatEvent_Photo($arFields, $arParams, $bMail=false)
Определения log_tools.php:1675
static FormatEvent_IsMessageShort($message, $short_message=false)
Определения log_tools.php:514
static FindLogEventByID($event_id, $entity_type=false)
Определения log_tools.php:51
static FormatEvent_FillTooltip($arFields, $arParams)
Определения log_tools.php:394
static FormatEvent_Task($arFields, $arParams, $bMail=false)
Определения log_tools.php:2412
static FormatEvent_SystemFriends($arFields, $arParams, $bMail=false)
Определения log_tools.php:2662
static InitImage($imageID, $imageSize, $defaultImage, $defaultImageSize, $imageUrl, $showImageUrl, $urlParams=false)
Определения functions.php:1050
$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
$res
Определения filter_act.php:7
global $USER_FIELD_MANAGER
Определения attempt.php:6
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$ACTION
Определения csv_new_setup.php:27
IsModuleInstalled($module_id)
Определения tools.php:5301
is_set($a, $k=false)
Определения tools.php:2133
MakeTimeStamp($datetime, $format=false)
Определения tools.php:538
$entityId
Определения payment.php:4
$message
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
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
$title
Определения pdf.php:123
$val
Определения options.php:1793
const SONET_ENTITY_GROUP
Определения include.php:117
const SONET_ENTITY_USER
Определения include.php:118
$site_id
Определения sonet_set_content_view.php:9
const SITE_ID
Определения sonet_set_content_view.php:12
if(CModule::IncludeModule("forum")) if(CModule::IncludeModule("blog")) $dbLog
Определения updtr1007.php:132
$dbResult
Определения updtr957.php:3
$arFilter
Определения user_search.php:106
$url
Определения iframe.php:7