1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
blog_user.php
См. документацию.
1<?
2
5
7$GLOBALS["BLOG_USER"] = Array();
8
10
12{
13 public static function IsLocked($userID)
14 {
15 $userID = intval($userID);
16 if ($userID > 0)
17 {
18 $arUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID);
19 if ($arUser)
20 {
21 if ($arUser["ALLOW_POST"] != "Y")
22 return True;
23 }
24 }
25 return False;
26 }
27
28 public static function CanUserUpdateUser($ID, $userID, $selectType = BLOG_BY_BLOG_USER_ID)
29 {
30 $ID = intval($ID);
31 $userID = intval($userID);
32 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
33
34 $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog");
35 if ($blogModulePermissions >= "W")
36 return True;
37
38 $arUser = CBlogUser::GetByID($ID, $selectType);
39 if ($arUser && intval($arUser["USER_ID"]) == $userID)
40 return True;
41
42 return False;
43 }
44
45 /*************** ADD, UPDATE, DELETE *****************/
46 public static function CheckFields($ACTION, &$arFields, $ID = 0)
47 {
48 global $DB;
49
50 if ((is_set($arFields, "USER_ID") || $ACTION=="ADD") && intval($arFields["USER_ID"]) <= 0)
51 {
52 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_EMPTY_USER_ID"), "EMPTY_USER_ID");
53 return false;
54 }
55 elseif (is_set($arFields, "USER_ID"))
56 {
57 $dbResult = CUser::GetByID($arFields["USER_ID"]);
58 if (!$dbResult->Fetch())
59 {
60 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID");
61 return false;
62 }
63 }
64
65 if (is_set($arFields, "ALIAS") && $arFields["ALIAS"] <> '')
66 {
67 $dbResult = CBlogUser::GetList(array(), array("ALIAS" => $arFields["ALIAS"], "!ID" => intval($ID)), false, false, array("ID"));
68 if ($dbResult->Fetch())
69 {
70 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_DUPL_ALIAS"), "ERROR_DUPL_ALIAS");
71 return false;
72 }
73 }
74
75 if (is_set($arFields, "LAST_VISIT") && (!$DB->IsDate($arFields["LAST_VISIT"], false, LANG, "FULL")))
76 {
77 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_LAST_VISIT"), "ERROR_LAST_VISIT");
78 return false;
79 }
80
81 if (is_set($arFields, "DATE_REG") && (!$DB->IsDate($arFields["DATE_REG"], false, LANG, "FULL")))
82 {
83 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_DATE_REG"), "ERROR_DATE_REG");
84 return false;
85 }
86
87 if ((is_set($arFields, "ALLOW_POST") || $ACTION=="ADD") && $arFields["ALLOW_POST"] != "Y" && $arFields["ALLOW_POST"] != "N")
88 $arFields["ALLOW_POST"] = "Y";
89
90 if (is_set($arFields, "AVATAR") && $arFields["AVATAR"]["name"] == '' && $arFields["AVATAR"]["del"] == '')
91 unset($arFields["AVATAR"]);
92
93 if (is_set($arFields, "AVATAR"))
94 {
95 $max_size = Option::get('blog', 'avatar_max_size', 30000);
96 $res = CFile::CheckImageFile($arFields["AVATAR"], $max_size, 0, 0);
97 if ($res <> '')
98 {
99 $GLOBALS["APPLICATION"]->ThrowException($res, "ERROR_AVATAR");
100 return false;
101 }
102 }
103
104 return True;
105 }
106
107 public static function Delete($ID)
108 {
109 global $DB;
110
111 $ID = intval($ID);
112 $bSuccess = True;
113
115 if ($arUser)
116 {
117
118 $dbResult = CBlog::GetList(array(), array("OWNER_ID" => $arUser["USER_ID"]), false, false, array("ID"));
119 if ($dbResult->Fetch())
120 {
121 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_OWNER"), "ERROR_OWNER");
122 $bSuccess = False;
123 }
124
125 if ($bSuccess)
126 {
127 $dbResult = CBlogPost::GetList(array(), array("AUTHOR_ID" => $arUser["USER_ID"]), false, false, array("ID"));
128 if ($arResult = $dbResult->Fetch())
129 {
130 if(!CBlogPost::Delete($arResult["ID"]))
131 {
132 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_AUTHOR"), "ERROR_AUTHOR");
133 $bSuccess = False;
134 }
135 }
136 }
137
138 if ($bSuccess)
139 {
140 $dbGloUser = CUser::GetByID($arUser["USER_ID"]);
141 $arGloUser = $dbGloUser->Fetch();
142
143 $DB->Query(
144 "UPDATE b_blog_comment SET ".
145 " AUTHOR_NAME = '".$DB->ForSql(CBlogUser::GetUserName($arUser["ALIAS"], $arGloUser["NAME"], $arGloUser["LAST_NAME"], $arGloUser["LOGIN"], $arGloUser["SECOND_NAME"]))."', ".
146 " AUTHOR_ID = null ".
147 "WHERE AUTHOR_ID = ".$arUser["USER_ID"]."",
148 true
149 );
150
151 $DB->Query("DELETE FROM b_blog_user2user_group WHERE USER_ID = ".$arUser["USER_ID"]."", true);
152 }
153
154 if ($bSuccess)
155 {
156 $strSql =
157 "SELECT F.ID ".
158 "FROM b_blog_user FU, b_file F ".
159 "WHERE FU.ID = ".$arUser["ID"]." ".
160 " AND FU.AVATAR = F.ID ";
161 $z = $DB->Query($strSql);
162 while ($zr = $z->Fetch())
163 CFile::Delete($zr["ID"]);
164
165
166 if (CModule::IncludeModule("search"))
167 {
168 CSearch::Index("blog", "U".$arUser["ID"],
169 array(
170 "TITLE" => "",
171 "BODY" => ""
172 )
173 );
174 }
175
176
177 unset($GLOBALS["BLOG_USER"]["BLOG_USER_CACHE_".$arUser["ID"]]);
178 unset($GLOBALS["BLOG_USER"]["BLOG_USER1_CACHE_".$arUser["USER_ID"]]);
179 unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_".$arUser["ID"]]);
180 unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_".$arUser["USER_ID"]]);
181
182 return $DB->Query("DELETE FROM b_blog_user WHERE ID = ".$arUser["ID"]."", true);
183 }
184 if(!$bSuccess)
185 return false;
186 }
187
188 return True;
189 }
190
191 public static function DeleteFromUserGroup($ID, $blogID, $selectType = BLOG_BY_BLOG_USER_ID)
192 {
193 global $DB;
194
195 $ID = intval($ID);
196 $blogID = intval($blogID);
197 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
198
199 $bSuccess = True;
200
201 $arResult = CBlog::GetByID($blogID);
202 if (!$arResult)
203 {
204 $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $blogID, GetMessage("BLG_GU_ERROR_NO_BLOG")), "ERROR_NO_BLOG");
205 $bSuccess = False;
206 }
207
208 if ($bSuccess)
209 {
210 $arUser = CBlogUser::GetByID($ID, $selectType);
211
212 $dbResult = CUser::GetByID($arUser["USER_ID"]);
213 if (!$dbResult->Fetch())
214 {
215 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID");
216 $bSuccess = False;
217 }
218 }
219
220 if ($bSuccess)
221 {
222 $DB->Query(
223 "DELETE FROM b_blog_user2user_group ".
224 "WHERE USER_ID = ".intval($arUser["USER_ID"])." ".
225 " AND BLOG_ID = ".$blogID." "
226 );
227 }
228
229 return $bSuccess;
230 }
231
232 public static function AddToUserGroup($ID, $blogID, $arGroups = array(), $joinStatus = "Y", $selectType = BLOG_BY_BLOG_USER_ID, $action = BLOG_CHANGE)
233 {
234 global $DB;
235
236 $ID = intval($ID);
237 $blogID = intval($blogID);
238 if (!is_array($arGroups))
240 $joinStatus = (($joinStatus == "Y") ? "Y" : "N");
241 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
243
244 $bSuccess = True;
245
246 $arResult = CBlog::GetByID($blogID);
247 if (!$arResult)
248 {
249 $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $blogID, GetMessage("BLG_GU_ERROR_NO_BLOG")), "ERROR_NO_BLOG");
250 $bSuccess = False;
251 }
252
253 if ($bSuccess)
254 {
255 $arUser = CBlogUser::GetByID($ID, $selectType);
256
257 $dbResult = CUser::GetByID($arUser["USER_ID"]);
258 if (!$dbResult->Fetch())
259 {
260 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID");
261 $bSuccess = False;
262 }
263 }
264
265 if ($bSuccess)
266 {
267 if ($action == BLOG_CHANGE)
268 $DB->Query(
269 "DELETE FROM b_blog_user2user_group ".
270 "WHERE USER_ID = ".intval($arUser["USER_ID"])." ".
271 " AND BLOG_ID = ".$blogID." "
272 );
273
274 if (count($arGroups) > 0)
275 {
276 array_walk(
277 $arGroups,
278 function (&$item) {
279 $item = (int)$item;
280 }
281 );
282
283 $dbUserGroups = CBlogUserGroup::GetList(
284 array(),
285 array("ID" => $arGroups, "BLOG_ID" => $blogID),
286 false,
287 false,
288 array("ID")
289 );
290 $arGroups = array();
291 while ($arUserGroup = $dbUserGroups->Fetch())
292 $arGroups[] = intval($arUserGroup["ID"]);
293
294 if ($action == BLOG_ADD)
295 $arCurrentGroups = CBlogUser::GetUserGroups($ID, $blogID, "", $selectType);
296
297 foreach($arGroups as $val)
298 {
299 if ($val != 1 && $val != 2)
300 {
301 if ($action == BLOG_CHANGE
302 || $action == BLOG_ADD && !in_array($val, $arCurrentGroups))
303 {
304 $DB->Query(
305 "INSERT INTO b_blog_user2user_group (USER_ID, BLOG_ID, USER_GROUP_ID) ".
306 "VALUES (".intval($arUser["USER_ID"]).", ".$blogID.", ".intval($val).")"
307 );
308 }
309 }
310 }
311 }
312
313 unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_".$arUser["ID"]]);
314 unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_".$arUser["USER_ID"]]);
315 }
316
317 return $bSuccess;
318 }
319
320 public static function SetLastVisit()
321 {
322 if (isset($GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"]) && $GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"] == "Y")
323 return True;
324
325 if (!$GLOBALS["USER"]->IsAuthorized())
326 return False;
327
328 $userID = intval($GLOBALS["USER"]->GetID());
329 if ($userID <= 0)
330 return False;
331
332 $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID);
333 if ($arBlogUser)
335 $arBlogUser["ID"],
336 array("=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction())
337 );
338 else
340 array(
341 "USER_ID" => $userID,
342 "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(),
343 "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(),
344 "ALLOW_POST" => "Y"
345 )
346 );
347
348 $GLOBALS["BLOG_USER"]["BLOG_LAST_VISIT_SET"] = "Y";
349
350 return True;
351 }
352
353 //*************** SELECT *********************/
354 public static function GetByID($ID, $selectType = BLOG_BY_BLOG_USER_ID)
355 {
356 global $DB;
357
358 $ID = intval($ID);
359 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
360
361 $varName = (($selectType == BLOG_BY_USER_ID) ? "BLOG_USER1_CACHE_" : "BLOG_USER_CACHE_");
362 if (isset($GLOBALS["BLOG_USER"][$varName.$ID]) && is_array($GLOBALS["BLOG_USER"][$varName.$ID]) && is_set($GLOBALS["BLOG_USER"][$varName.$ID], "ID"))
363 {
364 return $GLOBALS["BLOG_USER"][$varName.$ID];
365 }
366 else
367 {
368 $strSql =
369 "SELECT B.ID, B.USER_ID, B.ALIAS, B.DESCRIPTION, B.AVATAR, B.INTERESTS, ".
370 " B.ALLOW_POST, ".
371 " ".$DB->DateToCharFunction("B.LAST_VISIT", "FULL")." as LAST_VISIT, ".
372 " ".$DB->DateToCharFunction("B.DATE_REG", "FULL")." as DATE_REG ".
373 "FROM b_blog_user B ".
374 "WHERE B.".(($selectType == BLOG_BY_USER_ID) ? "USER_ID" : "ID")." = ".$ID."";
375 $dbResult = $DB->Query($strSql);
376 if ($arResult = $dbResult->Fetch())
377 {
378 $GLOBALS["BLOG_USER"]["BLOG_USER_CACHE_".$arResult["ID"]] = $arResult;
379 $GLOBALS["BLOG_USER"]["BLOG_USER1_CACHE_".$arResult["USER_ID"]] = $arResult;
380 return $arResult;
381 }
382 }
383
384 return False;
385 }
386
387 public static function GetUserFriends($ID, $bFlag = True)
388 {
389 global $DB;
390
391 $ID = intval($ID);
392
393 if ($bFlag)
394 {
395 $strSql =
396 "SELECT B.ID, B.NAME, B.ACTIVE, B.URL, B.OWNER_ID ".
397 "FROM b_blog_user2user_group U2UG ".
398 " INNER JOIN b_blog_user_group_perms UGP ".
399 " ON (U2UG.BLOG_ID = UGP.BLOG_ID AND U2UG.USER_GROUP_ID = UGP.USER_GROUP_ID) ".
400 " INNER JOIN b_blog B ".
401 " ON (U2UG.BLOG_ID = B.ID) ".
402 "WHERE U2UG.USER_ID = ".$ID." ".
403 //" AND UGP.PERMS >= '".$DB->ForSql(BLOG_PERMS_WRITE)."' ".
404 //" AND UGP.PERMS_TYPE = '".$DB->ForSql(BLOG_PERMS_POST)."' ".
405 " AND UGP.POST_ID IS NULL ".
406 " AND B.ACTIVE = 'Y' ".
407 "GROUP BY B.ID, B.NAME, B.ACTIVE, B.URL, B.OWNER_ID ".
408 "ORDER BY B.NAME ASC";
409 }
410 else
411 {
412 $strSql =
413 "SELECT B.ID, B.NAME, B.ACTIVE, B.URL ".
414 "FROM b_blog B1 ".
415 " INNER JOIN b_blog_user_group_perms UGP ".
416 " ON (B1.ID = UGP.BLOG_ID) ".
417 " INNER JOIN b_blog_user2user_group U2UG ".
418 " ON (UGP.BLOG_ID = U2UG.BLOG_ID AND UGP.USER_GROUP_ID = U2UG.USER_GROUP_ID) ".
419 " INNER JOIN b_blog B ".
420 " ON (U2UG.USER_ID = B.OWNER_ID) ".
421 "WHERE B1.OWNER_ID = ".$ID." ".
422 //" AND UGP.PERMS >= '".$DB->ForSql(BLOG_PERMS_WRITE)."' ".
423 //" AND UGP.PERMS_TYPE = '".$DB->ForSql(BLOG_PERMS_POST)."' ".
424 " AND UGP.POST_ID IS NULL ".
425 " AND B.ACTIVE = 'Y' ".
426 " AND B1.ACTIVE = 'Y' ".
427 "GROUP BY B.ID, B.NAME, B.ACTIVE, B.URL ".
428 "ORDER BY B.NAME ASC";
429 }
430
431 $dbResult = $DB->Query($strSql);
432
433 return $dbResult;
434 }
435
436 public static function GetUserGroups($ID, $blogID, $joinStatus = "", $selectType = BLOG_BY_BLOG_USER_ID, $bUrl = false)
437 {
438 global $DB;
439
440 $ID = intval($ID);
441 $joinStatus = (($joinStatus == "Y" || $joinStatus == "N") ? $joinStatus : "");
442 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
443 if($bUrl)
444 $bUrl = true;
445 else
446 $bUrl = false;
447
448 if(!$bUrl)
449 $blogID = intval($blogID);
450 else
451 $blogID = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($blogID));
452
453 $varName = (($selectType == BLOG_BY_USER_ID) ? "BLOG_USER2GROUP1_CACHE_".$blogID."_".$joinStatus."_".$ID."_".$bUrl : "BLOG_USER2GROUP_CACHE_".$blogID."_".$joinStatus."_".$ID."_".$bUrl);
454
455 if (isset($GLOBALS["BLOG_USER"][$varName]) && is_array($GLOBALS["BLOG_USER"][$varName]))
456 {
457 return $GLOBALS["BLOG_USER"][$varName];
458 }
459 else
460 {
461 $arGroups = array(1);
462 if (isset($GLOBALS["USER"]) && is_object($GLOBALS["USER"]) && $GLOBALS["USER"]->IsAuthorized())
463 $arGroups[] = 2;
464
465 if ($ID > 0 && $blogID <> '')
466 {
467 if($selectType == BLOG_BY_BLOG_USER_ID)
468 {
469 $arBlogUser = CBlogUser::GetByID($ID, $selectType);
470 $userID = $arBlogUser["USER_ID"];
471 }
472 else
473 $userID = $ID;
474
475 $strSql =
476 "SELECT UG.ID, UG.USER_ID, UG.BLOG_ID, UG.USER_GROUP_ID ".
477 "FROM b_blog_user2user_group UG ";
478 if($bUrl)
479 $strSql .= " INNER JOIN b_blog B ON (UG.BLOG_ID = B.ID AND B.URL='".$DB->ForSql($blogID)."') ";
480
481 $strSql .= " WHERE UG.USER_ID = ".$userID." ";
482
483 if(!$bUrl)
484 $strSql .= " AND UG.BLOG_ID = ".$blogID." ";
485
486 $dbResult = $DB->Query($strSql);
487
488 while ($arResult = $dbResult->Fetch())
489 $arGroups[] = intval($arResult["USER_GROUP_ID"]);
490 }
491
492 if($selectType == BLOG_BY_BLOG_USER_ID && !empty($arBlogUser))
493 $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_".$blogID."_".$joinStatus."_".intval($arBlogUser["ID"])."_".$bUrl] = $arGroups;
494 $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_".$blogID."_".$joinStatus."_".intval($userID)."_".$bUrl] = $arGroups;
495 return $arGroups;
496 }
497
498 return False;
499 }
500
501 public static function GetUserPerms($arGroups, $blogID, $postID = 0, $permsType = BLOG_PERMS_POST, $selectType = BLOG_BY_BLOG_USER_ID)
502 {
503 global $DB;
504
505 $blogID = intval($blogID);
506 $postID = intval($postID);
507 $permsType = (($permsType == BLOG_PERMS_COMMENT) ? BLOG_PERMS_COMMENT : BLOG_PERMS_POST);
508 $selectType = (($selectType == BLOG_BY_USER_ID) ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID);
509
510 if (!is_array($arGroups))
511 {
512 $ID = intval($arGroups);
513 $arGroups = CBlogUser::GetUserGroups($ID, $blogID, "Y", $selectType);
514 }
515
516 $strGroups = "";
517 foreach($arGroups as $val)
518 {
519 if ($strGroups <> '')
520 $strGroups .= ",";
521
522 $strGroups .= intval($val);
523 }
524
525 $varName = "BLOG_USER_PERMS_CACHE_".$blogID."_".$postID."_".$permsType;
526
527 if (isset($GLOBALS["BLOG_USER"][$varName]) && is_array($GLOBALS["BLOG_USER"][$varName])
528 && isset($GLOBALS["BLOG_USER"][$varName][$strGroups]) && is_array($GLOBALS["BLOG_USER"][$varName][$strGroups]))
529 {
530 return $GLOBALS["BLOG_USER"][$varName][$strGroups];
531 }
532 else
533 {
534 if ($postID > 0)
535 {
536 $strSql =
537 "SELECT MAX(P.PERMS) as PERMS ".
538 "FROM b_blog_user_group_perms P ".
539 "WHERE P.BLOG_ID = ".$blogID." ".
540 " AND P.USER_GROUP_ID IN (".$strGroups.") ".
541 " AND P.PERMS_TYPE = '".$DB->ForSql($permsType)."' ".
542 " AND P.POST_ID = ".$postID." ";
543 $dbResult = $DB->Query($strSql);
544 if (($arResult = $dbResult->Fetch()) && ($arResult["PERMS"] <> ''))
545 {
546 $GLOBALS["BLOG_USER"][$varName][$strGroups] = $arResult["PERMS"];
547 return $arResult["PERMS"];
548 }
549 }
550
551 $strSql =
552 "SELECT MAX(P.PERMS) as PERMS ".
553 "FROM b_blog_user_group_perms P ".
554 "WHERE P.BLOG_ID = ".$blogID." ".
555 " AND P.USER_GROUP_ID IN (".$strGroups.") ".
556 " AND P.PERMS_TYPE = '".$DB->ForSql($permsType)."' ".
557 " AND P.POST_ID IS NULL ";
558 $dbResult = $DB->Query($strSql);
559 if (($arResult = $dbResult->Fetch()) && ($arResult["PERMS"] <> ''))
560 {
561 $GLOBALS[$varName][$strGroups] = $arResult["PERMS"];
562 return $arResult["PERMS"];
563 }
564
565 return False;
566 }
567 }
568
569 public static function GetUserName($alias, $name, $lastName, $login, $secondName = "")
570 {
571 return BlogUser::GetUserName($alias, $name, $lastName, $login, $secondName);
572 }
573
574 public static function GetUserNameEx($arUser, $arBlogUser, $arParams)
575 {
576 return BlogUser::GetUserNameEx($arUser, $arBlogUser, $arParams);
577 }
578
579 public static function PreparePath($userID = 0, $siteID = False, $is404 = True)
580 {
581 $userID = intval($userID);
582 if (!$siteID)
584
585 $dbPath = CBlogSitePath::GetList(array(), array("SITE_ID"=>$siteID));
586 while($arPath = $dbPath->Fetch())
587 {
588 if($arPath["TYPE"] <> '')
589 $arPaths[$arPath["TYPE"]] = $arPath["PATH"];
590 else
591 $arPaths["OLD"] = $arPath["PATH"];
592 }
593
594 if($arPaths["U"] <> '')
595 {
596 $result = str_replace("#user_id#", $userID, $arPaths["U"]);
597 }
598 else
599 {
600 if($is404)
601 $result = htmlspecialcharsbx($arPaths["OLD"])."/users/".$userID.".php";
602 else
603 $result = htmlspecialcharsbx($arPaths["OLD"])."/users.php?&user_id=".$userID;
604 }
605
606 return $result;
607 }
608
609 public static function PreparePath2User($arParams = array())
610 {
612 isset($arParams["USER_ID"]) ? $arParams["USER_ID"] : 0,
613 False
614 );
615 }
616
617 public static function GetUserIP()
618 {
619 if ($_SERVER["HTTP_X_FORWARDED_FOR"] ?? null)
620 {
621 $clientIP = $_SERVER["HTTP_X_FORWARDED_FOR"];
622 }
623 else
624 {
625 $clientIP = $_SERVER["HTTP_CLIENT_IP"] ?? null;
626 }
627
628 $clientProxy = $_SERVER["REMOTE_ADDR"];
629 if (!$clientIP)
630 {
631 $clientIP = $clientProxy;
632 $clientProxy = "";
633 }
634
635 return array($clientIP, $clientProxy);
636 }
637
638 public static function GetUserInfo($id, $path, $arParams = array())
639 {
640 if (!empty(CBlogPost::$arBlogUCache[$id]))
641 {
642 $arResult["arUser"] = CBlogPost::$arBlogUCache[$id];
643 }
644 else
645 {
646 if (intval($arParams["AVATAR_SIZE"] ?? null) <= 0)
647 $arParams["AVATAR_SIZE"] = 100;
648
649 if (intval($arParams["AVATAR_SIZE_COMMENT"] ?? null) <= 0)
650 $arParams["AVATAR_SIZE_COMMENT"] = 100;
651
652 $bResizeImmediate = (isset($arParams["RESIZE_IMMEDIATE"]) && $arParams["RESIZE_IMMEDIATE"] == "Y");
653
654 $arSelect = Array(
655 "FIELDS" => Array("ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "PERSONAL_GENDER", "EXTERNAL_AUTH_ID")
656 );
657
658 if (ModuleManager::isModuleInstalled('extranet'))
659 {
660 $arSelect["SELECT"] = array('UF_DEPARTMENT');
661 }
662
663 $dbUser = CUser::GetList(
664 Array('ID' => 'desc'),
665 '',
666 Array("ID" => $id),
667 $arSelect
668 );
669 if($arResult["arUser"] = $dbUser->GetNext())
670 {
671 if (
672 intval($arResult["arUser"]["PERSONAL_PHOTO"]) <= 0
673 && ModuleManager::isModuleInstalled('socialnetwork')
674 )
675 {
676 switch ($arResult["arUser"]["PERSONAL_GENDER"])
677 {
678 case "M":
679 $suffix = "male";
680 break;
681 case "F":
682 $suffix = "female";
683 break;
684 default:
685 $suffix = "unknown";
686 }
687 $arResult["arUser"]["PERSONAL_PHOTO"] = Option::get('socialnetwork', 'default_user_picture_'.$suffix, false, SITE_ID);
688 }
689
690 if(intval($arResult["arUser"]["PERSONAL_PHOTO"]) > 0)
691 {
692 $arResult["arUser"]["PERSONAL_PHOTO_file"] = CFile::GetFileArray($arResult["arUser"]["PERSONAL_PHOTO"]);
693 $arResult["arUser"]["PERSONAL_PHOTO_resized"] = CFile::ResizeImageGet(
694 $arResult["arUser"]["PERSONAL_PHOTO_file"],
695 array("width" => $arParams["AVATAR_SIZE"], "height" => $arParams["AVATAR_SIZE"]),
697 false,
698 false,
699 $bResizeImmediate
700 );
701 if ($arResult["arUser"]["PERSONAL_PHOTO_resized"] !== false)
702 $arResult["arUser"]["PERSONAL_PHOTO_img"] = CFile::ShowImage($arResult["arUser"]["PERSONAL_PHOTO_resized"]["src"], $arParams["AVATAR_SIZE"], $arParams["AVATAR_SIZE"], "border=0 align='right'");
703 $arResult["arUser"]["PERSONAL_PHOTO_resized_30"] = CFile::ResizeImageGet(
704 $arResult["arUser"]["PERSONAL_PHOTO_file"],
705 array("width" => $arParams["AVATAR_SIZE_COMMENT"], "height" => $arParams["AVATAR_SIZE_COMMENT"]),
707 false,
708 false,
709 $bResizeImmediate
710 );
711 if ($arResult["arUser"]["PERSONAL_PHOTO_resized_30"] !== false)
712 $arResult["arUser"]["PERSONAL_PHOTO_img_30"] = CFile::ShowImage($arResult["arUser"]["PERSONAL_PHOTO_resized_30"]["src"], $arParams["AVATAR_SIZE_COMMENT"], $arParams["AVATAR_SIZE_COMMENT"], "border=0 align='right'");
713 }
714 $arResult["arUser"]["url"] = CComponentEngine::MakePathFromTemplate($path, array("user_id" => $id));
715 }
716 CBlogPost::$arBlogUCache[$id] = $arResult["arUser"];
717 }
718
719 return $arResult["arUser"];
720 }
721
722 public static function GetUserInfoArray($arId, $path, $arParams = array())
723 {
724 if (
725 !is_array($arId)
726 && intval($arId) > 0
727 )
728 {
729 $arId = array(
730 intval($arId)
731 );
732 }
733
734 $arId = array_unique($arId);
735
736 $arIdToGet = array();
737 $arResult["arUser"] = array();
738
739 foreach ($arId as $userId)
740 {
742 {
744 }
745 else
746 {
747 $arIdToGet[] = $userId;
748 }
749 }
750
751 if (!empty($arIdToGet))
752 {
753 if (intval($arParams["AVATAR_SIZE"]) <= 0)
754 {
755 $arParams["AVATAR_SIZE"] = 100;
756 }
757
758 if (intval($arParams["AVATAR_SIZE_COMMENT"] ?? null) <= 0)
759 {
760 $arParams["AVATAR_SIZE_COMMENT"] = 100;
761 }
762
763 $arSelectParams = Array(
764 "FIELDS" => Array("ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "PERSONAL_GENDER", "EXTERNAL_AUTH_ID")
765 );
766
767 if (
768 ModuleManager::isModuleInstalled('intranet')
769 || ModuleManager::isModuleInstalled('crm')
770 )
771 {
772 $arSelectParams["SELECT"] = array();
773 if (ModuleManager::isModuleInstalled('intranet'))
774 {
775 $arSelectParams["SELECT"][] = "UF_DEPARTMENT";
776 }
777 if (ModuleManager::isModuleInstalled('crm'))
778 {
779 $arSelectParams["SELECT"][] = "UF_USER_CRM_ENTITY";
780 }
781 }
782
783 $dbUser = CUser::GetList(
784 Array('ID' => 'desc'),
785 '',
786 Array("ID" => implode(" | ", $arIdToGet)),
787 $arSelectParams
788 );
789 while ($arUser = $dbUser->GetNext())
790 {
791 if (
792 intval($arUser["PERSONAL_PHOTO"]) <= 0
793 && ModuleManager::isModuleInstalled('socialnetwork')
794 )
795 {
796 switch ($arUser['PERSONAL_GENDER'])
797 {
798 case "M":
799 $suffix = "male";
800 break;
801 case "F":
802 $suffix = "female";
803 break;
804 default:
805 $suffix = "unknown";
806 }
807 $arUser['PERSONAL_PHOTO'] = Option::get('socialnetwork', 'default_user_picture_'.$suffix, false, SITE_ID);
808 }
809
810 if(intval($arUser["PERSONAL_PHOTO"]) > 0)
811 {
812 $arUser["PERSONAL_PHOTO_file"] = CFile::GetFileArray($arUser["PERSONAL_PHOTO"]);
813 $arUser["PERSONAL_PHOTO_resized"] = CFile::ResizeImageGet(
814 $arUser["PERSONAL_PHOTO_file"],
815 array("width" => $arParams["AVATAR_SIZE"], "height" => $arParams["AVATAR_SIZE"]),
817 false
818 );
819 if ($arUser["PERSONAL_PHOTO_resized"] !== false)
820 {
821 $arUser["PERSONAL_PHOTO_img"] = CFile::ShowImage($arUser["PERSONAL_PHOTO_resized"]["src"], $arParams["AVATAR_SIZE"], $arParams["AVATAR_SIZE"], "border=0 align='right'");
822 }
823
824 $arUser["PERSONAL_PHOTO_resized_30"] = CFile::ResizeImageGet(
825 $arUser["PERSONAL_PHOTO_file"],
826 array("width" => $arParams["AVATAR_SIZE_COMMENT"], "height" => $arParams["AVATAR_SIZE_COMMENT"]),
828 false
829 );
830 if ($arUser["PERSONAL_PHOTO_resized_30"] !== false)
831 {
832 $arUser["PERSONAL_PHOTO_img_30"] = CFile::ShowImage($arUser["PERSONAL_PHOTO_resized_30"]["src"], $arParams["AVATAR_SIZE_COMMENT"], $arParams["AVATAR_SIZE_COMMENT"], "border=0 align='right'");
833 }
834 }
835
836 $arUser["url"] = CComponentEngine::MakePathFromTemplate($path, array("user_id" => $arUser["ID"]));
837
838 $arResult["arUser"][$arUser["ID"]] = CBlogPost::$arBlogUCache[$arUser["ID"]] = $arUser;
839 }
840 }
841 return $arResult["arUser"];
842 }
843}
844?>
$arParams
Определения access_dialog.php:21
$path
Определения access_edit.php:21
const BLOG_PERMS_COMMENT
Определения include.php:43
const BLOG_ADD
Определения include.php:58
const BLOG_BY_USER_ID
Определения include.php:55
const BLOG_BY_BLOG_USER_ID
Определения include.php:56
const BLOG_PERMS_POST
Определения include.php:42
const BLOG_CHANGE
Определения include.php:59
$arResult
Определения generate_coupon.php:16
$login
Определения change_password.php:8
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static GetByID($ID)
Определения blog.php:931
static Delete($ID)
Определения blog_post.php:499
static $arBlogUCache
Определения blog_post.php:17
Определения blog_user.php:12
static GetUserPerms($arGroups, $blogID, $postID=0, $permsType=BLOG_PERMS_POST, $selectType=BLOG_BY_BLOG_USER_ID)
Определения blog_user.php:501
static Delete($ID)
Определения blog_user.php:107
static SetLastVisit()
Определения blog_user.php:320
static PreparePath2User($arParams=array())
Определения blog_user.php:609
static IsLocked($userID)
Определения blog_user.php:13
static GetUserIP()
Определения blog_user.php:617
static GetUserNameEx($arUser, $arBlogUser, $arParams)
Определения blog_user.php:574
static GetUserFriends($ID, $bFlag=True)
Определения blog_user.php:387
static CheckFields($ACTION, &$arFields, $ID=0)
Определения blog_user.php:46
static GetUserName($alias, $name, $lastName, $login, $secondName="")
Определения blog_user.php:569
static AddToUserGroup($ID, $blogID, $arGroups=array(), $joinStatus="Y", $selectType=BLOG_BY_BLOG_USER_ID, $action=BLOG_CHANGE)
Определения blog_user.php:232
static GetUserGroups($ID, $blogID, $joinStatus="", $selectType=BLOG_BY_BLOG_USER_ID, $bUrl=false)
Определения blog_user.php:436
static GetUserInfoArray($arId, $path, $arParams=array())
Определения blog_user.php:722
static GetUserInfo($id, $path, $arParams=array())
Определения blog_user.php:638
static PreparePath($userID=0, $siteID=False, $is404=True)
Определения blog_user.php:579
static GetByID($ID, $selectType=BLOG_BY_BLOG_USER_ID)
Определения blog_user.php:354
static DeleteFromUserGroup($ID, $blogID, $selectType=BLOG_BY_BLOG_USER_ID)
Определения blog_user.php:191
static CanUserUpdateUser($ID, $userID, $selectType=BLOG_BY_BLOG_USER_ID)
Определения blog_user.php:28
static Index($MODULE_ID, $ITEM_ID, $arFields, $bOverWrite=false, $SEARCH_SESS_ID='')
Определения search.php:1302
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения blog.php:249
static GetList( $arOrder=["ID"=> "DESC"], $arFilter=[], $arGroupBy=false, $arNavStartParams=false, $arSelectFields=[])
Определения blog_post.php:554
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения blog_site_path.php:97
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения blog_user_group.php:100
static Add($arFields)
Определения blog_user.php:7
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения blog_user.php:249
static Update($ID, $arFields)
Определения blog_user.php:124
$arFields
Определения dblapprove.php:5
$arPath
Определения file_edit.php:72
</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
$zr
Определения options.php:5
$GLOBALS["BLOG_USER"]
Определения blog_user.php:7
$result
Определения get_property_values.php:14
if($ajaxMode) $ID
Определения get_user.php:27
$arPaths
Определения options.php:169
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
$siteID
Определения cron_frame.php:12
$ACTION
Определения csv_new_setup.php:27
const BX_RESIZE_IMAGE_EXACT
Определения constants.php:12
$z
Определения options.php:31
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$name
Определения menu_edit.php:35
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
</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
$val
Определения options.php:1793
const SITE_ID
Определения sonet_set_content_view.php:12
$action
Определения file_dialog.php:21
$GLOBALS['_____370096793']
Определения update_client.php:1
$dbResult
Определения updtr957.php:3