16 public static function Add(
$arFields, $bSetSource =
false, $bSendEvent =
true, $bSetLogUpDate =
true)
20 if (is_array($bSetSource))
23 $bSetSource = (isset(
$params[
'SET_SOURCE']) ?
$params[
'SET_SOURCE'] :
false);
24 $bSendEvent = (isset(
$params[
'SEND_EVENT']) ?
$params[
'SEND_EVENT'] :
true);
25 $bSetLogUpDate = (isset(
$params[
'SET_LOG_UPDATE']) ?
$params[
'SET_LOG_UPDATE'] :
true);
26 $subscribe = (isset(
$params[
'SUBSCRIBE']) ?
$params[
'SUBSCRIBE'] :
true);
33 $arFields1 = Util::getEqualityFields(
$arFields);
41 !is_array($arCommentEvent)
42 || !array_key_exists(
"ADD_CALLBACK", $arCommentEvent)
43 || !is_callable($arCommentEvent[
"ADD_CALLBACK"])
50 $db_events =
GetModuleEvents(
"socialnetwork",
"OnBeforeSocNetLogCommentAdd");
51 while ($arEvent = $db_events->Fetch())
63 ($arSource[
"NO_SOURCE"] ??
null) ===
"Y"
64 || intval($arSource[
"SOURCE_ID"]) > 0
67 if (($arSource[
"NO_SOURCE"] ??
null) ===
"Y")
73 $arFields[
"SOURCE_ID"] = $arSource[
"SOURCE_ID"];
77 array_key_exists(
"RATING_ENTITY_ID", $arSource)
78 && array_key_exists(
"RATING_TYPE_ID", $arSource)
79 && intval($arSource[
"RATING_ENTITY_ID"]) > 0
80 && $arSource[
"RATING_TYPE_ID"] <>
''
83 $arFields[
"RATING_TYPE_ID"] = $arSource[
"RATING_TYPE_ID"];
84 $arFields[
"RATING_ENTITY_ID"] = $arSource[
"RATING_ENTITY_ID"];
87 if (isset($arSource[
"MESSAGE"]) && $arSource[
"MESSAGE"] <>
'')
88 $arFields[
"MESSAGE"] = $arSource[
"MESSAGE"];
90 if (isset($arSource[
"TEXT_MESSAGE"]) && $arSource[
"TEXT_MESSAGE"] <>
'')
91 $arFields[
"TEXT_MESSAGE"] = $arSource[
"TEXT_MESSAGE"];
93 if (isset($arSource[
"URL"]) && $arSource[
"URL"] <>
'')
97 isset($arSource[
"UF"])
98 && isset($arSource[
"UF"][
"FILE"])
101 if (!is_array($arSource[
"UF"][
"FILE"]))
102 $arSource[
"UF"][
"FILE"] =
array($arSource[
"UF"][
"FILE"]);
104 $arFields[
"UF_SONET_COM_FILE"] = $arSource[
"UF"][
"FILE"];
108 isset($arSource[
"UF"])
109 && isset($arSource[
"UF"][
"DOC"])
112 if (!is_array($arSource[
"UF"][
"DOC"]))
113 $arSource[
"UF"][
"DOC"] =
array($arSource[
"UF"][
"DOC"]);
115 $arFields[
"UF_SONET_COM_DOC"] = $arSource[
"UF"][
"DOC"];
122 array_key_exists(
"ERROR", $arSource) && $arSource[
"ERROR"] <>
''
123 ? $arSource[
"ERROR"] :
125 array_key_exists(
"NOTES", $arSource) && $arSource[
"NOTES"] <>
''
156 && array_key_exists(
"SOURCE_ID",
$arFields)
161 $arInsert =
$DB->PrepareInsert(
"b_sonet_log_comment",
$arFields);
165 if ($arInsert[0] <>
'')
168 "INSERT INTO b_sonet_log_comment(".$arInsert[0].
") ".
169 "VALUES(".$arInsert[1].
")";
172 $ID = intval(
$DB->LastID());
177 !array_key_exists(
"RATING_TYPE_ID",
$arFields)
182 "RATING_TYPE_ID" =>
"LOG_COMMENT",
183 "RATING_ENTITY_ID" =>
$ID
194 'COUNTER_COMMENT_PUSH'
196 'followDate' =>
'CURRENT'
206 array(
"ID",
"USER_ID")
209 ($arLog = $rsLog->Fetch())
210 && (intval($arLog[
"USER_ID"]) > 0)
213 $default_follow = CSocNetLogFollow::GetDefaultValue($arLog[
"USER_ID"]);
214 if ($default_follow !=
"Y")
216 $rsLogFollow = CSocNetLogFollow::GetList(
218 "USER_ID" => $arLog[
"USER_ID"],
224 $arLogFollow = $rsLogFollow->Fetch();
229 'userId' => $arLog[
"USER_ID"],
238 LogFollow::checkDestinationsFollowStatus(
array(
249 $db_events =
GetModuleEvents(
"socialnetwork",
"OnAfterSocNetLogCommentAdd");
250 while ($arEvent = $db_events->Fetch())
257 LogIndex::setIndex(
array(
258 'itemType' => LogIndexTable::ITEM_TYPE_COMMENT,
265 LogTagTable::set(
array(
266 'itemType' => LogTagTable::ITEM_TYPE_COMMENT,
272 if(defined(
"BX_COMP_MANAGED_CACHE"))
287 \
Bitrix\Socialnetwork\Internals\EventService\EventDictionary::EVENT_SPACE_LIVEFEED_COMMENT_ADD,
289 'SONET_LOG_COMMENT_ID' =>
$ID,
292 'EVENT_ID' =>
$arFields[
'EVENT_ID'] ??
null,
298 elseif ($bSetSource && $strMessage <>
'')
301 "MESSAGE" => $strMessage
326 $rsRes = CSocNetLogComments::getList(
331 array(
"LOG_ID",
"SOURCE_ID")
333 if (
$arRes = $rsRes->fetch())
351 !is_array($arCommentEvent)
352 || !array_key_exists(
"UPDATE_CALLBACK", $arCommentEvent)
353 || !is_callable($arCommentEvent[
"UPDATE_CALLBACK"])
369 isset($arSource[
"NO_SOURCE"])
370 && $arSource[
"NO_SOURCE"] ==
"Y"
378 isset($arSource[
"ERROR"])
379 && !empty($arSource[
"ERROR"])
385 "MESSAGE" => $arSource[
"ERROR"]
391 isset($arSource[
"MESSAGE"])
392 && $arSource[
"MESSAGE"] <>
''
395 $arFields[
"MESSAGE"] = $arSource[
"MESSAGE"];
399 isset($arSource[
"TEXT_MESSAGE"])
400 && $arSource[
"TEXT_MESSAGE"] <>
''
403 $arFields[
"TEXT_MESSAGE"] = $arSource[
"TEXT_MESSAGE"];
407 isset($arSource[
"UF"])
408 && isset($arSource[
"UF"][
"FILE"])
411 if (!is_array($arSource[
"UF"][
"FILE"]))
413 $arSource[
"UF"][
"FILE"] =
array($arSource[
"UF"][
"FILE"]);
416 $arFields[
"UF_SONET_COM_FILE"] = $arSource[
"UF"][
"FILE"];
420 isset($arSource[
"UF"])
421 && isset($arSource[
"UF"][
"DOC"])
424 if (!is_array($arSource[
"UF"][
"DOC"]))
426 $arSource[
"UF"][
"DOC"] =
array($arSource[
"UF"][
"DOC"]);
429 $arFields[
"UF_SONET_COM_DOC"] = $arSource[
"UF"][
"DOC"];
444 !isset($arSource[
"ERROR"])
445 || empty($arSource[
"ERROR"])
450 $strUpdate =
$DB->PrepareUpdate(
"b_sonet_log_comment",
$arFields);
453 if ($strUpdate <>
'')
456 "UPDATE b_sonet_log_comment SET ".
458 "WHERE ID = ".$ID.
" ";
473 $events =
GetModuleEvents(
"socialnetwork",
"OnAfterSocNetLogCommentUpdate");
474 while ($arEvent = $events->Fetch())
481 LogIndex::setIndex(
array(
482 'itemType' => LogIndexTable::ITEM_TYPE_COMMENT,
490 LogTagTable::set(
array(
491 'itemType' => LogTagTable::ITEM_TYPE_COMMENT,
499 \
Bitrix\Socialnetwork\Internals\EventService\EventDictionary::EVENT_SPACE_LIVEFEED_COMMENT_UPD,
501 'SONET_LOG_COMMENT_ID' =>
$ID,
503 'USER_ID' =>
$arFields[
'USER_ID'] ??
null,
523 $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
526 $obUserFieldsSql->
SetEntity(
"SONET_COMMENT",
"LC.ID");
527 $obUserFieldsSql->SetSelect($arSelectFields);
529 $obUserFieldsSql->SetOrder($arOrder);
531 if (
count($arSelectFields) <= 0)
532 $arSelectFields =
array(
533 "ID",
"LOG_ID",
"SOURCE_ID",
"ENTITY_TYPE",
"ENTITY_ID",
"USER_ID",
"EVENT_ID",
"LOG_DATE",
"MESSAGE",
"TEXT_MESSAGE",
"URL",
"MODULE_ID",
534 "GROUP_NAME",
"GROUP_OWNER_ID",
"GROUP_VISIBLE",
"GROUP_OPENED",
"GROUP_IMAGE_ID",
535 "USER_NAME",
"USER_LAST_NAME",
"USER_SECOND_NAME",
"USER_LOGIN",
"USER_PERSONAL_PHOTO",
"USER_PERSONAL_GENDER",
536 "CREATED_BY_NAME",
"CREATED_BY_LAST_NAME",
"CREATED_BY_SECOND_NAME",
"CREATED_BY_LOGIN",
"CREATED_BY_PERSONAL_PHOTO",
"CREATED_BY_PERSONAL_GENDER",
537 "LOG_SITE_ID",
"LOG_SOURCE_ID",
"LOG_USER_ID",
538 "RATING_TYPE_ID",
"RATING_ENTITY_ID",
"RATING_TOTAL_VALUE",
"RATING_TOTAL_VOTES",
"RATING_TOTAL_POSITIVE_VOTES",
"RATING_TOTAL_NEGATIVE_VOTES",
"RATING_USER_VOTE_VALUE"
541 static $arFields1 =
array(
542 "ID" => Array(
"FIELD" =>
"LC.ID",
"TYPE" =>
"int"),
543 "LOG_ID" => Array(
"FIELD" =>
"LC.LOG_ID",
"TYPE" =>
"int"),
544 "SOURCE_ID" => Array(
"FIELD" =>
"LC.SOURCE_ID",
"TYPE" =>
"int"),
545 "ENTITY_TYPE" => Array(
"FIELD" =>
"LC.ENTITY_TYPE",
"TYPE" =>
"string"),
546 "ENTITY_ID" => Array(
"FIELD" =>
"LC.ENTITY_ID",
"TYPE" =>
"int"),
547 "USER_ID" => Array(
"FIELD" =>
"LC.USER_ID",
"TYPE" =>
"int"),
548 "EVENT_ID" => Array(
"FIELD" =>
"LC.EVENT_ID",
"TYPE" =>
"string"),
549 "LOG_DATE" => Array(
"FIELD" =>
"LC.LOG_DATE",
"TYPE" =>
"datetime"),
550 "LOG_DATE_TS" => Array(
"FIELD" =>
"UNIX_TIMESTAMP(LC.LOG_DATE)",
"TYPE" =>
"int"),
551 "TITLE" => Array(
"FIELD" =>
"LC.TITLE",
"TYPE" =>
"string"),
552 "MESSAGE" => Array(
"FIELD" =>
"LC.MESSAGE",
"TYPE" =>
"string"),
553 "TEXT_MESSAGE" => Array(
"FIELD" =>
"LC.TEXT_MESSAGE",
"TYPE" =>
"string"),
554 "URL" => Array(
"FIELD" =>
"LC.URL",
"TYPE" =>
"string"),
555 "MODULE_ID" => Array(
"FIELD" =>
"LC.MODULE_ID",
"TYPE" =>
"string"),
556 "LOG_SOURCE_ID" => Array(
"FIELD" =>
"L.SOURCE_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_sonet_log L ON (LC.LOG_ID = L.ID)"),
557 "LOG_USER_ID" => Array(
"FIELD" =>
"L.USER_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_sonet_log L ON (LC.LOG_ID = L.ID)"),
558 "LOG_TITLE" => Array(
"FIELD" =>
"L1.TITLE",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_sonet_log L1 ON (LC.LOG_ID = L1.ID)"),
559 "LOG_URL" => Array(
"FIELD" =>
"L1.URL",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_sonet_log L1 ON (LC.LOG_ID = L1.ID)"),
560 "LOG_PARAMS" => Array(
"FIELD" =>
"L1.PARAMS",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_sonet_log L1 ON (LC.LOG_ID = L1.ID)"),
561 "GROUP_NAME" => Array(
"FIELD" =>
"G.NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_sonet_group G ON (LC.ENTITY_TYPE = 'G' AND LC.ENTITY_ID = G.ID)"),
562 "GROUP_OWNER_ID" => Array(
"FIELD" =>
"G.OWNER_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_sonet_group G ON (LC.ENTITY_TYPE = 'G' AND LC.ENTITY_ID = G.ID)"),
563 "GROUP_VISIBLE" => Array(
"FIELD" =>
"G.VISIBLE",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_sonet_group G ON (LC.ENTITY_TYPE = 'G' AND LC.ENTITY_ID = G.ID)"),
564 "GROUP_OPENED" => Array(
"FIELD" =>
"G.OPENED",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_sonet_group G ON (LC.ENTITY_TYPE = 'G' AND LC.ENTITY_ID = G.ID)"),
565 "GROUP_IMAGE_ID" => Array(
"FIELD" =>
"G.IMAGE_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_sonet_group G ON (LC.ENTITY_TYPE = 'G' AND LC.ENTITY_ID = G.ID)"),
566 "USER_NAME" => Array(
"FIELD" =>
"U.NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
567 "USER_LAST_NAME" => Array(
"FIELD" =>
"U.LAST_NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
568 "USER_SECOND_NAME" => Array(
"FIELD" =>
"U.SECOND_NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
569 "USER_LOGIN" => Array(
"FIELD" =>
"U.LOGIN",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
570 "USER_PERSONAL_PHOTO" => Array(
"FIELD" =>
"U.PERSONAL_PHOTO",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
571 "USER_PERSONAL_GENDER" => Array(
"FIELD" =>
"U.PERSONAL_GENDER",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U ON (LC.ENTITY_TYPE = 'U' AND LC.ENTITY_ID = U.ID)"),
572 "CREATED_BY_NAME" => Array(
"FIELD" =>
"U1.NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
573 "CREATED_BY_LAST_NAME" => Array(
"FIELD" =>
"U1.LAST_NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
574 "CREATED_BY_SECOND_NAME" => Array(
"FIELD" =>
"U1.SECOND_NAME",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
575 "CREATED_BY_LOGIN" => Array(
"FIELD" =>
"U1.LOGIN",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
576 "CREATED_BY_PERSONAL_PHOTO" => Array(
"FIELD" =>
"U1.PERSONAL_PHOTO",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
577 "CREATED_BY_PERSONAL_GENDER" => Array(
"FIELD" =>
"U1.PERSONAL_GENDER",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
578 "CREATED_BY_EXTERNAL_AUTH_ID" => Array(
"FIELD" =>
"U1.EXTERNAL_AUTH_ID",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_user U1 ON LC.USER_ID = U1.ID"),
579 "SHARE_DEST" => Array(
"FIELD" =>
"LC.SHARE_DEST",
"TYPE" =>
"string"),
582 if (array_key_exists(
"LOG_SITE_ID",
$arFilter))
584 $arFields[
"LOG_SITE_ID"] = Array(
"FIELD" =>
"SLS.SITE_ID",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_sonet_log_site SLS ON LC.LOG_ID = SLS.LOG_ID");
585 $strDistinct =
" DISTINCT ";
586 foreach ($arSelectFields as
$i => $strFieldTmp)
587 if ($strFieldTmp ==
"LOG_SITE_ID")
588 unset($arSelectFields[
$i]);
590 foreach ($arOrder as $by =>
$order)
591 if (!in_array($by, $arSelectFields))
592 $arSelectFields[] = $by;
596 $arFields[
"LOG_SITE_ID"] = Array(
"FIELD" =>
"L.SITE_ID",
"TYPE" =>
"string",
"FROM" =>
"LEFT JOIN b_sonet_log L ON (LC.LOG_ID = L.ID)");
600 $arFields[
"RATING_TYPE_ID"] = Array(
"FIELD" =>
"LC.RATING_TYPE_ID",
"TYPE" =>
"string");
601 $arFields[
"RATING_ENTITY_ID"] = Array(
"FIELD" =>
"LC.RATING_ENTITY_ID",
"TYPE" =>
"int");
602 $arFields[
"RATING_TOTAL_VALUE"] = Array(
"FIELD" =>
$DB->IsNull(
'RG.TOTAL_VALUE',
'0'),
"TYPE" =>
"double",
"FROM" =>
"LEFT JOIN b_rating_voting RG ON LC.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND LC.RATING_ENTITY_ID = RG.ENTITY_ID");
603 $arFields[
"RATING_TOTAL_VOTES"] = Array(
"FIELD" =>
$DB->IsNull(
'RG.TOTAL_VOTES',
'0'),
"TYPE" =>
"double",
"FROM" =>
"LEFT JOIN b_rating_voting RG ON LC.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND LC.RATING_ENTITY_ID = RG.ENTITY_ID");
604 $arFields[
"RATING_TOTAL_POSITIVE_VOTES"] = Array(
"FIELD" =>
$DB->IsNull(
'RG.TOTAL_POSITIVE_VOTES',
'0'),
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_rating_voting RG ON LC.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND LC.RATING_ENTITY_ID = RG.ENTITY_ID");
605 $arFields[
"RATING_TOTAL_NEGATIVE_VOTES"] = Array(
"FIELD" =>
$DB->IsNull(
'RG.TOTAL_NEGATIVE_VOTES',
'0'),
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_rating_voting RG ON LC.RATING_TYPE_ID = RG.ENTITY_TYPE_ID AND LC.RATING_ENTITY_ID = RG.ENTITY_ID");
607 $arFields[
"RATING_USER_VOTE_VALUE"] = Array(
"FIELD" =>
$DB->IsNull(
'RV.VALUE',
'0'),
"TYPE" =>
"double",
"FROM" =>
"LEFT JOIN b_rating_vote RV ON LC.RATING_TYPE_ID = RV.ENTITY_TYPE_ID AND LC.RATING_ENTITY_ID = RV.ENTITY_ID AND RV.USER_ID = ".intval(
$USER->GetId()));
609 if (array_key_exists(
"LOG_RIGHTS",
$arFilter))
616 $Rights[] = trim(
$str);
622 if((is_array($Rights) && !empty($Rights)) || !is_array($Rights))
625 $arFields[
"LOG_RIGHTS"] = Array(
"FIELD" =>
"SLR0.GROUP_CODE",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_sonet_log_right SLR0 ON LC.LOG_ID = SLR0.LOG_ID");
628 if(is_array($Rights) &&
count($Rights) > 1)
629 $strDistinct =
" DISTINCT ";
634 $arSqls = CSocNetGroup::PrepareSql(
$arFields, $arOrder,
$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql);
636 $strSqlUFFilter =
'';
637 $r = $obUserFieldsSql->GetFilter();
639 $strSqlUFFilter =
" (".$r.
") ";
641 $arSqls[
"RIGHTS"] =
"";
642 $arSqls[
"CRM_RIGHTS"] =
"";
643 $arSqls[
"SUBSCRIBE"] =
"";
647 && array_key_exists(
"CHECK_RIGHTS",
$arParams)
649 && !array_key_exists(
"USER_ID",
$arParams)
656 && array_key_exists(
"USER_ID",
$arParams)
662 && array_key_exists(
"USE_SUBSCRIBE",
$arParams)
666 if (!array_key_exists(
"SUBSCRIBE_USER_ID",
$arParams))
677 if (!array_key_exists(
"MY_ENTITIES",
$arParams))
679 foreach($arSocNetAllowedSubscribeEntityTypesDesc as $entity_type_tmp =>
$arEntityTypeTmp)
691 $arParams[
"MY_ENTITIES"] = $arMyEntities;
697 && array_key_exists(
"CHECK_RIGHTS",
$arParams)
699 && array_key_exists(
"USER_ID",
$arParams)
705 $arSqls[
"RIGHTS"] =
"EXISTS ( SELECT SLR.ID FROM b_sonet_log_right SLR
706 LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SLR.GROUP_CODE AND UA.USER_ID = ".(is_object(
$USER)? intval(
$USER->GetID()): 0).
")
707 WHERE LC.LOG_ID = SLR.LOG_ID AND (0=1 ".
708 (is_object(
$USER) && CSocNetUser::IsCurrentUserModuleAdmin() ?
" OR SLR.GROUP_CODE = 'SA'" :
"").
709 (is_object(
$USER) &&
$USER->IsAuthorized() ?
" OR (SLR.GROUP_CODE = 'AU')" :
"").
710 " OR (SLR.GROUP_CODE = 'G2')".
711 (is_object(
$USER) &&
$USER->IsAuthorized() ?
" OR (UA.ACCESS_CODE = SLR.GROUP_CODE AND UA.USER_ID = ".$USER->GetID().
")" :
"").
"))";
716 && array_key_exists(
"CHECK_CRM_RIGHTS",
$arParams)
718 && array_key_exists(
"USER_ID",
$arParams)
721 $arSqls[
"CRM_RIGHTS"] =
"";
725 (
$arParams[
"USE_SUBSCRIBE"] ??
'') ==
"Y"
726 && intval(
$arParams[
"SUBSCRIBE_USER_ID"]) > 0
738 $arSqls[
"SELECT"] = str_replace(
"%%_DISTINCT_%%", $strDistinct, $arSqls[
"SELECT"]);
740 if (is_array($arGroupBy) &&
count($arGroupBy)==0)
743 "SELECT ".$arSqls[
"SELECT"].
" ".
744 $obUserFieldsSql->GetSelect().
" ".
745 "FROM b_sonet_log_comment LC ".
746 " ".$arSqls[
"FROM"].
" ".
747 $obUserFieldsSql->GetJoin(
"LC.ID").
" ";
749 $bWhereStarted =
false;
751 if ($arSqls[
"WHERE"] <>
'')
753 $strSql .=
"WHERE ".$arSqls[
"WHERE"].
" ".($arSqls[
"SUBSCRIBE"] <>
'' ?
"AND (".$arSqls[
"SUBSCRIBE"].
") " :
"");
754 $bWhereStarted =
true;
756 elseif ($arSqls[
"SUBSCRIBE"] <>
'')
758 $strSql .=
"WHERE (".$arSqls[
"SUBSCRIBE"].
") ";
759 $bWhereStarted =
true;
762 if ($strSqlUFFilter <>
'')
764 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$strSqlUFFilter.
" ";
765 $bWhereStarted =
true;
768 if ($arSqls[
"RIGHTS"] <>
'')
770 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"RIGHTS"].
" ";
771 $bWhereStarted =
true;
774 if ($arSqls[
"CRM_RIGHTS"] <>
'')
776 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"CRM_RIGHTS"].
" ";
777 $bWhereStarted =
true;
780 if ($arSqls[
"GROUPBY"] <>
'')
781 $strSql .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
793 "SELECT ".$arSqls[
"SELECT"].
" ".
794 $obUserFieldsSql->GetSelect().
" ".
795 "FROM b_sonet_log_comment LC ".
796 " ".$arSqls[
"FROM"].
" ".
797 $obUserFieldsSql->GetJoin(
"LC.ID").
" ";
799 $bWhereStarted =
false;
801 if ($arSqls[
"WHERE"] <>
'')
803 $strSql .=
"WHERE ".$arSqls[
"WHERE"].
" ".($arSqls[
"SUBSCRIBE"] <>
'' ?
"AND (".$arSqls[
"SUBSCRIBE"].
") " :
"");
804 $bWhereStarted =
true;
806 elseif ($arSqls[
"SUBSCRIBE"] <>
'')
808 $strSql .=
"WHERE (".$arSqls[
"SUBSCRIBE"].
") ";
809 $bWhereStarted =
true;
812 if ($strSqlUFFilter <>
'')
814 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$strSqlUFFilter.
" ";
815 $bWhereStarted =
true;
818 if ($arSqls[
"RIGHTS"] <>
'')
820 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"RIGHTS"].
" ";
821 $bWhereStarted =
true;
824 if ($arSqls[
"CRM_RIGHTS"] <>
'')
826 $strSql .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"CRM_RIGHTS"].
" ";
827 $bWhereStarted =
true;
830 if ($arSqls[
"GROUPBY"] <>
'')
831 $strSql .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
832 if ($arSqls[
"ORDERBY"] <>
'')
833 $strSql .=
"ORDER BY ".$arSqls[
"ORDERBY"].
" ";
836 is_array($arNavStartParams)
837 && (
int) ($arNavStartParams[
"nTopCount"] ?? 0) <= 0
841 "SELECT COUNT('x') as CNT ".
842 "FROM b_sonet_log_comment LC ".
843 " ".$arSqls[
"FROM"].
" ".
844 $obUserFieldsSql->GetJoin(
"LC.ID").
" ";
846 $bWhereStarted =
false;
848 if ($arSqls[
"WHERE"] <>
'')
850 $strSql_tmp .=
"WHERE ".$arSqls[
"WHERE"].
" ".($arSqls[
"SUBSCRIBE"] <>
'' ?
"AND (".$arSqls[
"SUBSCRIBE"].
") " :
"");
851 $bWhereStarted =
true;
853 elseif ($arSqls[
"SUBSCRIBE"] <>
'')
855 $strSql_tmp .=
"WHERE (".$arSqls[
"SUBSCRIBE"].
") ";
856 $bWhereStarted =
true;
859 if ($strSqlUFFilter <>
'')
861 $strSql_tmp .= ($bWhereStarted ?
" AND " :
" WHERE ").$strSqlUFFilter.
" ";
862 $bWhereStarted =
true;
865 if ($arSqls[
"RIGHTS"] <>
'')
867 $strSql_tmp .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"RIGHTS"].
" ";
868 $bWhereStarted =
true;
871 if ($arSqls[
"CRM_RIGHTS"] <>
'')
873 $strSql_tmp .= ($bWhereStarted ?
" AND " :
" WHERE ").$arSqls[
"CRM_RIGHTS"].
" ";
874 $bWhereStarted =
true;
877 if ($arSqls[
"GROUPBY"] <>
'')
878 $strSql_tmp .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
884 if ($arSqls[
"GROUPBY"] ==
'')
892 $cnt =
$dbRes->SelectedRowsCount();
900 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
904 if (is_array($arNavStartParams) && intval($arNavStartParams[
"nTopCount"]) > 0)
905 $strSql .=
"LIMIT ".intval($arNavStartParams[
"nTopCount"]);