%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.ex/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.ex/ajax.php |
<?
define("NO_KEEP_STATISTIC", true);
define("BX_STATISTIC_BUFFER_USED", false);
define("NO_LANG_FILES", true);
define("NOT_CHECK_PERMISSIONS", true);
$site_id = (isset($_REQUEST["site"]) && is_string($_REQUEST["site"])) ? trim($_REQUEST["site"]): "";
$site_id = substr(preg_replace("/[^a-z0-9_]/i", "", $site_id), 0, 2);
define("SITE_ID", $site_id);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/bx_root.php");
$action = (isset($_REQUEST["action"]) && is_string($_REQUEST["action"])) ? trim($_REQUEST["action"]): "";
$entity_type = (isset($_REQUEST["et"]) && is_string($_REQUEST["et"])) ? trim($_REQUEST["et"]): "";
$entity_id = isset($_REQUEST["eid"])? $_REQUEST["eid"]: "";
$cb_id = isset($_REQUEST["cb_id"])? $_REQUEST["cb_id"]: "";
$event_id = (isset($_REQUEST["evid"]) && is_string($_REQUEST["evid"])) ? trim($_REQUEST["evid"]): "";
$transport = (isset($_REQUEST["transport"]) && is_string($_REQUEST["transport"])) ? trim($_REQUEST["transport"]): "";
$lng = (isset($_REQUEST["lang"]) && is_string($_REQUEST["lang"])) ? trim($_REQUEST["lang"]): "";
$lng = substr(preg_replace("/[^a-z0-9_]/i", "", $lng), 0, 2);
$ls = isset($_REQUEST["ls"]) && !is_array($_REQUEST["ls"])? trim($_REQUEST["ls"]): "";
$ls_arr = isset($_REQUEST["ls_arr"])? $_REQUEST["ls_arr"]: "";
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Localization\Loc;
use Bitrix\Socialnetwork\Livefeed;
global $USER;
$rsSite = CSite::GetByID($site_id);
if ($arSite = $rsSite->Fetch())
{
define("LANGUAGE_ID", $arSite["LANGUAGE_ID"]);
}
else
{
define("LANGUAGE_ID", "en");
}
if (empty($lng))
{
$lng = LANGUAGE_ID;
}
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/components/bitrix/socialnetwork.log.ex/include.php");
Loc::loadLanguageFile(__FILE__, $lng);
if(CModule::IncludeModule("compression"))
CCompress::Disable2048Spaces();
if(CModule::IncludeModule("socialnetwork"))
{
$bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin();
$arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
// write and close session to prevent lock;
session_write_close();
$arResult = array();
if (in_array($action, array("get_comment", "get_comments")))
{
CSocNetTools::InitGlobalExtranetArrays();
}
if (!$USER->IsAuthorized())
{
$arResult[0] = "*";
}
elseif (!check_bitrix_sessid())
{
$arResult[0] = "*";
}
elseif ($action == "get_raw_data")
{
$provider = \Bitrix\Socialnetwork\Livefeed\Provider::init(array(
'ENTITY_TYPE' => (isset($_REQUEST['ENTITY_TYPE']) ? preg_replace("/[^a-z0-9_]/i", "", $_REQUEST['ENTITY_TYPE']) : false),
'ENTITY_ID' => (isset($_REQUEST['ENTITY_ID']) ? intval($_REQUEST['ENTITY_ID']) : false),
'CLONE_DISK_OBJECTS' => true
));
if ($provider)
{
$arResult = array(
'TITLE' => $provider->getSourceTitle(),
'DESCRIPTION' => $provider->getSourceDescription(),
'DISK_OBJECTS' => $provider->getSourceDiskObjects()
);
if (isset($_REQUEST["params"]))
{
if (
isset($_REQUEST["params"]["getSonetGroupAvailableList"])
&& !!$_REQUEST["params"]["getSonetGroupAvailableList"]
)
{
$feature = $operation = false;
if (
isset($_REQUEST["params"]["checkParams"])
&& isset($_REQUEST["params"]["checkParams"]["feature"])
&& isset($_REQUEST["params"]["checkParams"]["operation"])
)
{
$feature = $_REQUEST["params"]["checkParams"]["feature"];
$operation = $_REQUEST["params"]["checkParams"]["operation"];
}
$arResult['GROUPS_AVAILABLE'] = $provider->getSonetGroupsAvailable($feature, $operation);
}
if (
isset($_REQUEST["params"]["getLivefeedUrl"])
&& !!$_REQUEST["params"]["getLivefeedUrl"]
)
{
$arResult['LIVEFEED_URL'] = $provider->getLiveFeedUrl();
}
}
if ($provider->getType() == Livefeed\Provider::TYPE_COMMENT)
{
$arResult['SUFFIX'] = $provider->getSuffix();
}
}
}
elseif ($action == "create_task_comment")
{
if (
isset($_REQUEST['ENTITY_TYPE'])
&& isset($_REQUEST['ENTITY_ID'])
&& isset($_REQUEST['TASK_ID'])
)
{
if (in_array($_REQUEST['ENTITY_TYPE'], array('BLOG_POST', 'BLOG_COMMENT')))
{
\Bitrix\Socialnetwork\ComponentHelper::processBlogCreateTask(array(
'TASK_ID' => intval($_REQUEST['TASK_ID']),
'SOURCE_ENTITY_TYPE' => preg_replace("/[^a-z0-9_]/i", "", $_REQUEST['ENTITY_TYPE']),
'SOURCE_ENTITY_ID' => intval($_REQUEST['ENTITY_ID']),
'LIVE' => 'Y'
));
}
else
{
\Bitrix\Socialnetwork\ComponentHelper::processLogEntryCreateTask(array(
'TASK_ID' => intval($_REQUEST['TASK_ID']),
'POST_ENTITY_TYPE' => preg_replace("/[^a-z0-9_]/i", "", $_REQUEST['POST_ENTITY_TYPE']),
'SOURCE_ENTITY_TYPE' => preg_replace("/[^a-z0-9_]/i", "", $_REQUEST['ENTITY_TYPE']),
'SOURCE_ENTITY_ID' => intval($_REQUEST['ENTITY_ID']),
'LIVE' => 'Y'
));
}
}
}
elseif ($action == "get_data")
{
if
(
intval($entity_id) > 0
&& array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("CLASS_DESC_GET", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& array_key_exists("METHOD_DESC_GET", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
)
$arEntityTmp = call_user_func(
array(
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["CLASS_DESC_GET"],
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["METHOD_DESC_GET"]
),
$entity_id
);
else
$arEntityTmp = array();
if (intval($cb_id) > 0)
$arCreatedByTmp = call_user_func(
array(
$arSocNetAllowedSubscribeEntityTypesDesc[SONET_SUBSCRIBE_ENTITY_USER]["CLASS_DESC_GET"],
$arSocNetAllowedSubscribeEntityTypesDesc[SONET_SUBSCRIBE_ENTITY_USER]["METHOD_DESC_GET"]
),
$cb_id
);
else
$arCreatedByTmp = array();
$is_my = false;
if (
array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("CLASS_MY_BY_ID", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& array_key_exists("METHOD_MY_BY_ID", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
)
$is_my = call_user_func(
array(
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["CLASS_MY_BY_ID"],
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["METHOD_MY_BY_ID"]
),
$entity_id
);
$arSubscribe = array();
$arFilter = array(
"USER_ID" => $USER->GetID(),
"ENTITY_TYPE" => $entity_type,
"ENTITY_ID" => $entity_id,
"ENTITY_CB" => "N"
);
$dbResultTmp = CSocNetLogEvents::GetList(
array(),
$arFilter
);
while($arSubscribesTmp = $dbResultTmp->Fetch())
{
if ($arSubscribesTmp["EVENT_ID"] == $event_id)
$arSubscribe["EVENT"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
elseif ($arSubscribesTmp["EVENT_ID"] == 'all')
$arSubscribe["ALL"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
else
continue;
}
$arFilter = array(
"USER_ID" => $USER->getID(),
"ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_USER,
"ENTITY_ID" => $cb_id,
"ENTITY_CB" => "Y"
);
$dbResultTmp = CSocNetLogEvents::GetList(
array(),
$arFilter
);
while($arSubscribesTmp = $dbResultTmp->Fetch())
{
if ($arSubscribesTmp["EVENT_ID"] == $event_id)
$arSubscribe["CB_EVENT"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
elseif ($arSubscribesTmp["EVENT_ID"] == 'all')
$arSubscribe["CB_ALL"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
else
continue;
}
$arFilter = array(
"USER_ID" => $USER->getId(),
"ENTITY_TYPE" => $entity_type,
"ENTITY_ID" => 0
);
$dbResultTmp = CSocNetLogEvents::GetList(
array(),
$arFilter
);
while($arSubscribesTmp = $dbResultTmp->Fetch())
{
if ($is_my && $arSubscribesTmp["ENTITY_MY"] == "Y")
{
if ($arSubscribesTmp["EVENT_ID"] == $event_id)
$arSubscribe["COMMON_EVENT_MY"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
elseif ($arSubscribesTmp["EVENT_ID"] == 'all')
$arSubscribe["COMMON_ALL_MY"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
else
continue;
}
elseif ($arSubscribesTmp["ENTITY_MY"] == "N")
{
if ($arSubscribesTmp["EVENT_ID"] == $event_id)
$arSubscribe["COMMON_EVENT"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
elseif ($arSubscribesTmp["EVENT_ID"] == 'all')
$arSubscribe["COMMON_ALL"] = array(
"TRANSPORT" => $arSubscribesTmp["TRANSPORT"],
"TRANSPORT_INHERITED" => false
);
else
continue;
}
}
$value_default = "N";
$strTmp = "TRANSPORT";
if (
!array_key_exists("EVENT", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["EVENT"])
|| $arSubscribe["EVENT"][$strTmp] == "I"
)
{
if (
array_key_exists("ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["ALL"])
&& $arSubscribe["ALL"][$strTmp] != "I"
)
{
$arSubscribe["EVENT"][$strTmp] = $arSubscribe["ALL"][$strTmp];
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
elseif (
$is_my
&& array_key_exists("COMMON_EVENT_MY", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_EVENT_MY"])
&& $arSubscribe["COMMON_EVENT_MY"][$strTmp] != "I"
)
{
$arSubscribe["EVENT"][$strTmp] = $arSubscribe["COMMON_EVENT_MY"][$strTmp];
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
elseif (
$is_my
&& array_key_exists("COMMON_ALL_MY", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL_MY"])
&& $arSubscribe["COMMON_ALL_MY"][$strTmp] != "I"
)
{
$arSubscribe["EVENT"][$strTmp] = $arSubscribe["COMMON_ALL_MY"][$strTmp];
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
elseif (
array_key_exists("COMMON_EVENT", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_EVENT"])
&& $arSubscribe["COMMON_EVENT"][$strTmp] != "I"
)
{
$arSubscribe["EVENT"][$strTmp] = $arSubscribe["COMMON_EVENT"][$strTmp];
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
elseif (
array_key_exists("COMMON_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
&& $arSubscribe["COMMON_ALL"][$strTmp] != "I"
)
{
$arSubscribe["EVENT"][$strTmp] = $arSubscribe["COMMON_ALL"][$strTmp];
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["EVENT"][$strTmp] = $value_default;
$arSubscribe["EVENT"][$strTmp."_INHERITED"] = true;
}
}
if (
!array_key_exists("ALL", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["ALL"])
|| $arSubscribe["ALL"][$strTmp] == "I"
)
{
if (
$is_my
&& array_key_exists("COMMON_ALL_MY", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL_MY"])
&& $arSubscribe["COMMON_ALL_MY"][$strTmp] != "I"
)
{
$arSubscribe["ALL"][$strTmp] = $arSubscribe["COMMON_ALL_MY"][$strTmp];
$arSubscribe["ALL"][$strTmp."_INHERITED"] = true;
}
elseif (
array_key_exists("COMMON_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
&& $arSubscribe["COMMON_ALL"][$strTmp] != "I"
)
{
$arSubscribe["ALL"][$strTmp] = $arSubscribe["COMMON_ALL"][$strTmp];
$arSubscribe["ALL"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["ALL"][$strTmp] = $value_default;
$arSubscribe["ALL"][$strTmp."_INHERITED"] = true;
}
}
if (
$is_my
&&
(
!array_key_exists("COMMON_EVENT_MY", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["COMMON_EVENT_MY"])
|| $arSubscribe["COMMON_EVENT_MY"][$strTmp] == "I"
)
)
{
if (
array_key_exists("COMMON_ALL_MY", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL_MY"])
&& $arSubscribe["COMMON_ALL_MY"][$strTmp] != "I"
)
{
$arSubscribe["COMMON_EVENT_MY"][$strTmp] = $arSubscribe["COMMON_ALL_MY"][$strTmp];
$arSubscribe["COMMON_EVENT_MY"][$strTmp."_INHERITED"] = true;
}
elseif (
array_key_exists("COMMON_EVENT", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_EVENT"])
&& $arSubscribe["COMMON_EVENT"][$strTmp] != "I"
)
{
$arSubscribe["COMMON_EVENT_MY"][$strTmp] = $arSubscribe["COMMON_EVENT"][$strTmp];
$arSubscribe["COMMON_EVENT_MY"][$strTmp."_INHERITED"] = true;
}
elseif (
array_key_exists("COMMON_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
&& $arSubscribe["COMMON_ALL"][$strTmp] != "I"
)
{
$arSubscribe["COMMON_EVENT_MY"][$strTmp] = $arSubscribe["COMMON_ALL"][$strTmp];
$arSubscribe["COMMON_EVENT_MY"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["COMMON_EVENT_MY"][$strTmp] = $value_default;
$arSubscribe["COMMON_EVENT_MY"][$strTmp."_INHERITED"] = true;
}
}
if (
$is_my
&&
(
!array_key_exists("COMMON_ALL_MY", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["COMMON_ALL_MY"])
|| $arSubscribe["COMMON_ALL_MY"][$strTmp] == "I"
)
)
{
if (
array_key_exists("COMMON_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
&& $arSubscribe["COMMON_ALL"][$strTmp] != "I"
)
{
$arSubscribe["COMMON_ALL_MY"][$strTmp] = $arSubscribe["COMMON_ALL"][$strTmp];
$arSubscribe["COMMON_ALL_MY"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["COMMON_ALL_MY"][$strTmp] = $value_default;
$arSubscribe["COMMON_ALL_MY"][$strTmp."_INHERITED"] = true;
}
}
if (
!array_key_exists("COMMON_EVENT", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["COMMON_EVENT"])
|| $arSubscribe["COMMON_EVENT"][$strTmp] == "I"
)
{
if (
array_key_exists("COMMON_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
&& $arSubscribe["COMMON_ALL"][$strTmp] != "I"
)
{
$arSubscribe["COMMON_EVENT"][$strTmp] = $arSubscribe["COMMON_ALL"][$strTmp];
$arSubscribe["COMMON_EVENT"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["COMMON_EVENT"][$strTmp] = $value_default;
$arSubscribe["COMMON_EVENT"][$strTmp."_INHERITED"] = true;
}
}
if (
!array_key_exists("COMMON_ALL", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["COMMON_ALL"])
|| $arSubscribe["COMMON_ALL"][$strTmp] == "I"
)
{
$arSubscribe["COMMON_ALL"][$strTmp] = $value_default;
$arSubscribe["COMMON_ALL"][$strTmp."_INHERITED"] = true;
}
$fullset_event_id = CSocNetLogTools::FindFullSetEventIDByEventID($event_id);
if ($fullset_event_id)
$arEvent = CSocNetLogTools::FindLogEventByID($fullset_event_id, $entity_type);
else
$arEvent = CSocNetLogTools::FindLogEventByID($event_id, $entity_type);
if (!$arEvent)
{
$arEvent = CSocNetLogTools::FindLogEventByCommentID($event_id);
if ($arEvent)
{
$fullset_event_id = CSocNetLogTools::FindFullSetEventIDByEventID($arEvent["EVENT_ID"]);
if ($fullset_event_id)
$arEvent = CSocNetLogTools::FindLogEventByID($fullset_event_id, $entity_type);
}
}
if ($arEvent)
{
$arSubscribe["EVENT"]["TITLE"] = $arEvent["ENTITIES"][$entity_type]["TITLE_SETTINGS"];
if (
array_key_exists("NAME_FORMATTED", $arEntityTmp)
&& strlen($arEntityTmp["NAME_FORMATTED"]) > 0
)
{
$arSubscribe["EVENT"]["TITLE_1"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arEntityTmp) ? $arEntityTmp["~NAME_FORMATTED"] : $arEntityTmp["NAME_FORMATTED"]),
$arEvent["ENTITIES"][$entity_type]["TITLE_SETTINGS_1"]
);
$arSubscribe["EVENT"]["TITLE_2"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arEntityTmp) ? $arEntityTmp["~NAME_FORMATTED"] : $arEntityTmp["NAME_FORMATTED"]),
$arEvent["ENTITIES"][$entity_type]["TITLE_SETTINGS_2"]
);
}
}
if (
array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("TITLE_SETTINGS_ALL", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& strlen($arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["TITLE_SETTINGS_ALL"]) > 0
)
{
$arSubscribe["ALL"]["TITLE"] = $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["TITLE_SETTINGS_ALL"];
}
if (
array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("TITLE_SETTINGS_ALL_1", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& strlen($arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["TITLE_SETTINGS_ALL_1"]) > 0
&& array_key_exists("NAME_FORMATTED", $arEntityTmp)
&& strlen($arEntityTmp["NAME_FORMATTED"]) > 0
)
{
$arSubscribe["ALL"]["TITLE_1"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arEntityTmp) ? $arEntityTmp["~NAME_FORMATTED"] : $arEntityTmp["NAME_FORMATTED"]),
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["TITLE_SETTINGS_ALL_1"]
);
$arSubscribe["ALL"]["TITLE_2"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arEntityTmp) ? $arEntityTmp["~NAME_FORMATTED"] : $arEntityTmp["NAME_FORMATTED"]),
$arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["TITLE_SETTINGS_ALL_2"]
);
}
if (CSocNetLogTools::HasLogEventCreatedBy($event_id))
{
$value_default = "N";
$strTmp = "TRANSPORT";
if (
!array_key_exists("CB_EVENT", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["CB_EVENT"])
|| $arSubscribe["CB_EVENT"][$strTmp] == "I"
)
{
if (
array_key_exists("CB_ALL", $arSubscribe)
&& array_key_exists($strTmp, $arSubscribe["CB_ALL"])
&& $arSubscribe["CB_ALL"][$strTmp] != "I"
)
{
$arSubscribe["CB_EVENT"][$strTmp] = $arSubscribe["CB_ALL"][$strTmp];
$arSubscribe["CB_EVENT"][$strTmp."_INHERITED"] = true;
}
else
{
$arSubscribe["CB_EVENT"][$strTmp] = $value_default;
$arSubscribe["CB_EVENT"][$strTmp."_INHERITED"] = true;
}
}
if (
!array_key_exists("CB_ALL", $arSubscribe)
|| !array_key_exists($strTmp, $arSubscribe["CB_ALL"])
|| $arSubscribe["CB_ALL"][$strTmp] == "I"
)
{
$arSubscribe["CB_ALL"][$strTmp] = $value_default;
$arSubscribe["CB_ALL"][$strTmp."_INHERITED"] = true;
}
$arSubscribe["CB_ALL"]["TITLE"] = Loc::getMessage("SUBSCRIBE_CB_ALL", false, $lng);
if (
array_key_exists("NAME_FORMATTED", $arCreatedByTmp)
&& strlen($arCreatedByTmp["NAME_FORMATTED"]) > 0
)
{
$arSubscribe["CB_ALL"]["TITLE_1"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arCreatedByTmp) ? $arCreatedByTmp["~NAME_FORMATTED"] : $arCreatedByTmp["NAME_FORMATTED"]),
Loc::getMessage("SUBSCRIBE_CB_ALL_1", false, $lng)
);
$arSubscribe["CB_ALL"]["TITLE_2"] = str_replace(
array("#TITLE#"),
array(array_key_exists("~NAME_FORMATTED", $arCreatedByTmp) ? $arCreatedByTmp["~NAME_FORMATTED"] : $arCreatedByTmp["NAME_FORMATTED"]),
Loc::getMessage("SUBSCRIBE_CB_ALL_2", false, $lng)
);
}
}
else
{
if (array_key_exists("CB_EVENT", $arSubscribe))
unset($arSubscribe["CB_EVENT"]);
if (array_key_exists("CB_ALL", $arSubscribe))
unset($arSubscribe["CB_ALL"]);
}
$arSubscribe["SITE_ID"] = (
array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("HAS_SITE_ID", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["HAS_SITE_ID"] == "Y"
&& strlen($site_id) > 0
?
$site_id
:
false
);
$arResult["Subscription"] = $arSubscribe;
$arResult["Transport"] = array(
0 => array("Key" => "N", "Value" => Loc::getMessage("SUBSCRIBE_TRANSPORT_NONE", false, $lng)),
1 => array("Key" => "M", "Value" => Loc::getMessage("SUBSCRIBE_TRANSPORT_MAIL", false, $lng)),
);
if (CBXFeatures::IsFeatureEnabled("WebMessenger"))
$arResult["Transport"][] = array("Key" => "X", "Value" => Loc::getMessage("SUBSCRIBE_TRANSPORT_XMPP", false, $lng));
}
elseif ($action == "set")
{
$arFields = false;
if (in_array($ls, array("EVENT", "ALL")))
{
$arFields = array(
"USER_ID" => $USER->getId(),
"ENTITY_TYPE" => $entity_type,
"ENTITY_ID" => $entity_id,
"ENTITY_CB" => "N"
);
if($ls == "EVENT")
$arEventID = CSocNetLogTools::FindFullSetByEventID($event_id);
else
$arEventID = array("all");
}
elseif (in_array($ls, array("CB_ALL")))
{
$arFields = array(
"USER_ID" => $USER->getId(),
"ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_USER,
"ENTITY_ID" => $cb_id,
"ENTITY_CB" => "Y"
);
$arEventID = array("all");
}
if ($arFields && strlen($transport) > 0)
{
if (
$arFields["ENTITY_CB"] != "Y"
&& array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("HAS_SITE_ID", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["HAS_SITE_ID"] == "Y"
&& strlen($site_id) > 0
)
$arFieldsVal["SITE_ID"] = $site_id;
else
$arFieldsVal["SITE_ID"] = false;
if (strlen($transport) > 0)
$arFieldsVal["TRANSPORT"] = $transport;
foreach($arEventID as $event_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 == "set_transport_arr")
{
$arFields = false;
if (is_array($ls_arr))
{
foreach($ls_arr as $ls => $transport)
{
$ls = trim($ls);
if (in_array($ls, array("EVENT", "ALL")))
{
$arFields = array(
"USER_ID" => $USER->getId(),
"ENTITY_TYPE" => $entity_type,
"ENTITY_ID" => $entity_id,
"ENTITY_CB" => "N"
);
if($ls == "EVENT")
$arEventID = CSocNetLogTools::FindFullSetByEventID($event_id);
else
$arEventID = array("all");
}
elseif (in_array($ls, array("CB_ALL")))
{
$arFields = array(
"USER_ID" => $USER->getId(),
"ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_USER,
"ENTITY_ID" => $cb_id,
"ENTITY_CB" => "Y"
);
$arEventID = array("all");
}
if ($arFields && strlen($transport) > 0)
{
if (
$arFields["ENTITY_CB"] != "Y"
&& array_key_exists($entity_type, $arSocNetAllowedSubscribeEntityTypesDesc)
&& array_key_exists("HAS_SITE_ID", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
&& $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["HAS_SITE_ID"] == "Y"
&& strlen($site_id) > 0
)
$arFieldsVal["SITE_ID"] = $site_id;
else
$arFieldsVal["SITE_ID"] = false;
if (strlen($transport) > 0)
$arFieldsVal["TRANSPORT"] = $transport;
foreach($arEventID as $event_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"
&& $USER->isAuthorized()
)
{
$arResult["SUCCESS"] = (
($strRes = CSocNetLogFollow::Set($USER->getId(), "L".intval($_REQUEST["log_id"]), ($_REQUEST["follow"] == "Y" ? "Y" : "N")))
? "Y"
: "N"
);
if ($_REQUEST["follow"] == "Y")
{
\Bitrix\Socialnetwork\ComponentHelper::userLogSubscribe(array(
'logId' => $_REQUEST["log_id"],
'userId' => $USER->getId(),
'typeList' => array(
'COUNTER_COMMENT_PUSH'
)
));
}
}
if (empty($_REQUEST['mobile_action']))
{
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");
?>