コード例 #1
0
 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;
     }
 }
コード例 #2
0
ファイル: log_rights.php プロジェクト: andy-profi/bxApiDocs
 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;
     }
 }
コード例 #3
0
ファイル: log_follow.php プロジェクト: ASDAFF/bxApiDocs
	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;
	}
コード例 #4
0
ファイル: component.php プロジェクト: Satariall/izurit
                             }
                         }
                     }
                     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;
 }
コード例 #5
0
ファイル: log.php プロジェクト: Satariall/izurit
 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;
 }
コード例 #6
0
ファイル: ajax.php プロジェクト: k-kalashnikov/geekcon_new
                        $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";
コード例 #7
0
ファイル: ajax.php プロジェクト: ASDAFF/bitrix-5
							"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";
コード例 #8
0
	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;
	}
コード例 #9
0
ファイル: log_tools_photo.php プロジェクト: rasuldev/torino
 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));
         }
     }
 }
コード例 #10
0
 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;
     }
 }
コード例 #11
0
ファイル: ajax.php プロジェクト: Satariall/izurit
</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)) {
コード例 #12
0
ファイル: log_follow.php プロジェクト: DarneoStudio/bitrix
 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;
         }
     }
 }
コード例 #13
0
ファイル: ajax.php プロジェクト: mrdeadmouse/u136006
             }
         } 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);
コード例 #14
0
ファイル: component.php プロジェクト: webgksupport/alpina
        $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 {
コード例 #15
0
ファイル: ajax.php プロジェクト: mrdeadmouse/u136006
                }
                $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;