function Add($LOG_ID, $GROUP_CODE) { global $DB; if (is_array($GROUP_CODE)) { foreach ($GROUP_CODE as $GROUP_CODE_TMP) { CSocNetLogRights::Add($LOG_ID, $GROUP_CODE_TMP); } return false; } else { $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogRightsAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($LOG_ID, &$GROUP_CODE)) === false) { return false; } } $NEW_RIGHT_ID = $DB->Add("b_sonet_log_right", array("LOG_ID" => $LOG_ID, "GROUP_CODE" => $GROUP_CODE)); if (preg_match('/^U(\\d+)$/', $GROUP_CODE, $matches)) { CSocNetLogFollow::Set($matches[1], "L" . $LOG_ID, "Y"); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_" . intval($LOG_ID)); } return $NEW_RIGHT_ID; } }
public static function Add($LOG_ID, $GROUP_CODE, $bShare = false, $followSet = true) { global $DB; if (is_array($GROUP_CODE)) { foreach ($GROUP_CODE as $GROUP_CODE_TMP) { CSocNetLogRights::Add($LOG_ID, $GROUP_CODE_TMP, $bShare, $followSet); } return false; } else { $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogRightsAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($LOG_ID, $GROUP_CODE)) === false) { return false; } } $NEW_RIGHT_ID = $DB->Add("b_sonet_log_right", array("LOG_ID" => $LOG_ID, "GROUP_CODE" => $GROUP_CODE), array(), "", true); if ($NEW_RIGHT_ID) { if (preg_match('/^U(\\d+)$/', $GROUP_CODE, $matches)) { if ($followSet) { CSocNetLogFollow::Set($matches[1], "L" . $LOG_ID, "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID)); } } elseif ($bShare && preg_match('/^SG(\\d+)$/', $GROUP_CODE, $matches)) { // get all members who unfollow and set'em unfollow from the date $arUserIDToCheck = array(); $rsGroupMembers = CSocNetUserToGroup::GetList(array(), array("GROUP_ID" => $matches[1], "USER_ACTIVE" => "Y", "<=ROLE" => SONET_ROLES_USER), false, false, array("USER_ID")); while ($arGroupMembers = $rsGroupMembers->Fetch()) { $arUserIDToCheck[] = $arGroupMembers["USER_ID"]; } if (!empty($arUserIDToCheck)) { $arUserIDFollowDefault = array("Y" => array(), "N" => array()); $arUserIDAlreadySaved = array(); $default_follow_type = COption::GetOptionString("socialnetwork", "follow_default_type", "Y"); $rsFollow = CSocNetLogFollow::GetList(array("USER_ID" => $arUserIDToCheck, "CODE" => "**"), array("USER_ID", "TYPE")); while ($arFollow = $rsFollow->Fetch()) { $arUserIDFollowDefault[$arFollow["TYPE"]][] = $arFollow["USER_ID"]; } $rsFollow = CSocNetLogFollow::GetList(array("USER_ID" => $arUserIDToCheck, "CODE" => "L" . $LOG_ID), array("USER_ID")); while ($arFollow = $rsFollow->Fetch()) { $arUserIDAlreadySaved[] = $arFollow["USER_ID"]; } foreach ($arUserIDToCheck as $iUserID) { // for them who not followed by default and not already saved follow/unfollow for the log entry if (!in_array($iUserID, $arUserIDAlreadySaved) && ($default_follow_type == "N" && !in_array($iUserID, $arUserIDFollowDefault["Y"]) || $default_follow_type == "Y" && in_array($iUserID, $arUserIDFollowDefault["N"]))) { CSocNetLogFollow::Add($iUserID, "L" . $LOG_ID, "N", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID)); } } } } } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_" . intval($LOG_ID)); } return $NEW_RIGHT_ID; } }
public static function OnBlogPostMentionNotifyIm($ID, $arMessageFields) { if ( is_array($arMessageFields) && intval($arMessageFields["TO_USER_ID"]) > 0 && intval($arMessageFields["LOG_ID"]) > 0 ) $res = CSocNetLogFollow::Set(intval($arMessageFields["TO_USER_ID"]), "L".intval($arMessageFields["LOG_ID"]), "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID)); return $res; }
} } } if (count($socnetPermsAdd) > 0) { $socnetPerms = array_merge($socnetPerms, $socnetPermsAdd); } } CSocNetLogRights::DeleteByLogID($arRes["ID"]); CSocNetLogRights::Add($arRes["ID"], $socnetPerms, true); if (count(array_diff($arLogSitesNew, $arLogSites)) > 0) { CSocNetLog::Update($arRes["ID"], array("ENTITY_TYPE" => $arRes["ENTITY_TYPE"], "SITE_ID" => $arLogSitesNew, "=LOG_UPDATE" => $DB->CurrentTimeFunction())); } else { CSocNetLog::Update($arRes["ID"], array("=LOG_UPDATE" => $DB->CurrentTimeFunction())); } /* subscribe share author */ CSocNetLogFollow::Set($user_id, "L" . $arRes["ID"], "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL")); } /* update socnet groupd activity*/ foreach ($arNewRights as $v) { if (substr($v, 0, 2) == "SG") { $group_id_tmp = substr($v, 2); if (IntVal($group_id_tmp) > 0) { CSocNetGroup::SetLastActivity(IntVal($group_id_tmp)); } } } \Bitrix\Main\FinderDestTable::merge(array("CONTEXT" => "blog_post", "CODE" => \Bitrix\Main\FinderDestTable::convertRights($arNewRights))); } } die; }
function Add($arFields, $bSendEvent = true) { global $DB; $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc(); $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSocNetLog::CheckFields("ADD", $arFields)) { return false; } else { $arSiteID = array(); if (array_key_exists("SITE_ID", $arFields)) { if (is_array($arFields["SITE_ID"])) { foreach ($arFields["SITE_ID"] as $site_id) { $arSiteID[$site_id] = $DB->ForSQL($site_id); } } else { $arSiteID[$arFields["SITE_ID"]] = $DB->ForSQL($arFields["SITE_ID"]); } } } if (empty($arSiteID)) { unset($arFields["SITE_ID"]); } else { $arFields["SITE_ID"] = end($arSiteID); } unset($arFields["LOG_UPDATE"]); if (empty($arFields1["LOG_UPDATE"])) { $arFields["~LOG_UPDATE"] = $DB->CurrentTimeFunction(); } $arInsert = $DB->PrepareInsert("b_sonet_log", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) { $arInsert[0] .= ", "; } $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) { $arInsert[1] .= ", "; } $arInsert[1] .= $value; } $ID = false; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_sonet_log(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); if ($ID > 0 && intval($arFields["USER_ID"]) > 0 && strlen($arFields["ENTITY_TYPE"]) > 0 && array_key_exists($arFields["ENTITY_TYPE"], $arSocNetAllowedSubscribeEntityTypesDesc) && is_array($arSocNetAllowedSubscribeEntityTypesDesc[$arFields["ENTITY_TYPE"]]) && $arSocNetAllowedSubscribeEntityTypesDesc[$arFields["ENTITY_TYPE"]]["USE_CB_FILTER"] == "Y") { CSocNetLogFollow::Set($arFields["USER_ID"], "L" . $ID, "Y"); } if ($ID > 0 && $bSendEvent) { CSocNetLog::SendEvent($ID, "SONET_NEW_EVENT"); } if ($ID > 0 && !empty($arSiteID)) { $DB->Query("\n\t\t\t\t\t\tDELETE FROM b_sonet_log_site WHERE LOG_ID = " . $ID . "\n\t\t\t\t\t", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); $DB->Query("\n\t\t\t\t\t\tINSERT INTO b_sonet_log_site(LOG_ID, SITE_ID)\n\t\t\t\t\t\tSELECT " . $ID . ", LID\n\t\t\t\t\t\tFROM b_lang\n\t\t\t\t\t\tWHERE LID IN ('" . implode("', '", $arSiteID) . "')\n\t\t\t\t\t", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); } if ($ID > 0) { $GLOBALS["USER_FIELD_MANAGER"]->Update("SONET_LOG", $ID, $arFields); } } CSocNetLogTools::SetCacheLastLogID("log", $ID); return $ID; }
$arFields["EVENT_ID"] = $event_id; $dbResultTmp = CSocNetLogEvents::GetList(array(), $arFields, false, false, array("ID", "TRANSPORT")); $arFieldsSet = array_merge($arFields, $arFieldsVal); if ($arResultTmp = $dbResultTmp->Fetch()) { if ($arFieldsVal["TRANSPORT"] == "I") { CSocNetLogEvents::Delete($arResultTmp["ID"]); } else { $idTmp = CSocNetLogEvents::Update($arResultTmp["ID"], $arFieldsSet); } } elseif ($arFieldsVal["TRANSPORT"] != "I") { if (!array_key_exists("TRANSPORT", $arFieldsSet)) { $arFieldsSet["TRANSPORT"] = "I"; } $idTmp = CSocNetLogEvents::Add($arFieldsSet); } } } } } } elseif ($action == "change_follow" && $GLOBALS["USER"]->IsAuthorized()) { if ($strRes = CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "L" . intval($_REQUEST["log_id"]), $_REQUEST["follow"] == "Y" ? "Y" : "N")) { $arResult["SUCCESS"] = "Y"; } else { $arResult["SUCCESS"] = "N"; } } header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); echo CUtil::PhpToJSObject($arResult); } define('PUBLIC_AJAX_MODE', true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
"ENTITY_TYPE_ID" => $rating_entity_type, "OWNER_ID" => $arResult["arComments"][$key]["EVENT"]["USER_ID"] ) ); } } } elseif ($action == "change_favorites" && $GLOBALS["USER"]->IsAuthorized()) { $log_id = intval($_REQUEST["log_id"]); if ($arLog = CSocNetLog::GetByID($log_id)) { if ($strRes = CSocNetLogFavorites::Change($GLOBALS["USER"]->GetID(), $log_id)) { if ($strRes == "Y") CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "L".$log_id, "Y"); $arResult["bResult"] = $strRes; } else { if($e = $GLOBALS["APPLICATION"]->GetException()) $arResult["strMessage"] = $e->GetString(); else $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_CANNOT_CHANGE"); $arResult["bResult"] = "E"; } } else { $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_INCORRECT_LOG_ID"); $arResult["bResult"] = "E";
function Add($arFields, $bSetSource = false, $bSendEvent = true, $bSetLogUpDate = true) { global $DB; $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if ( $bSetSource && strlen($arFields["EVENT_ID"]) > 0) { $arCommentEvent = CSocNetLogTools::FindLogCommentEventByID($arFields["EVENT_ID"]); if ( !$arCommentEvent || !array_key_exists("ADD_CALLBACK", $arCommentEvent) || !is_callable($arCommentEvent["ADD_CALLBACK"]) ) { $bSetSource = false; } } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arFields))===false) { return false; } } if ($bSetSource) { $arSource = CSocNetLogComments::SetSource($arFields); if ( $arSource["NO_SOURCE"] == "Y" || intval($arSource["SOURCE_ID"]) > 0 ) { if ($arSource["NO_SOURCE"] == "Y") $bSetSource = false; else $arFields["SOURCE_ID"] = $arSource["SOURCE_ID"]; if ( array_key_exists("RATING_ENTITY_ID", $arSource) && array_key_exists("RATING_TYPE_ID", $arSource) && intval($arSource["RATING_ENTITY_ID"]) > 0 && strlen($arSource["RATING_TYPE_ID"]) > 0 ) { $arFields["RATING_TYPE_ID"] = $arSource["RATING_TYPE_ID"]; $arFields["RATING_ENTITY_ID"] = $arSource["RATING_ENTITY_ID"]; } if (isset($arSource["MESSAGE"]) && strlen($arSource["MESSAGE"]) > 0) $arFields["MESSAGE"] = $arSource["MESSAGE"]; if (isset($arSource["TEXT_MESSAGE"]) && strlen($arSource["TEXT_MESSAGE"]) > 0) $arFields["TEXT_MESSAGE"] = $arSource["TEXT_MESSAGE"]; if (isset($arSource["URL"]) && strlen($arSource["URL"]) > 0) $arFields["URL"] = $arSource["URL"]; if ( isset($arSource["UF"]) && isset($arSource["UF"]["FILE"]) ) { if (!is_array($arSource["UF"]["FILE"])) $arSource["UF"]["FILE"] = array($arSource["UF"]["FILE"]); $arFields["UF_SONET_COM_FILE"] = $arSource["UF"]["FILE"]; } if ( isset($arSource["UF"]) && isset($arSource["UF"]["DOC"]) ) { if (!is_array($arSource["UF"]["DOC"])) $arSource["UF"]["DOC"] = array($arSource["UF"]["DOC"]); $arFields["UF_SONET_COM_DOC"] = $arSource["UF"]["DOC"]; } } else { $strMessage = ( array_key_exists("ERROR", $arSource) && strlen($arSource["ERROR"]) > 0 ? $arSource["ERROR"] : ( array_key_exists("NOTES", $arSource) && strlen($arSource["NOTES"]) > 0 ? $arSource["NOTES"] : "" ) ); } } if (!CSocNetLogComments::CheckFields("ADD", $arFields)) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $e->GetString(); } if (strlen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_GLC_ERROR_CHECKFIELDS_FAILED"); } return array( "ID" => false, "MESSAGE" => $errorMessage ); return false; } if ( !$bSetSource || ( is_array($arSource) && array_key_exists("SOURCE_ID", $arFields) && intval($arFields["SOURCE_ID"]) > 0 ) ) { $arInsert = $DB->PrepareInsert("b_sonet_log_comment", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) $arInsert[0] .= ", "; $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) $arInsert[1] .= ", "; $arInsert[1] .= $value; } $ID = false; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_sonet_log_comment(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); if ($ID > 0) { if ( !array_key_exists("RATING_TYPE_ID", $arFields) || empty($arFields["RATING_TYPE_ID"]) ) CSocNetLogComments::Update($ID, array( "RATING_TYPE_ID" => "LOG_COMMENT", "RATING_ENTITY_ID" => $ID )); CSocNetLogFollow::Set( $arFields["USER_ID"], "L".$arFields["LOG_ID"], "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL") ); $rsLog = CSocNetLog::GetList( array(), array("ID" => $arFields["LOG_ID"]), false, false, array("ID", "USER_ID") ); if ( ($arLog = $rsLog->Fetch()) && (intval($arLog["USER_ID"]) > 0) ) { $default_follow = CSocNetLogFollow::GetDefaultValue($arLog["USER_ID"]); if ($default_follow != "Y") { $rsLogFollow = CSocNetLogFollow::GetList( array( "USER_ID" => $arLog["USER_ID"], "CODE" => "L".$arFields["LOG_ID"] ), array("TYPE") ); $arLogFollow = $rsLogFollow->Fetch(); if (!$arLogFollow) CSocNetLogFollow::Set($arLog["USER_ID"], "L".$arFields["LOG_ID"], "Y"); } } if ($bSendEvent) { CSocNetLogComments::SendEvent($ID, "SONET_NEW_EVENT"); } CSocNetLogComments::UpdateLogData($arFields["LOG_ID"], $bSetLogUpDate); $db_events = GetModuleEvents("socialnetwork", "OnAfterSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } $GLOBALS["USER_FIELD_MANAGER"]->Update("SONET_COMMENT", $ID, $arFields); if(defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_".$arFields["LOG_ID"]); } else { $cache = new CPHPCache; $cache->CleanDir("/sonet/log/".$arFields["LOG_ID"]."/comments/"); } CSocNetLogComments::SendMentionNotification(array_merge($arFields, array("ID" => $ID))); } } CSocNetLogTools::SetCacheLastLogID("comment", $ID); return $ID; } elseif ($bSetSource && strlen($strMessage) > 0) return array( "ID" => false, "MESSAGE" => $strMessage ); else return false; }
public static function InheriteAlbumFollow($albumId, $logId, $authorId = false) { $albumId = intval($albumId); $logId = intval($logId); if (!$albumId || !$logId) { return false; } $dbAlbumLogEntry = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "photo", "SOURCE_ID" => $albumId), false, false, array("ID")); if ($arAlbumLogEntry = $dbAlbumLogEntry->Fetch()) { $rsFollower = CSocNetLogFollow::GetList(array("CODE" => "L" . $arAlbumLogEntry["ID"]), array("USER_ID", "TYPE")); while ($arFollower = $rsFollower->Fetch()) { if ($authorId && intval($authorId) == $arFollower["USER_ID"]) { continue; } CSocNetLogFollow::Set($arFollower["USER_ID"], "L" . $logId, $arFollower["TYPE"], ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID)); } } }
function Add($arFields, $bSetSource = false, $bSendEvent = true, $bSetLogUpDate = true) { global $DB; $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSocNetLogComments::CheckFields("ADD", $arFields)) { return false; } $arCommentEvent = CSocNetLogTools::FindLogCommentEventByID($arFields["EVENT_ID"]); if (!$arCommentEvent || !array_key_exists("ADD_CALLBACK", $arCommentEvent) || !is_callable($arCommentEvent["ADD_CALLBACK"])) { $bSetSource = false; } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false) { return false; } } if ($bSetSource) { $arSource = CSocNetLogComments::SetSource($arFields); if (intval($arSource["SOURCE_ID"]) > 0) { $arFields["SOURCE_ID"] = $arSource["SOURCE_ID"]; if (array_key_exists("RATING_ENTITY_ID", $arSource) && array_key_exists("RATING_TYPE_ID", $arSource) && intval($arSource["RATING_ENTITY_ID"]) > 0 && strlen($arSource["RATING_TYPE_ID"]) > 0) { $arFields["RATING_TYPE_ID"] = $arSource["RATING_TYPE_ID"]; $arFields["RATING_ENTITY_ID"] = $arSource["RATING_ENTITY_ID"]; } if (isset($arSource["MESSAGE"]) && strlen($arSource["MESSAGE"]) > 0) { $arFields["MESSAGE"] = $arSource["MESSAGE"]; } if (isset($arSource["TEXT_MESSAGE"]) && strlen($arSource["TEXT_MESSAGE"]) > 0) { $arFields["TEXT_MESSAGE"] = $arSource["TEXT_MESSAGE"]; } } else { $strMessage = array_key_exists("ERROR", $arSource) && strlen($arSource["ERROR"]) > 0 ? $arSource["ERROR"] : (array_key_exists("NOTES", $arSource) && strlen($arSource["NOTES"]) > 0 ? $arSource["NOTES"] : ""); } } if (!$bSetSource || is_array($arSource) && array_key_exists("SOURCE_ID", $arFields) && intval($arFields["SOURCE_ID"]) > 0) { $arInsert = $DB->PrepareInsert("b_sonet_log_comment", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) { $arInsert[0] .= ", "; } $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) { $arInsert[1] .= ", "; } $arInsert[1] .= $value; } $ID = false; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_sonet_log_comment(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); if ($ID > 0) { if (!array_key_exists("RATING_TYPE_ID", $arFields) || empty($arFields["RATING_TYPE_ID"])) { CSocNetLogComments::Update($ID, array("RATING_TYPE_ID" => "LOG_COMMENT", "RATING_ENTITY_ID" => $ID)); } CSocNetLogFollow::Set($arFields["USER_ID"], "L" . $arFields["LOG_ID"], "Y"); $rsLog = CSocNetLog::GetList(array(), array("ID" => $arFields["LOG_ID"]), false, false, array("ID", "USER_ID")); if (($arLog = $rsLog->Fetch()) && intval($arLog["USER_ID"]) > 0) { $default_follow = CSocNetLogFollow::GetDefaultValue($arLog["USER_ID"]); if ($default_follow != "Y") { $rsLogFollow = CSocNetLogFollow::GetList(array("USER_ID" => $arLog["USER_ID"], "CODE" => "L" . $arFields["LOG_ID"]), array("TYPE")); $arLogFoillow = $rsLogFollow->Fetch(); if (!$arLogFoillow) { CSocNetLogFollow::Set($arLog["USER_ID"], "L" . $arFields["LOG_ID"], "Y"); } } } if ($bSendEvent) { CSocNetLogComments::SendEvent($ID, "SONET_NEW_EVENT"); } CSocNetLogComments::UpdateLogData($arFields["LOG_ID"], $bSetLogUpDate); $db_events = GetModuleEvents("socialnetwork", "OnAfterSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_" . $arFields["LOG_ID"]); } } } CSocNetLogTools::SetCacheLastLogID("comment", $ID); return $ID; } elseif ($bSetSource && strlen($strMessage) > 0) { return array("ID" => false, "MESSAGE" => $strMessage); } else { return false; } }
</script><?php $t = ob_get_clean(); $records[$commentId] = array("ID" => $commentId, "NEW" => $lastLogTs > 0 && $arComment["LOG_DATE_TS"] > $lastLogTs && $USER->IsAuthorized() && $arEvent["EVENT"]["FOLLOW"] != "N" && $arComment["EVENT"]["USER_ID"] != $USER->GetID() && ($arResult["COUNTER_TYPE"] == "**" || $arResult["COUNTER_TYPE"] == "CRM_**" || $arResult["COUNTER_TYPE"] == "blog_post") ? "Y" : "N", "APPROVED" => "Y", "POST_TIMESTAMP" => $arComment["LOG_DATE_TS"], "AUTHOR_ID" => array("ID" => $arComment["CREATED_BY"]["TOOLTIP_FIELDS"]["ID"], "NAME" => $arComment["CREATED_BY"]["TOOLTIP_FIELDS"]["NAME"], "LAST_NAME" => $arComment["CREATED_BY"]["TOOLTIP_FIELDS"]["LAST_NAME"], "SECOND_NAME" => $arComment["CREATED_BY"]["TOOLTIP_FIELDS"]["SECOND_NAME"], "AVATAR" => $arComment["AVATAR_SRC"]), "FILES" => false, "UF" => $arComment["UF"], "~POST_MESSAGE_TEXT" => $arComment["EVENT_FORMATTED"]["MESSAGE"], "POST_MESSAGE_TEXT" => $arComment["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"], "CLASSNAME" => $t ? "" : "", "BEFORE_HEADER" => "", "BEFORE_ACTIONS" => "", "AFTER_ACTIONS" => "", "AFTER_HEADER" => "", "BEFORE" => "", "AFTER" => $t, "BEFORE_RECORD" => "", "AFTER_RECORD" => ""); } $eventHandlerID = AddEventHandler("main", "system.field.view.file", array("CSocNetLogTools", "logUFfileShow")); $rights = CSocNetLogComponent::getCommentRights(array("EVENT_ID" => $arLog["EVENT_ID"], "SOURCE_ID" => $arLog["SOURCE_ID"])); $res = $APPLICATION->IncludeComponent("bitrix:main.post.list", "", array("TEMPLATE_ID" => '', "RATING_TYPE_ID" => $rating_entity_type, "ENTITY_XML_ID" => $entity_xml_id, "RECORDS" => array_reverse($records, true), "NAV_STRING" => $db_res->GetPageNavStringEx($navComponentObject, ""), "NAV_RESULT" => $db_res, "PREORDER" => "N", "RIGHTS" => array("MODERATE" => "N", "EDIT" => $rights["COMMENT_RIGHTS_EDIT"], "DELETE" => $rights["COMMENT_RIGHTS_DELETE"]), "ERROR_MESSAGE" => "", "OK_MESSAGE" => "", "VIEW_URL" => isset($arComment["EVENT"]["URL"]) && strlen($arComment["EVENT"]["URL"]) > 0 ? $arComment["EVENT"]["URL"] : (isset($arParams["PATH_TO_LOG_ENTRY"]) && strlen($arParams["PATH_TO_LOG_ENTRY"]) > 0 ? CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_LOG_ENTRY"], array("log_id" => $arLog["ID"])) . "?commentId=#ID#" : ""), "EDIT_URL" => "__logEditComment('" . $entity_xml_id . "', '#ID#', '" . $log_tmp_id . "');", "MODERATE_URL" => "", "DELETE_URL" => '/bitrix/components/bitrix/socialnetwork.log.entry/ajax.php?lang=' . LANGUAGE_ID . '&action=delete_comment&delete_comment_id=#ID#&post_id=' . $arLog["ID"] . '&site=' . SITE_ID, "AUTHOR_URL" => $arParams["PATH_TO_USER"], "AVATAR_SIZE" => $arParams["AVATAR_SIZE_COMMENT"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "SHOW_LOGIN" => $arParams["SHOW_LOGIN"], "DATE_TIME_FORMAT" => $arParams["DATE_TIME_FORMAT"], "LAZYLOAD" => "Y", "NOTIFY_TAG" => "", "NOTIFY_TEXT" => "", "SHOW_MINIMIZED" => "Y", "SHOW_POST_FORM" => "", "IMAGE_SIZE" => "", "mfi" => ""), array(), null); RemoveEventHandler('main', 'system.field.view.file', $eventHandlerID); } } elseif ($action == "change_favorites" && $GLOBALS["USER"]->IsAuthorized()) { $log_id = intval($_REQUEST["log_id"]); if ($arLog = CSocNetLog::GetByID($log_id)) { $strRes = CSocNetLogFavorites::Change($GLOBALS["USER"]->GetID(), $log_id); if ($strRes) { if ($strRes == "Y") { CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "L" . $log_id, "Y", $arLog["LOG_UPDATE"]); } $arResult["bResult"] = $strRes; } else { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $arResult["strMessage"] = $e->GetString(); } else { $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_CANNOT_CHANGE"); } $arResult["bResult"] = "E"; } } else { $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_INCORRECT_LOG_ID"); $arResult["bResult"] = "E"; } } elseif ($action == "delete" && CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false)) {
function OnBeforeConfirmNotify($module, $tag, $value, $arParams) { if ($module == "socialnetwork") { $arTag = explode("|", $tag); if (count($arTag) == 3 && $arTag[1] == 'UNFOLLOW') { if ($value == 'Y') { CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "**", "N"); } return true; } } }
} } else { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $arResult["strMessage"] = $e->GetString(); } else { $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_CANNOT_CHANGE"); } $arResult["bResult"] = "E"; } } else { $arResult["strMessage"] = GetMessage("SONET_LOG_FAVORITES_INCORRECT_LOG_ID"); $arResult["bResult"] = "E"; } } elseif ($action == "change_follow") { $log_id = intval($_REQUEST["log_id"]); if ($log_id > 0 && ($strRes = CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "L" . $log_id, $_REQUEST["follow"] == "Y" ? "Y" : "N"))) { $arResult["SUCCESS"] = "Y"; } else { $arResult["SUCCESS"] = "N"; } } elseif ($action == "get_more_destination") { $arResult["arDestinations"] = false; $log_id = intval($_REQUEST["log_id"]); $author_id = intval($_REQUEST["author_id"]); $iDestinationLimit = intval($_REQUEST["dlim"]); if ($log_id > 0) { $dbRight = CSocNetLogRights::GetList(array(), array("LOG_ID" => $log_id)); while ($arRight = $dbRight->Fetch()) { $arRights[] = $arRight["GROUP_CODE"]; } $arParams = array("PATH_TO_USER" => $_REQUEST["p_user"], "PATH_TO_GROUP" => $_REQUEST["p_group"], "PATH_TO_CONPANY_DEPARTMENT" => $_REQUEST["p_dep"], "NAME_TEMPLATE" => $_REQUEST["nt"], "SHOW_LOGIN" => $_REQUEST["sl"], "DESTINATION_LIMIT" => 100);
$ajaxUrlParams["flt_date_from"] = $_REQUEST["flt_date_from"]; } if (isset($_REQUEST["flt_date_to"])) { $ajaxUrlParams["flt_date_to"] = $_REQUEST["flt_date_to"]; } $arResult["AjaxURL"] = CHTTP::urlAddParams(CHTTP::urlDeleteParams($arResult["ActionUrl"], array("SONET_FILTER_MODE", "flt_created_by_id", "flt_comments", "flt-date-datesel", "flt_date_days", "flt_date_from", "flt_date_to")), $ajaxUrlParams); } $arResult["MODE"] = isset($_REQUEST["SONET_FILTER_MODE"]) && $_REQUEST["SONET_FILTER_MODE"] == "AJAX" ? "AJAX" : false; if ($GLOBALS["USER"]->IsAuthorized() || $arParams["AUTH"] == "Y" || $arParams["SUBSCRIBE_ONLY"] != "Y") { $arResult["DATE_FILTER"] = array("" => GetMessage("SONET_C30_DATE_FILTER_NO_NO_NO_1"), "today" => GetMessage("SONET_C30_DATE_FILTER_TODAY"), "yesterday" => GetMessage("SONET_C30_DATE_FILTER_YESTERDAY"), "week" => GetMessage("SONET_C30_DATE_FILTER_WEEK"), "week_ago" => GetMessage("SONET_C30_DATE_FILTER_WEEK_AGO"), "month" => GetMessage("SONET_C30_DATE_FILTER_MONTH"), "month_ago" => GetMessage("SONET_C30_DATE_FILTER_MONTH_AGO"), "days" => GetMessage("SONET_C30_DATE_FILTER_LAST"), "exact" => GetMessage("SONET_C30_DATE_FILTER_EXACT"), "after" => GetMessage("SONET_C30_DATE_FILTER_LATER"), "before" => GetMessage("SONET_C30_DATE_FILTER_EARLIER"), "interval" => GetMessage("SONET_C30_DATE_FILTER_INTERVAL")); } $arResult["FOLLOW_TYPE"] = ""; if ($GLOBALS["USER"]->IsAuthorized()) { $arParams["SHOW_SMART_FILTER_MYGROUPS"] = $arParams["USE_SMART_FILTER"]; if (array_key_exists("set_follow_type", $_GET)) { CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "**", $_GET["set_follow_type"] == "Y" ? "Y" : "N", false); if ($_GET["set_follow_type"] != "Y") { $_SESSION["SL_SHOW_FOLLOW_HINT"] = "Y"; } LocalRedirect(""); } elseif ($arParams["USE_SMART_FILTER"] == "Y" && array_key_exists("set_smart_filter_mygroups", $_GET)) { CSocNetLogSmartFilter::Set($GLOBALS["USER"]->GetID(), $_GET["set_smart_filter_mygroups"] == "Y" ? "Y" : "N"); CSocNetLogPages::DeleteEx($GLOBALS["USER"]->GetID(), SITE_ID); LocalRedirect(""); } $arResult["FOLLOW_TYPE"] = CSocNetLogFollow::GetDefaultValue($GLOBALS["USER"]->GetID()); } $arResult["flt_created_by_string"] = ""; if (strlen($_REQUEST["flt_created_by_string"]) > 0) { $arResult["flt_created_by_string"] = $_REQUEST["flt_created_by_string"]; } else {
} $arResult["SUCCESS"] = "Y"; } else { $arResult["SUCCESS"] = "N"; } } else { $arResult["SUCCESS"] = "N"; } } elseif ($action == "change_follow") { $log_id = intval($_REQUEST["log_id"]); if ($log_id > 0 && ($strRes = CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "L" . $log_id, $_REQUEST["follow"] == "Y" ? "Y" : "N"))) { $arResult["SUCCESS"] = "Y"; } else { $arResult["SUCCESS"] = "N"; } } elseif ($action == "change_follow_default") { $arResult["SUCCESS"] = CSocNetLogFollow::Set($GLOBALS["USER"]->GetID(), "**", $_POST["value"] == "Y" ? "Y" : "N") ? "Y" : "N"; } elseif ($action == "log_error") { $message = trim($_REQUEST["message"]); $url = trim($_REQUEST["url"]); $linenumber = intval($_REQUEST["linenumber"]); if (!IsModuleInstalled("bitrix24")) { AddMessage2Log("Mobile Livefeed javascript error:\nMessage: " . $message . "\nURL: " . $url . "\nLine number: " . $linenumber . "\nUser ID: " . $GLOBALS["USER"]->GetID()); } } header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); echo CUtil::PhpToJSObject($arResult); } define('PUBLIC_AJAX_MODE', true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php"; die;