function InstallFiles() { if ($_ENV['COMPUTERNAME'] != 'BX') { CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/im/install/js", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/js", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/im/install/components", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components", true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/im/install/activities', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/activities', true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/im/install/admin', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin', true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/im/install/templates", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/templates", True, True); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/im/install/public", $_SERVER["DOCUMENT_ROOT"] . "/", True, True); $default_site_id = CSite::GetDefSite(); if ($default_site_id) { $arAppTempalate = array("SORT" => 1, "CONDITION" => "CSite::InDir('/desktop_app/')", "TEMPLATE" => "desktop_app"); $arFields = array("TEMPLATE" => array()); $dbTemplates = CSite::GetTemplateList($default_site_id); $desktopAppFound = false; while ($template = $dbTemplates->Fetch()) { if ($template["TEMPLATE"] == "desktop_app") { $desktopAppFound = true; $template = $arAppTempalate; } $arFields["TEMPLATE"][] = array("TEMPLATE" => $template['TEMPLATE'], "SORT" => $template['SORT'], "CONDITION" => $template['CONDITION']); } if (!$desktopAppFound) { $arFields["TEMPLATE"][] = $arAppTempalate; } $obSite = new CSite(); $arFields["LID"] = $default_site_id; $obSite->Update($default_site_id, $arFields); } $GLOBALS["APPLICATION"]->SetFileAccessPermission('/desktop_app/', array("*" => "R")); } return true; }
function InstallFiles() { CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/mobile/public/mobile/", $_SERVER["DOCUMENT_ROOT"] . "/mobile/", True, True); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/mobile/install/templates/", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/templates/", True, True); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/mobile/install/components/", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components", true, true); $default_site_id = CSite::GetDefSite(); if ($default_site_id) { $arAppTempalate = array("SORT" => 1, "CONDITION" => "CSite::InDir('/mobile/')", "TEMPLATE" => "mobile_app"); $arFields = array("TEMPLATE" => array()); $dbTemplates = CSite::GetTemplateList($default_site_id); $mobileAppFound = false; while ($template = $dbTemplates->Fetch()) { if ($template["TEMPLATE"] == "mobile_app") { $mobileAppFound = true; $template = $arAppTempalate; } $arFields["TEMPLATE"][] = array("TEMPLATE" => $template['TEMPLATE'], "SORT" => $template['SORT'], "CONDITION" => $template['CONDITION']); } if (!$mobileAppFound) { $arFields["TEMPLATE"][] = $arAppTempalate; } $obSite = new CSite(); $arFields["LID"] = $default_site_id; $obSite->Update($default_site_id, $arFields); } CUrlRewriter::ReindexFile("/mobile/webdav/index.php"); CUrlRewriter::ReindexFile("/mobile/disk/index.php"); CUrlRewriter::Add(array("CONDITION" => "#^/mobile/disk/(?<hash>[0-9]+)/download#", "RULE" => "download=1&objectId=\$1", "ID" => "bitrix:mobile.disk.file.detail", "PATH" => "/mobile/disk/index.php")); return true; }
function InstallFiles($site_dir = "/", $default_site_id = false) { CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/eshopapp/install/components", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/eshopapp/install/templates/", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/templates/", true, true); if (!$default_site_id) { $default_site_id = CSite::GetDefSite(); } if ($default_site_id) { $arAppTempalate = array("SORT" => 1, "CONDITION" => "CSite::InDir('" . $site_dir . "eshop_app/')", "TEMPLATE" => "eshop_app"); $arFields = array("TEMPLATE" => array()); $dbTemplates = CSite::GetTemplateList($default_site_id); $eshopAppFound = false; while ($template = $dbTemplates->Fetch()) { if ($template["TEMPLATE"] == "eshop_app") { $eshopAppFound = true; $template = $arAppTempalate; } $arFields["TEMPLATE"][] = array("TEMPLATE" => $template['TEMPLATE'], "SORT" => $template['SORT'], "CONDITION" => $template['CONDITION']); } if (!$eshopAppFound) { $arFields["TEMPLATE"][] = $arAppTempalate; } $obSite = new CSite(); $arFields["LID"] = $default_site_id; $obSite->Update($default_site_id, $arFields); } return true; }
protected function processActionCreateDefaultProcesses() { try { $defaultSiteId = CSite::GetDefSite(); $iterator = CSite::GetByID($defaultSiteId); $site = $iterator->Fetch(); $defaultLang = $site ? $site['LANGUAGE_ID'] : 'en'; if ($defaultLang == 'ua') { $defaultLang = 'ru'; } \Bitrix\Lists\Importer::installProcesses($defaultLang, $this->request->getPost('siteId')); } catch (Exception $e) { $this->errorCollection->add(array(new Error($e->getMessage()))); } if ($this->errorCollection->hasErrors()) { $this->sendJsonErrorResponse(); } $this->sendJsonSuccessResponse(); }
/** * WARNING! This method is transitional and can be changed without * any notifications! Don't use it. * * @deprecated */ public static function __deprecated_Add($commentText, $forumTopicId, $forumId, $nameTemplate, $arTask, $permissions, $commentId, $givenUserId, $imageWidth, $imageHeight, $arSmiles, $arForum, $messagesPerPage, $arUserGroupArray, $backPage, $strMsgAddComment, $strMsgEditComment, $strMsgNewTask, $componentName, &$outForumTopicId, &$arErrorCodes, &$outStrUrl, $arFieldsAdditional) { global $DB; if (is_array($arTask)) { if (!array_key_exists('~TITLE', $arTask)) { $arTmpTask = $arTask; foreach ($arTmpTask as $key => $value) { if (substr($key, 0, 1) !== '~') { $arTask['~' . $key] = $arTmpTask[$key]; } } } } $MID = 0; $TID = 0; if ($forumTopicId > 0 && CForumTopic::GetByID($forumTopicId) === false) { $forumTopicId = false; } if ($forumTopicId <= 0) { $arUserStart = array("ID" => intVal($arTask["CREATED_BY"]), "NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"]); if ($arUserStart["ID"] > 0) { $res = array(); $db_res = CForumUser::GetListEx(array(), array("USER_ID" => $arTask["CREATED_BY"])); if ($db_res && ($res = $db_res->Fetch())) { $res["FORUM_USER_ID"] = intVal($res["ID"]); $res["ID"] = $res["USER_ID"]; } else { $db_res = CUser::GetByID($arTask["CREATED_BY"]); if ($db_res && ($res = $db_res->Fetch())) { $res["SHOW_NAME"] = COption::GetOptionString("forum", "USER_SHOW_NAME", "Y"); $res["USER_PROFILE"] = "N"; } } if (!empty($res)) { $arUserStart = $res; $sName = $res["SHOW_NAME"] == "Y" ? trim(CUser::FormatName($nameTemplate, $res)) : ""; $arUserStart["NAME"] = empty($sName) ? trim($res["LOGIN"]) : $sName; } } $arUserStart["NAME"] = empty($arUserStart["NAME"]) ? $GLOBALS["FORUM_STATUS_NAME"]["guest"] : $arUserStart["NAME"]; $DB->StartTransaction(); $arFields = array("TITLE" => $arTask["~TITLE"], "FORUM_ID" => $forumId, "USER_START_ID" => $arUserStart["ID"], "USER_START_NAME" => $arUserStart["NAME"], "LAST_POSTER_NAME" => $arUserStart["NAME"], "APPROVED" => "Y", "PERMISSION_EXTERNAL" => $permissions, "PERMISSION" => $permissions, "NAME_TEMPLATE" => $nameTemplate, 'XML_ID' => 'TASK_' . $arTask['ID']); $TID = CForumTopic::Add($arFields); if (intVal($TID) <= 0) { $arErrorCodes[] = array('code' => 'topic is not created'); } else { $arFields = array("FORUM_TOPIC_ID" => $TID); $task = new CTasks(); $task->Update($arTask["ID"], $arFields); } if (!empty($arErrorCodes)) { $DB->Rollback(); return false; } else { $DB->Commit(); } } $arFieldsG = array("POST_MESSAGE" => $commentText, "AUTHOR_NAME" => '', "AUTHOR_EMAIL" => $GLOBALS['USER']->GetEmail(), "USE_SMILES" => NULL, "PARAM2" => $arTask['ID'], "TITLE" => $arTask["~TITLE"], "PERMISSION_EXTERNAL" => $permissions, "PERMISSION" => $permissions); // UF_* forwarding if (is_array($arFieldsAdditional)) { foreach ($arFieldsAdditional as $field => $value) { if (strlen($field) && substr($field, 0, 3) == 'UF_') { $arFieldsG[$field] = $value; $GLOBALS[$field] = $value; // strange behaviour required for ForumMessageAdd() to handle UF_* properly } } } if (!empty($_FILES["REVIEW_ATTACH_IMG"])) { $arFieldsG["ATTACH_IMG"] = $_FILES["REVIEW_ATTACH_IMG"]; } else { $arFiles = array(); if (!empty($_REQUEST["FILES"])) { foreach ($_REQUEST["FILES"] as $key) { $arFiles[$key] = array("FILE_ID" => $key); if (!in_array($key, $_REQUEST["FILES_TO_UPLOAD"])) { $arFiles[$key]["del"] = "Y"; } } } if (!empty($_FILES)) { $res = array(); foreach ($_FILES as $key => $val) { if (substr($key, 0, strLen("FILE_NEW")) == "FILE_NEW" && !empty($val["name"])) { $arFiles[] = $_FILES[$key]; } } } if (!empty($arFiles)) { $arFieldsG["FILES"] = $arFiles; } } $TOPIC_ID = $forumTopicId > 0 ? $forumTopicId : $TID; $MESSAGE_ID = 0; $MESSAGE_TYPE = $TOPIC_ID > 0 ? "REPLY" : "NEW"; if (COption::GetOptionString("tasks", "task_comment_allow_edit") && ($MESSAGE_ID = intval($commentId))) { $MESSAGE_TYPE = "EDIT"; } $strErrorMessage = ''; $strOKMessage = ''; $MID = ForumAddMessage($MESSAGE_TYPE, $forumId, $TOPIC_ID, $MESSAGE_ID, $arFieldsG, $strErrorMessage, $strOKMessage, false, $_POST["captcha_word"], 0, $_POST["captcha_code"], $nameTemplate); if ($MID <= 0 || !empty($strErrorMessage)) { $arErrorCodes[] = array('code' => 'message is not added 2', 'title' => empty($strErrorMessage) ? NULL : $strErrorMessage); } else { $arMessage = CForumMessage::GetByID($MID); if ($forumTopicId <= 0) { $forumTopicId = $TID = intVal($arMessage["TOPIC_ID"]); } $outForumTopicId = intVal($forumTopicId); if ($componentName !== null) { ForumClearComponentCache($componentName); } // NOTIFICATION $arTask["ACCOMPLICES"] = $arTask["AUDITORS"] = array(); $rsMembers = CTaskMembers::GetList(array(), array("TASK_ID" => $arTask["ID"])); while ($arMember = $rsMembers->Fetch()) { if ($arMember["TYPE"] == "A") { $arTask["ACCOMPLICES"][] = $arMember["USER_ID"]; } elseif ($arMember["TYPE"] == "U") { $arTask["AUDITORS"][] = $arMember["USER_ID"]; } } $arEmailUserIDs = array($arTask["RESPONSIBLE_ID"], $arTask["CREATED_BY"]); $arEmailUserIDs = array_unique(array_merge($arEmailUserIDs, $arTask["ACCOMPLICES"], $arTask["AUDITORS"])); $currentUserPos = array_search($givenUserId, $arEmailUserIDs); if ($currentUserPos !== false) { unset($arEmailUserIDs[$currentUserPos]); } $parser = new CTextParser(); $parser->imageWidth = $imageWidth; $parser->imageHeight = $imageHeight; $parser->smiles = $arSmiles; $parser->allow = array("HTML" => $arForum["ALLOW_HTML"], "ANCHOR" => $arForum["ALLOW_ANCHOR"], "BIU" => $arForum["ALLOW_BIU"], "IMG" => "N", "VIDEO" => "N", "LIST" => $arForum["ALLOW_LIST"], "QUOTE" => $arForum["ALLOW_QUOTE"], "CODE" => $arForum["ALLOW_CODE"], "FONT" => $arForum["ALLOW_FONT"], "SMILES" => "N", "UPLOAD" => $arForum["ALLOW_UPLOAD"], "NL2BR" => $arForum["ALLOW_NL2BR"], "TABLE" => "Y"); $arAllow = NULL; $MESSAGE = HTMLToTxt($parser->convertText($commentText, $arAllow)); // remove [ url] for socialnetwork log $MESSAGE = preg_replace("/(\\s\\[\\s(http:\\/\\/|https:\\/\\/|ftp:\\/\\/))(.*?)(\\s\\])/is", "", $MESSAGE); $parser->allow = array("HTML" => 'Y', "ANCHOR" => 'Y', "BIU" => 'Y', "IMG" => "Y", "VIDEO" => "Y", "LIST" => 'N', "QUOTE" => 'Y', "CODE" => 'Y', "FONT" => 'Y', "SMILES" => "N", "UPLOAD" => 'N', "NL2BR" => 'N', "TABLE" => "Y"); $message_notify = $parser->convertText($commentText); $arRecipientsIDs = CTaskNotifications::GetRecipientsIDs($arTask); // Instant Messages if (IsModuleInstalled("im") && CModule::IncludeModule("im") && sizeof($arRecipientsIDs)) { $pageNumber = CForumMessage::GetMessagePage($MID, $messagesPerPage, $arUserGroupArray); // There are different links for extranet users $isExtranetEnabled = false; if (CModule::IncludeModule("extranet")) { $isExtranetEnabled = true; } if ($isExtranetEnabled) { $arSites = array(); $dbSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $dbSite->Fetch()) { if (strlen(trim($arSite["DIR"])) > 0) { $arSites[$arSite['ID']]['DIR'] = $arSite['DIR']; } else { $arSites[$arSite['ID']]['DIR'] = '/'; } if (strlen(trim($arSite["SERVER_NAME"])) > 0) { $arSites[$arSite['ID']]['SERVER_NAME'] = $arSite["SERVER_NAME"]; } else { $arSites[$arSite['ID']]['SERVER_NAME'] = COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"]); } $arSites[$arSite['ID']]['urlPrefix'] = $arSites[$arSite['ID']]['SERVER_NAME'] . $arSites[$arSite['ID']]['DIR']; // remove last '/' if (strlen($arSites[$arSite['ID']]['urlPrefix']) > 0 && substr($arSites[$arSite['ID']]['urlPrefix'], -1) === '/') { $arSites[$arSite['ID']]['urlPrefix'] = substr($arSites[$arSite['ID']]['urlPrefix'], 0, -1); } } $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $arIntranetUsers = CExtranet::GetIntranetUsers(); } else { if ($arTask["GROUP_ID"]) { $pathTemplateWoExtranet = str_replace("#group_id#", $arTask["GROUP_ID"], COption::GetOptionString("tasks", "paths_task_group_entry", "/workgroups/group/#group_id#/tasks/task/view/#task_id#/", $arFields["SITE_ID"])); } else { $pathTemplateWoExtranet = COption::GetOptionString("tasks", "paths_task_user_entry", "/company/personal/user/#user_id#/tasks/task/view/#task_id#/", $arFields["SITE_ID"]); } } foreach ($arRecipientsIDs as $userID) { $urlPrefixForUser = tasksServerName(); if ($isExtranetEnabled) { if (!in_array($userID, $arIntranetUsers) && $extranet_site_id) { $userSiteId = $extranet_site_id; } else { $userSiteId = $intranet_site_id; } if (isset($arSites[$userSiteId]['SERVER_NAME'])) { $urlPrefixForUser = tasksServerName($arSites[$userSiteId]['SERVER_NAME']); } if ($arTask["GROUP_ID"]) { $pathTemplate = str_replace('#group_id#', $arTask['GROUP_ID'], CTasksTools::GetOptionPathTaskGroupEntry($userSiteId, '')); } else { $pathTemplate = CTasksTools::GetOptionPathTaskUserEntry($userSiteId, ''); } } else { $pathTemplate = $pathTemplateWoExtranet; } $NOTIFY_MESSAGE_TITLE_TEMPLATE = ''; $messageUrl = ''; if (strlen($pathTemplate) > 0) { $groupId = 0; if (isset($arTask['GROUP_ID'])) { $groupId = (int) $arTask['GROUP_ID']; } $messageUrl = $urlPrefixForUser . CComponentEngine::MakePathFromTemplate($pathTemplate, array("user_id" => $userID, "task_id" => $arTask["ID"], "action" => "view", "USER_ID" => $userID, "TASK_ID" => $arTask["ID"], "ACTION" => "view", 'GROUP_ID' => $groupId, 'group_id' => $groupId)); if ($pageNumber > 1) { $messageUrl .= (strpos($messageUrl, "?") === false ? "?" : "&") . "MID=" . $MID; } $NOTIFY_MESSAGE_TITLE_TEMPLATE = '[URL=' . $messageUrl . "#message" . $MID . ']' . $arTask["~TITLE"] . '[/URL]'; } else { $NOTIFY_MESSAGE_TITLE_TEMPLATE = $arTask["~TITLE"]; } $MESSAGE_SITE = trim(htmlspecialcharsbx(strip_tags(str_replace(array("\r\n", "\n", "\r"), ' ', htmlspecialcharsback($message_notify))))); $MESSAGE_EMAIL = $MESSAGE_SITE; // full message to email if (strlen($MESSAGE_SITE) >= 100) { $dot = '...'; $MESSAGE_SITE = substr($MESSAGE_SITE, 0, 99); if (($lastLinkPosition = strrpos($MESSAGE_SITE, 'http://')) !== false || ($lastLinkPosition = strrpos($MESSAGE_SITE, 'https://')) !== false || ($lastLinkPosition = strrpos($MESSAGE_SITE, 'ftp://')) !== false || ($lastLinkPosition = strrpos($MESSAGE_SITE, 'ftps://')) !== false) { if (strpos($MESSAGE_SITE, ' ', $lastLinkPosition) === false) { $MESSAGE_SITE = substr($MESSAGE_SITE, 0, $lastLinkPosition); } } $MESSAGE_SITE .= $dot; } $arMessageFields = array("TO_USER_ID" => $userID, "FROM_USER_ID" => $givenUserId, "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "tasks", "NOTIFY_EVENT" => "comment", "NOTIFY_MESSAGE" => str_replace(array("#TASK_TITLE#", "#TASK_COMMENT_TEXT#"), array($NOTIFY_MESSAGE_TITLE_TEMPLATE, '[COLOR=#000000]' . $MESSAGE_SITE . '[/COLOR]'), $MESSAGE_TYPE != "EDIT" ? $strMsgAddComment : $strMsgEditComment), "NOTIFY_MESSAGE_OUT" => str_replace(array("#TASK_TITLE#", "#TASK_COMMENT_TEXT#"), array($arTask["~TITLE"], $MESSAGE_EMAIL . ' #BR# ' . $messageUrl . "#message" . $MID . ' '), $MESSAGE_TYPE != "EDIT" ? $strMsgAddComment : $strMsgEditComment)); CIMNotify::Add($arMessageFields); } } $strURL = !empty($backPage) ? $backPage : $GLOBALS['APPLICATION']->GetCurPageParam("", array("IFRAME", "MID", "SEF_APPLICATION_CUR_PAGE_URL", BX_AJAX_PARAM_ID, "result")); $strURL = ForumAddPageParams($strURL, array("MID" => $MID, "result" => $arForum["MODERATION"] != "Y" || CForumNew::CanUserModerateForum($forumId, $arUserGroupArray) ? "reply" : "not_approved"), false, false); $outStrUrl = $strURL; // sonet log if (CModule::IncludeModule("socialnetwork")) { $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "tasks", "SOURCE_ID" => $arTask["ID"]), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "TMP_ID")); if ($arRes = $dbRes->Fetch()) { $log_id = $arRes["TMP_ID"]; $entity_type = $arRes["ENTITY_TYPE"]; $entity_id = $arRes["ENTITY_ID"]; } else { $entity_type = $arTask["GROUP_ID"] ? SONET_ENTITY_GROUP : SONET_ENTITY_USER; $entity_id = $arTask["GROUP_ID"] ? $arTask["GROUP_ID"] : $arTask["CREATED_BY"]; $rsUser = CUser::GetByID($arTask["CREATED_BY"]); if ($arUser = $rsUser->Fetch()) { $arSoFields = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "tasks", "LOG_DATE" => $arTask["CREATED_DATE"], "TITLE_TEMPLATE" => "#TITLE#", "TITLE" => htmlspecialcharsBack($arTask["~TITLE"]), "MESSAGE" => "", "TEXT_MESSAGE" => $strMsgNewTask, "MODULE_ID" => "tasks", "CALLBACK_FUNC" => false, "SOURCE_ID" => $arTask["ID"], "ENABLE_COMMENTS" => "Y", "USER_ID" => $arTask["CREATED_BY"], "URL" => CTaskNotifications::GetNotificationPath($arUser, $arTask["ID"]), "PARAMS" => serialize(array("TYPE" => "create"))); $log_id = CSocNetLog::Add($arSoFields, false); if (intval($log_id) > 0) { CSocNetLog::Update($log_id, array("TMP_ID" => $log_id)); $arRights = CTaskNotifications::__UserIDs2Rights(CTaskNotifications::GetRecipientsIDs($arTask, false)); if ($arTask["GROUP_ID"]) { $arRights[] = "S" . SONET_ENTITY_GROUP . $arTask["GROUP_ID"]; } CSocNetLogRights::Add($log_id, $arRights); } } } if (intval($log_id) > 0) { $sText = COption::GetOptionString("forum", "FILTER", "Y") == "Y" ? $arMessage["POST_MESSAGE_FILTER"] : $arMessage["POST_MESSAGE"]; CSocNetLog::Update($log_id, array('PARAMS' => serialize(array('TYPE' => 'comment')))); $arFieldsForSocnet = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "tasks_comment", "MESSAGE" => $sText, "TEXT_MESSAGE" => $parser->convert4mail($sText), "URL" => str_replace("?IFRAME=Y", "", str_replace("&IFRAME=Y", "", str_replace("IFRAME=Y&", "", $strURL))), "MODULE_ID" => "tasks", "SOURCE_ID" => $MID, "LOG_ID" => $log_id, "RATING_TYPE_ID" => "FORUM_POST", "RATING_ENTITY_ID" => $MID); if ($MESSAGE_TYPE == "EDIT") { $dbRes = CSocNetLogComments::GetList(array("ID" => "DESC"), array("EVENT_ID" => array("tasks_comment"), "SOURCE_ID" => $MID), false, false, array("ID")); while ($arRes = $dbRes->Fetch()) { CSocNetLogComments::Update($arRes["ID"], $arFieldsForSocnet); } } else { $arFieldsForSocnet['USER_ID'] = $givenUserId; $arFieldsForSocnet['=LOG_DATE'] = $GLOBALS['DB']->CurrentTimeFunction(); $ufFileID = array(); $dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $MID)); while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch()) { $ufFileID[] = $arAddedMessageFiles["FILE_ID"]; } if (count($ufFileID) > 0) { $arFieldsForSocnet["UF_SONET_COM_FILE"] = $ufFileID; } $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $MID, LANGUAGE_ID); if ($ufDocID) { $arFieldsForSocnet["UF_SONET_COM_DOC"] = $ufDocID; } $ufDocVer = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_VER", $MID, LANGUAGE_ID); if ($ufDocVer) { $arFieldsForSocnet["UF_SONET_COM_VER"] = $ufDocVer; } $comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false); CSocNetLog::CounterIncrement($comment_id, false, false, "LC"); } } } $occurAsUserId = CTasksTools::getOccurAsUserId(); if (!$occurAsUserId) { $occurAsUserId = $arMessage["AUTHOR_ID"] ? $arMessage["AUTHOR_ID"] : 1; } // Tasks log $arLogFields = array("TASK_ID" => $arTask["ID"], "USER_ID" => $occurAsUserId, "CREATED_DATE" => $arMessage["EDIT_DATE"] ? ConvertTimeStamp(MakeTimeStamp($arMessage["EDIT_DATE"], CSite::GetDateFormat()), "FULL") : $arMessage["POST_DATE"], "FIELD" => "COMMENT", "TO_VALUE" => $MID); $log = new CTaskLog(); $log->Add($arLogFields); } return $MID; // Message id }
<?php require $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_admin_before.php'; IncludeModuleLangFile(__FILE__); $SITE_ID = isset($_GET['SITE_ID']) ? $_GET['SITE_ID'] : false; if ($SITE_ID !== false) { if (!CSite::GetByID($SITE_ID)->Fetch()) { $SITE_ID = false; } } else { $SITE_ID = CSite::GetDefSite(); } if ($SITE_ID === false || CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite($SITE_ID)) { die(GetMessage('CC_BSC1_WRONG_SITE')); } if (!function_exists('simplexml_load_string')) { die(GetMessage('CC_BSC1_SIMPLE_XML_MISSING')); } $APPLICATION->IncludeComponent('bitrix:intranet.users.import.1c.hrxml', '', array('IBLOCK_TYPE' => COption::GetOptionString('intranet', 'iblock_type', '', $SITE_ID), 'DEPARTMENTS_IBLOCK_ID' => COption::GetOptionInt('intranet', 'iblock_structure', '', $SITE_ID), 'ABSENCE_IBLOCK_ID' => COption::GetOptionInt('intranet', 'iblock_absence', '', $SITE_ID), 'STATE_HISTORY_IBLOCK_ID' => COption::GetOptionInt('intranet', 'iblock_state_history', '', $SITE_ID), 'IBLOCK_TYPE_VACANCY' => COption::GetOptionString('intranet', 'iblock_type_vacancy', '', $SITE_ID), 'VACANCY_IBLOCK_ID' => COption::GetOptionInt('intranet', 'iblock_vacancy', '', $SITE_ID), 'SITE_ID' => COption::GetOptionString('intranet', 'import_SITE_ID', '', $SITE_ID), 'GROUP_PERMISSIONS' => unserialize(COption::GetOptionString('intranet', 'import_GROUP_PERMISSIONS', '', $SITE_ID)), 'DEFAULT_EMAIL' => COption::GetOptionString('intranet', 'import_DEFAULT_EMAIL', '', $SITE_ID), 'UNIQUE_EMAIL' => COption::GetOptionString('intranet', 'import_UNIQUE_EMAIL', '', $SITE_ID), 'LOGIN_TEMPLATE' => COption::GetOptionString('intranet', 'import_LOGIN_TEMPLATE', '', $SITE_ID), 'EMAIL_NOTIFY' => COption::GetOptionString('intranet', 'import_EMAIL_NOTIFY', '', $SITE_ID), 'EMAIL_NOTIFY_IMMEDIATELY' => COption::GetOptionString('intranet', 'import_EMAIL_NOTIFY_IMMEDIATELY', '', $SITE_ID), 'UPDATE_PROPERTIES' => unserialize(COption::GetOptionString('intranet', 'import_UPDATE_PROPERTIES', '', $SITE_ID)), 'LDAP_ID_PROPERTY_XML_ID' => COption::GetOptionString('intranet', 'import_LDAP_ID_PROPERTY_XML_ID', '', $SITE_ID), 'LDAP_SERVER' => COption::GetOptionString('intranet', 'import_LDAP_SERVER', '', $SITE_ID)), null, array('HIDE_ICONS' => 'Y'));
function SendEvent($ID, $mailTemplate = "SONET_NEW_EVENT") { $ID = IntVal($ID); if ($ID <= 0) { return false; } $arFilter = array("ID" => $ID); $dbLogComments = CSocNetLogComments::GetList(array(), $arFilter, false, false, array("ID", "LOG_ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "EVENT_ID", "LOG_DATE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "GROUP_NAME", "CREATED_BY_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_LOGIN", "LOG_SITE_ID", "SOURCE_ID", "LOG_SOURCE_ID")); $arLogComment = $dbLogComments->Fetch(); if (!$arLogComment) { return false; } $arLog = array(); if (intval($arLogComment["LOG_ID"]) > 0) { $dbLog = CSocNetLog::GetList(array(), array("ID" => $arLogComment["LOG_ID"])); $arLog = $dbLog->Fetch(); if (!$arLog) { $arLog = array(); } } $arEvent = CSocNetLogTools::FindLogCommentEventByID($arLogComment["EVENT_ID"]); if ($arEvent && array_key_exists("CLASS_FORMAT", $arEvent) && array_key_exists("METHOD_FORMAT", $arEvent) && strlen($arEvent["CLASS_FORMAT"]) > 0 && strlen($arEvent["METHOD_FORMAT"]) > 0) { $dbSiteCurrent = CSite::GetByID(SITE_ID); if ($arSiteCurrent = $dbSiteCurrent->Fetch()) { if ($arSiteCurrent["LANGUAGE_ID"] != LANGUAGE_ID) { $arLogComment["MAIL_LANGUAGE_ID"] = $arSiteCurrent["LANGUAGE_ID"]; } } $arLogComment["FIELDS_FORMATTED"] = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arLogComment, array(), true, $arLog); } if (array_key_exists($arLogComment["ENTITY_TYPE"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"]) && array_key_exists("HAS_MY", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]) && $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["HAS_MY"] == "Y" && array_key_exists("CLASS_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]) && array_key_exists("METHOD_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]) && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["CLASS_OF"]) > 0 && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["METHOD_OF"]) > 0 && method_exists($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["METHOD_OF"])) { $arOfEntities = call_user_func(array($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLogComment["ENTITY_TYPE"]]["METHOD_OF"]), $arLogComment["ENTITY_ID"]); } $arListParams = array("USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLogComment["ENTITY_TYPE"], "ENTITY_ID" => $arLogComment["ENTITY_ID"], "EVENT_ID" => $arLogComment["EVENT_ID"], "USER_ID" => $arLogComment["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => array("M", "X")); $arLogSites = array(); $rsLogSite = CSocNetLog::GetSite($arLog["ID"]); while ($arLogSite = $rsLogSite->Fetch()) { $arLogSites[] = $arLogSite["LID"]; } if (CModule::IncludeModule("extranet")) { if ($arLogComment["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $arSites = array(); $dbSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $dbSite->Fetch()) { $arSites[$arSite["ID"]] = array("DIR" => strlen(trim($arSite["DIR"])) > 0 ? $arSite["DIR"] : "/", "SERVER_NAME" => strlen(trim($arSite["SERVER_NAME"])) > 0 ? $arSite["SERVER_NAME"] : COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"])); } $intranet_site_id = CSite::GetDefSite(); } $arIntranetUsers = CExtranet::GetIntranetUsers(); $extranet_site_id = CExtranet::GetExtranetSiteID(); } $dbSubscribers = CSocNetLogEvents::GetList(array("TRANSPORT" => "DESC"), array("USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false))), false, false, array("USER_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "USER_NAME", "USER_LAST_NAME", "USER_LOGIN", "USER_LID", "USER_EMAIL", "TRANSPORT"), $arListParams); $arListParams = array("USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLogComment["ENTITY_TYPE"], "ENTITY_ID" => $arLogComment["ENTITY_ID"], "EVENT_ID" => $arLogComment["EVENT_ID"], "USER_ID" => $arLogComment["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => "N"); $dbUnSubscribers = CSocNetLogEvents::GetList(array("TRANSPORT" => "DESC"), array("USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false))), false, false, array("USER_ID", "SITE_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "TRANSPORT", "EVENT_ID"), $arListParams); $arUnSubscribers = array(); while ($arUnSubscriber = $dbUnSubscribers->Fetch()) { $arUnSubscribers[] = $arUnSubscriber["USER_ID"] . "_" . $arUnSubscriber["ENTITY_TYPE"] . "_" . $arUnSubscriber["ENTITY_ID"] . "_" . $arUnSubscriber["ENTITY_MY"] . "_" . $arUnSubscriber["ENTITY_CB"] . "_" . $arUnSubscriber["EVENT_ID"]; } $bHasAccessAll = CSocNetLogRights::CheckForUserAll($arLog["ID"] ? $arLog["ID"] : $arLogComment["LOG_ID"]); $arSentUserID = array("M" => array(), "X" => array()); while ($arSubscriber = $dbSubscribers->Fetch()) { if (is_array($arIntranetUsers) && !in_array($arSubscriber["USER_ID"], $arIntranetUsers) && !in_array($extranet_site_id, $arLogSites)) { continue; } if (array_key_exists($arSubscriber["TRANSPORT"], $arSentUserID) && in_array($arSubscriber["USER_ID"], $arSentUserID[$arSubscriber["TRANSPORT"]])) { continue; } if (intval($arSubscriber["ENTITY_ID"]) != 0 && $arSubscriber["EVENT_ID"] == "all" && (in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arSubscriber["ENTITY_ID"] . "_N_" . $arSubscriber["ENTITY_CB"] . "_" . $arLogComment["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arSubscriber["ENTITY_ID"] . "_Y_" . $arSubscriber["ENTITY_CB"] . "_" . $arLogComment["EVENT_ID"], $arUnSubscribers))) { continue; } elseif (intval($arSubscriber["ENTITY_ID"]) == 0 && $arSubscriber["ENTITY_CB"] == "N" && $arSubscriber["EVENT_ID"] != "all" && (in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arLogComment["ENTITY_ID"] . "_Y_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arLogComment["ENTITY_ID"] . "_N_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arLogComment["ENTITY_ID"] . "_Y_N_" . $arLogComment["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"] . "_" . $arSubscriber["ENTITY_TYPE"] . "_" . $arLogComment["ENTITY_ID"] . "_N_N_" . $arLogComment["EVENT_ID"], $arUnSubscribers))) { continue; } $arSentUserID[$arSubscriber["TRANSPORT"]][] = $arSubscriber["USER_ID"]; if (!$bHasAccessAll) { $bHasAccess = CSocNetLogRights::CheckForUserOnly($arLog["ID"] ? $arLog["ID"] : $arLogComment["LOG_ID"], $arSubscriber["USER_ID"]); if (!$bHasAccess) { continue; } } if ($arLogComment["ENTITY_TYPE"] == SONET_ENTITY_GROUP && is_array($arIntranetUsers) && CModule::IncludeModule("extranet")) { $server_name = $arSites[!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id ? $extranet_site_id : $intranet_site_id]["SERVER_NAME"]; $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"] = str_replace(array("#SERVER_NAME#", "#GROUPS_PATH#"), array($server_name, COption::GetOptionString("socialnetwork", "workgroups_page", false, !in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id ? $extranet_site_id : $intranet_site_id)), $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]); } else { $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"] = $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]; } switch ($arSubscriber["TRANSPORT"]) { case "X": if (array_key_exists("URL_TO_SEND", $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0) { $link = GetMessage("SONET_GLC_SEND_EVENT_LINK") . $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; } else { $link = ""; } $arMessageFields = array("FROM_USER_ID" => intval($arLogComment["USER_ID"]) > 0 ? $arLogComment["USER_ID"] : 1, "TO_USER_ID" => $arSubscriber["USER_ID"], "MESSAGE" => $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"] . " #BR# " . $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] . (strlen($link) > 0 ? "#BR# " . $link : ""), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "IS_LOG" => "Y"); CSocNetMessages::Add($arMessageFields); break; case "M": $arFields["SUBSCRIBER_ID"] = $arSubscriber["USER_ID"]; $arFields["SUBSCRIBER_NAME"] = $arSubscriber["USER_NAME"]; $arFields["SUBSCRIBER_LAST_NAME"] = $arSubscriber["USER_LAST_NAME"]; $arFields["SUBSCRIBER_LOGIN"] = $arSubscriber["USER_LOGIN"]; $arFields["SUBSCRIBER_EMAIL"] = $arSubscriber["USER_EMAIL"]; $arFields["EMAIL_TO"] = $arSubscriber["USER_EMAIL"]; $arFields["TITLE"] = str_replace("#BR#", "\n", $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"]); $arFields["MESSAGE"] = str_replace("#BR#", "\n", $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]); $arFields["ENTITY"] = $arLogComment["FIELDS_FORMATTED"]["ENTITY"]["FORMATTED"]; $arFields["ENTITY_TYPE"] = $arLogComment["FIELDS_FORMATTED"]["ENTITY"]["TYPE_MAIL"]; if (array_key_exists("URL_TO_SEND", $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0) { $arFields["URL"] = $arLogComment["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; } else { $arFields["URL"] = $arLogComment["URL"]; } if (CModule::IncludeModule("extranet")) { $arUserGroup = CUser::GetUserGroup($arSubscriber["USER_ID"]); } foreach ($arLogSites as $site_id_tmp) { if (IsModuleInstalled("extranet")) { if (CExtranet::IsExtranetSite($site_id_tmp) && in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup) || !CExtranet::IsExtranetSite($site_id_tmp) && !in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup)) { $siteID = $site_id_tmp; break; } else { continue; } } else { $siteID = $site_id_tmp; break; } } if (!$siteID) { $siteID = defined("SITE_ID") ? SITE_ID : $arSubscriber["SITE_ID"]; } if (StrLen($siteID) <= 0) { $siteID = $arSubscriber["USER_LID"]; } if (StrLen($siteID) <= 0) { continue; } $event = new CEvent(); $event->Send($mailTemplate, $siteID, $arFields, "N"); break; default: } } CUserCounter::IncrementWithSelect(CSocNetLogCounter::GetSubSelect($arLog["ID"], $arLog["ENTITY_TYPE"], $arLog["ENTITY_ID"], $arLogComment["EVENT_ID"], $arLogComment["USER_ID"], $arOfEntities, false, false, "Y", "LC")); return true; }
function CheckSites($arSite) { $arResult = array(); if (!is_array($arSite)) { $arSite = array($arSite); } foreach ($arSite as $site_id) { if (strlen($site_id) > 0) { $rsSite = CSite::GetByID($site_id); if ($rsSite->Fetch()) { $arResult[] = $site_id; } } } if (!defined("ADMIN_SECTION")) { $rsSite = CSite::GetByID(SITE_ID); if ($rsSite->Fetch()) { $arResult[] = SITE_ID; } } if (count($arResult) < 1) { $arResult[] = CSite::GetDefSite(); } return $arResult; }
private static function getShopLocationParams($siteId = false) { $loc_diff = COption::GetOptionString('sale', 'ADDRESS_different_set', 'N'); if ($loc_diff == "Y" && ($siteId !== false || defined(SITE_ID))) { if ($siteId === false) { $siteId = SITE_ID; } $locId = COption::GetOptionString('sale', 'location', '', $siteId); $locZip = COption::GetOptionString('sale', 'location_zip', '', $siteId); } else { $locId = COption::GetOptionString('sale', 'location', ''); $locZip = COption::GetOptionString('sale', 'location_zip', ''); if (strlen($locId) <= 0) { static $defSite = null; if (!isset($defSite)) { $defSite = CSite::GetDefSite(); } if ($defSite) { $locId = COption::GetOptionString('sale', 'location', '', $defSite); $locZip = COption::GetOptionString('sale', 'location_zip', '', $defSite); } } } if ((string) $locId != '') { $location = self::getLocationByIdHitCached($locId); if (intval($location['ID'])) { $locId = $location['ID']; } } return array('ID' => $locId, 'ZIP' => $locZip); }
function installDemoData() { if (!CModule::IncludeModule("iblock")) { return; } $currentPermissions = CLists::GetPermission(); unset($currentPermissions["bitrix_processes"]); unset($currentPermissions["lists"]); $socnet_iblock_type_id = COption::GetOptionString("lists", "socnet_iblock_type_id"); $isSocnetInstalled = IsModuleInstalled('socialnetwork'); $arTypes = array(); if (empty($currentPermissions)) { $arTypes[] = array("ID" => "lists", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 80, "LANG" => array()); $arTypes[] = array("ID" => "bitrix_processes", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 90, "LANG" => array()); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { $arTypes[] = array("ID" => "lists_socnet", "SECTIONS" => "Y", "IN_RSS" => "N", "SORT" => 83, "LANG" => array()); } $arLanguages = array(); if (!empty($arTypes)) { $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } } foreach ($arTypes as $arType) { $dbType = CIBlockType::GetList(array(), array("=ID" => $arType["ID"])); if (!$dbType->Fetch()) { foreach ($arLanguages as $languageID) { IncludeModuleLangFile(__FILE__, $languageID); $code = strtoupper($arType["ID"]); $arType["LANG"][$languageID]["NAME"] = GetMessage($code . "_TYPE_NAME"); $arType["LANG"][$languageID]["ELEMENT_NAME"] = GetMessage($code . "_ELEMENT_NAME"); if ($arType["SECTIONS"] == "Y") { $arType["LANG"][$languageID]["SECTION_NAME"] = GetMessage($code . "_SECTION_NAME"); } } $iblockType = new CIBlockType(); $iblockType->Add($arType); } } if (empty($currentPermissions)) { CLists::SetPermission('lists', array(1)); CLists::SetPermission('bitrix_processes', array(1)); } $defaultSiteId = CSite::GetDefSite(); $siteObject = CSite::GetByID($defaultSiteId); $site = $siteObject->fetch(); $defaultLang = $site ? $site['LANGUAGE_ID'] : 'en'; if ($defaultLang == 'ua') { $defaultLang = 'ru'; } \Bitrix\Lists\Importer::installProcesses($defaultLang); if (IsModuleInstalled("bitrix24")) { \Bitrix\Main\Config\Option::set("lists", "livefeed_url", "/company/processes/"); } else { \Bitrix\Main\Config\Option::set("lists", "livefeed_url", "/services/processes/"); } if ($isSocnetInstalled && strlen($socnet_iblock_type_id) <= 0) { COption::SetOptionString("lists", "socnet_iblock_type_id", "lists_socnet"); CLists::EnableSocnet(true); } }
/** * Moves settings from options to DB */ public static function settingsConverter() { $settings = static::getSettings(); if (!empty($settings) && !empty($settings["SETTINGS"])) { return false; } if (!CSaleYMHandler::install()) { return false; } $settings = array(); $rsSites = CSite::GetList($by = "sort", $order = "asc", array()); while ($arSite = $rsSites->Fetch()) { $serSiteSett = COption::GetOptionString("sale", "yandex_market_purchase_settings", "", $arSite["ID"], true); $siteSett = unserialize($serSiteSett); if (is_array($siteSett) && !empty($siteSett)) { $settings[$arSite["ID"]] = $siteSett; } } if (empty($settings)) { $serSiteSett = COption::GetOptionString("sale", "yandex_market_purchase_settings", ""); $siteSett = unserialize($serSiteSett); if (is_array($siteSett) && !empty($siteSett)) { $settings[CSite::GetDefSite()] = $siteSett; } } if (empty($settings)) { return false; } if (!CSaleYMHandler::saveSettings($settings)) { return false; } if (!CSaleYMHandler::setActivity(true)) { return false; } if (!CSaleYMHandler::eventsStart()) { return false; } return true; }
function ProcessPath($arUrl, $user_id, $explicit_site_id = false) { static $arIntranetUsers, $arSiteData, $extranet_site_id, $intranet_site_id; if (!is_array($arUrl)) { $arUrl = array($arUrl); } if (CModule::IncludeModule("extranet") && !$arIntranetUsers) { $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $arIntranetUsers = CExtranet::GetIntranetUsers(); } if (!$arSiteData) { $arSiteData = self::GetSiteData(); } $user_site_id = IsModuleInstalled("extranet") ? !in_array($user_id, $arIntranetUsers) && $extranet_site_id ? $extranet_site_id : ($explicit_site_id ? $explicit_site_id : $intranet_site_id) : ($explicit_site_id ? $explicit_site_id : SITE_ID); $server_name = (CMain::IsHTTPS() ? "https" : "http") . "://" . $arSiteData[$user_site_id]["SERVER_NAME"]; $arUrl = str_replace(array("#SERVER_NAME#", "#GROUPS_PATH#", "#USER_PATH#"), array($server_name, $arSiteData[$user_site_id]["GROUPS_PATH"], $arSiteData[$user_site_id]["USER_PATH"]), $arUrl); return array("SERVER_NAME" => $server_name, "URLS" => $arUrl, "DOMAIN" => count($arSiteData) > 1 ? $arSiteData[$user_site_id]["SERVER_NAME"] : false); }
public static function MailMessageAgent() { global $DB; $defSiteID = CSite::GetDefSite(); $arMark = array(); $arUnsendMessage = CIMMessage::GetUnsendMessage(); $arToUser = array(); $arFromUser = array(); $arDialog = array(); foreach ($arUnsendMessage as $id => $arMessage) { if (!isset($arMark[$arMessage["TO_USER_ID"]][$arMessage["CHAT_ID"]]) || $arMark[$arMessage["TO_USER_ID"]][$arMessage["CHAT_ID"]] < $arMessage["ID"]) { $arMark[$arMessage["TO_USER_ID"]][$arMessage["CHAT_ID"]] = $arMessage["ID"]; } if (strlen($arMessage["MESSAGE_OUT"]) <= 0) { $arMessage["MESSAGE_OUT"] = $arMessage["MESSAGE"]; } if (!isset($arToUser[$arMessage["TO_USER_ID"]])) { $siteID = $arMessage["TO_USER_LID"]; if ($siteID == false || StrLen($siteID) <= 0) { $siteID = $defSiteID; if ($siteID == false || StrLen($siteID) <= 0) { continue; } } $arMessage["USER"] = htmlspecialcharsback(CUser::FormatName(CSite::GetNameFormat(false), array("NAME" => $arMessage["TO_USER_NAME"], "LAST_NAME" => $arMessage["TO_USER_LAST_NAME"], "SECOND_NAME" => $arMessage["TO_USER_SECOND_NAME"], "LOGIN" => $arMessage["TO_USER_LOGIN"]), true)); $arToUser[$arMessage["TO_USER_ID"]] = array("USER" => $arMessage["USER"], "USER_ID" => $arMessage["TO_USER_ID"], "USER_LOGIN" => $arMessage["TO_USER_LOGIN"], "USER_NAME" => $arMessage["TO_USER_NAME"], "USER_LAST_NAME" => $arMessage["TO_USER_LAST_NAME"], "USER_SECOND_NAME" => $arMessage["TO_USER_SECOND_NAME"], "TO_USER_LID" => $siteID, "EMAIL_TO" => $arMessage["TO_USER_EMAIL"]); } if (!isset($arFromUser[$arMessage["FROM_USER_ID"]])) { $arMessage["FROM_USER"] = htmlspecialcharsback(CUser::FormatName(CSite::GetNameFormat(false), array("NAME" => $arMessage["FROM_USER_NAME"], "LAST_NAME" => $arMessage["FROM_USER_LAST_NAME"], "SECOND_NAME" => $arMessage["FROM_USER_SECOND_NAME"], "LOGIN" => $arMessage["FROM_USER_LOGIN"]), true)); $arFromUser[$arMessage["FROM_USER_ID"]] = array("FROM_USER" => $arMessage["FROM_USER"], "FROM_USER_ID" => $arMessage["FROM_USER_ID"], "FROM_USER_LOGIN" => $arMessage["FROM_USER_LOGIN"], "FROM_USER_NAME" => $arMessage["FROM_USER_NAME"], "FROM_USER_LAST_NAME" => $arMessage["FROM_USER_LAST_NAME"], "FROM_USER_SECOND_NAME" => $arMessage["FROM_USER_SECOND_NAME"]); } $arDialog[$arMessage["TO_USER_ID"]][$arMessage["FROM_USER_ID"]][] = array('DATE_CREATE' => $arMessage["DATE_CREATE"], 'MESSAGE' => CTextParser::convert4mail(str_replace("#BR#", "\n", strip_tags($arMessage["MESSAGE_OUT"])))); } foreach ($arMark as $userId => $ar) { foreach ($ar as $chatId => $lastSendId) { CIMMessage::SetLastSendId($chatId, $userId, $lastSendId); } } foreach ($arToUser as $toID => $arToInfo) { $message = ""; $bHeader = false; $arNames = array(); $bFirstMessage = true; foreach ($arDialog[$toID] as $fromID => $arMessages) { if ($bFirstMessage) { $bFirstMessage = false; } else { $message .= "\n"; } if (count($arDialog[$toID]) > 1) { $message .= GetMessage('IM_MAIL_TEMPLATE_NEW_MESSAGE_HEADER', array('#FROM_USER#' => $arFromUser[$fromID]['FROM_USER'])) . "\n"; $bHeader = true; } $arNames[] = $arFromUser[$fromID]['FROM_USER']; foreach ($arMessages as $arMessage) { $message .= "\n" . GetMessage('IM_MAIL_TEMPLATE_NEW_MESSAGE_TEXT', array('#DATE_CREATE#' => $arMessage['DATE_CREATE'], '#MESSAGE#' => $arMessage['MESSAGE'])) . "\n"; } } if ($bHeader) { $message .= "\n" . GetMessage('IM_MAIL_TEMPLATE_NEW_MESSAGE_FOOTER'); } $arFields = array("USER" => $arToInfo["USER_ID"], "USER_ID" => $arToInfo["USER_ID"], "USER_LOGIN" => $arToInfo["USER_LOGIN"], "USER_NAME" => $arToInfo["USER_NAME"], "USER_LAST_NAME" => $arToInfo["USER_LAST_NAME"], "USER_SECOND_NAME" => $arToInfo["USER_SECOND_NAME"], "EMAIL_TO" => $arToInfo["EMAIL_TO"], "TITLE" => $arToInfo["TITLE"], "MESSAGES" => $message); if (count($arNames) > 1) { $mailTemplate = "IM_NEW_MESSAGE_GROUP"; $arFields['FROM_USERS'] = implode(', ', $arNames); } else { $mailTemplate = "IM_NEW_MESSAGE"; $arFields['FROM_USER'] = implode(', ', $arNames); } $event = new CEvent(); $event->Send($mailTemplate, $arToInfo['TO_USER_LID'], $arFields, "N"); } return "CIMMail::MailMessageAgent();"; }
public static function GetULRsFromIBlockID($IBLOCK_ID, $params = array()) { $IBLOCK_ID = intval($IBLOCK_ID); if ($IBLOCK_ID <= 0) { return false; } $params = is_array($params) ? $params : array(); $params["path"] = trim(!!$params["path"] ? $params["path"] : (!!$params["PATH"] ? $params["PATH"] : "")); if (empty($params["path"])) { $params["path"] = CIBlock::GetArrayByID($IBLOCK_ID, "DETAIL_PAGE_URL"); } // Params for socialnetwork static $arExtranetSite = false; static $defSite = false; $params["SECTION_ID"] = intval($params["SECTION_ID"]); // root section id $params["ELEMENT_ID"] = intval($params["ELEMENT_ID"]); $arSection = is_array($params["SECTION"]) ? $params["SECTION"] : array(); // root section $arElement = is_array($params["ELEMENT"]) ? $params["ELEMENT"] : array(); if (empty($arSection)) { if ($params["SECTION_ID"] > 0) { $arSection = CIBlockSection::GetList(array(), array("ID" => $params["SECTION_ID"], 'CHECK_PERMISSIONS' => 'N'), false, array('ID', 'IBLOCK_ID', 'SOCNET_GROUP_ID', 'CREATED_BY'))->fetch(); } else { if ($params["ELEMENT_ID"] > 0 && empty($arElement)) { $arElement = CIBlockElement::GetList(array(), array('ID' => $params["ELEMENT_ID"]), false, false, array('ID', 'IBLOCK_SECTION_ID', 'IBLOCK_CODE', 'IBLOCK_ID'))->fetch(); } if (!empty($arElement) && $arElement["IBLOCK_SECTION_ID"] > 0) { $res = CWebDavSymlinkHelper::getNavChain($IBLOCK_ID, $arElement["IBLOCK_SECTION_ID"]); if (!!$res) { $arSection = reset($res); } } } } if (empty($arSection) || $arSection["IBLOCK_ID"] != $IBLOCK_ID) { $arSection = array(); $arElement = array(); } // Params for socialnetwork / if (strpos($params["path"], "#SITE_DIR#") !== false) { $params["path"] = str_replace("#SITE_DIR#", SITE_DIR, $params["path"]); } else { if (array_key_exists("SITE_ID", $params) && CModule::IncludeModule('extranet') && CExtranet::GetExtranetSiteID() == $params["SITE_ID"]) { if ($arExtranetSite === false) { $rsSites = CSite::GetByID(SITE_ID); $arExtranetSite = $rsSites->Fetch(); unset($rsSites); } if ($arExtranetSite) { if ($defSite === false) { $defSite = CSite::GetDefSite(); } $params["path"] = $arExtranetSite["DIR"] . $params["path"]; } } } $SEF_FOLDER = "/"; $SEF_URL_TEMPLATES = array(); $arUrlRewrite = CUrlRewriter::GetList(!empty($params["path"]) ? array("QUERY" => str_replace("//", "/", $params["path"])) : array()); $entity = false; foreach ($arUrlRewrite as $arRule) { if (!in_array($arRule["ID"], array("bitrix:webdav", "bitrix:socialnetwork", "bitrix:socialnetwork_user", "bitrix:socialnetwork_group"))) { continue; } $arComponents = WDGetComponentsOnPage($arRule["PATH"]); $firstMet = !empty($params["path"]); foreach ($arComponents as $arComponent) { if ($arComponent["COMPONENT_NAME"] == $arRule["ID"]) { $SEF_FOLDER = $arComponent["PARAMS"]["SEF_FOLDER"]; if (strpos($arRule["ID"], "bitrix:socialnetwork") === 0) { if ($arRule["ID"] == "bitrix:socialnetwork" && $arComponent["PARAMS"]["FILES_GROUP_IBLOCK_ID"] == $arComponent["PARAMS"]["FILES_USER_IBLOCK_ID"] && ($firstMet || $arComponent["PARAMS"]["FILES_USER_IBLOCK_ID"] == $IBLOCK_ID)) { $entity = $arSection["SOCNET_GROUP_ID"] > 0 ? "group" : "user"; } else { if (($firstMet || $arComponent["PARAMS"]["FILES_USER_IBLOCK_ID"] == $IBLOCK_ID) && ($arRule["ID"] == "bitrix:socialnetwork_user" || $arRule["ID"] == "bitrix:socialnetwork")) { $entity = "user"; } else { if (($firstMet || $arComponent["PARAMS"]["FILES_GROUP_IBLOCK_ID"] == $IBLOCK_ID) && ($arRule["ID"] == "bitrix:socialnetwork_group" || $arRule["ID"] == "bitrix:socialnetwork")) { $entity = "group"; } } } if (!!$entity) { $SEF_URL_TEMPLATES = $entity == "user" ? array("path" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["user_files"], "view" => "user/#user_id#/files/element/view/#element_id#/", "edit" => "user/#user_id#/files/element/edit/#element_id#/#action#/", "history" => "user/#user_id#/files/element/history/#element_id#/", "history_get" => "user/#user_id#/files/element/historyget/#element_id#/#element_name#") : array("path" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["group_files"], "view" => "group/#group_id#/files/element/view/#element_id#/", "edit" => "group/#group_id#/files/element/edit/#element_id#/#action#/", "history" => "group/#group_id#/files/element/history/#element_id#/", "history_get" => "group/#group_id#/files/element/historyget/#element_id#/#element_name#"); } } else { if ($arRule["ID"] == "bitrix:webdav" && ($firstMet || $arComponent["PARAMS"]["IBLOCK_ID"] == $IBLOCK_ID)) { $entity = "lib"; $SEF_URL_TEMPLATES = array("path" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["sections"], "view" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["element"], "edit" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["element_edit"], "history" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["element_history"], "history_get" => $arComponent["PARAMS"]["SEF_URL_TEMPLATES"]["element_history_get"]); } } if (!!$entity) { $SEF_URL_TEMPLATES["component"] = $arRule["ID"]; break 2; } } } } $repl = array("#id#", "#ELEMENT_ID#", "#element_id#", "#name#", "#ELEMENT_NAME#", "#element_name#", "#action#", "//"); $patt = array("#ELEMENT_ID#", "#ELEMENT_ID#", "#ELEMENT_ID#", "#ELEMENT_NAME#", "#ELEMENT_NAME#", "#ELEMENT_NAME#", "#ACTION#", "/"); if ($entity != "lib") { $repl[] = "#SOCNET_USER_ID#"; $patt[] = "#USER_ID#"; $repl[] = "#socnet_user_id#"; $patt[] = "#USER_ID#"; $repl[] = "#user_id#"; $patt[] = "#USER_ID#"; $repl[] = "#SOCNET_GROUP_ID#"; $patt[] = "#GROUP_ID#"; $repl[] = "#socnet_group_id#"; $patt[] = "#GROUP_ID#"; $repl[] = "#group_id#"; $patt[] = "#GROUP_ID#"; $repl[] = "#SOCNET_OBJECT_ID#"; $patt[] = "#SOCNET_OBJECT#"; $repl[] = "#socnet_object_id#"; $patt[] = "#SOCNET_OBJECT#"; $repl[] = "#socnet_object#"; $patt[] = "#SOCNET_OBJECT#"; if (!empty($arSection)) { $repl[] = "#USER_ID#"; $patt[] = $arSection["CREATED_BY"]; $repl[] = "#GROUP_ID#"; $patt[] = $arSection["SOCNET_GROUP_ID"]; $patt[] = "#SOCNET_OBJECT#"; $patt[] = $arSection["SOCNET_GROUP_ID"] > 0 ? "group" : "user"; } } if (!empty($arElement)) { $repl[] = "#ID#"; $patt[] = $arElement["ID"]; $repl[] = "#ELEMENT_ID#"; $patt[] = $arElement["ID"]; $repl[] = "#NAME#"; $patt[] = $arElement["NAME"]; $repl[] = "#ELEMENT_NAME#"; $patt[] = $arElement["NAME"]; } foreach ($SEF_URL_TEMPLATES as $key => $val) { $SEF_URL_TEMPLATES[$key] = str_replace($repl, $patt, $SEF_FOLDER . "/" . $val); } $SEF_URL_TEMPLATES["path"] = str_replace(array("#path#", "#PATH#"), "", $SEF_URL_TEMPLATES["path"]); $SEF_URL_TEMPLATES["delete_dropped"] = str_replace("#ACTION#", "delete_dropped", $SEF_URL_TEMPLATES["edit"]); $SEF_URL_TEMPLATES["edit"] = str_replace("#ACTION#", "edit", $SEF_URL_TEMPLATES["edit"]); $SEF_URL_TEMPLATES["entity"] = $entity; return $SEF_URL_TEMPLATES; }
LocalRedirect($strRedirect . "&ID=" . $ID . "&" . $tabControl->ActiveTabParam()); } elseif (strlen($save_and_add) > 0) { LocalRedirect($strRedirect . "&ID=0&" . $tabControl->ActiveTabParam()); } } elseif ($new == "Y") { LocalRedirect($strRedirect . "&ID=" . $ID . "&" . $tabControl->ActiveTabParam()); } } } } $str_GROUP_ID = array(); $user = CUser::GetByID($ID); if (!$user->ExtractFields("str_")) { $ID = 0; $str_ACTIVE = "Y"; $str_LID = CSite::GetDefSite(); } else { $dbUserGroup = CUser::GetUserGroupList($ID); while ($arUserGroup = $dbUserGroup->Fetch()) { $str_GROUP_ID[intval($arUserGroup["GROUP_ID"])]["DATE_ACTIVE_FROM"] = $arUserGroup["DATE_ACTIVE_FROM"]; $str_GROUP_ID[intval($arUserGroup["GROUP_ID"])]["DATE_ACTIVE_TO"] = $arUserGroup["DATE_ACTIVE_TO"]; } } if ($COPY_ID > 0) { $str_PERSONAL_PHOTO = ""; $str_WORK_LOGO = ""; } if ($strError != '' || !$res) { $save_PERSONAL_PHOTO = $str_PERSONAL_PHOTO; $save_WORK_LOGO = $str_WORK_LOGO; $DB->InitTableVarsForEdit("b_user", "", "str_");
/** * get handlers list based on DB data * @deprecated */ public static function GetList($arSort = array("SORT" => "ASC"), $arFilter = array()) { if (self::isFieldInFilter2("SITE", $arFilter)) { $arFilter["SITE_ID"] = self::getFilterValue("SITE", $arFilter); unset($arFilter["SITE"]); } if (isset($arFilter["SITE_ID"])) { if (is_string($arFilter["SITE_ID"]) && strlen($arFilter["SITE_ID"]) > 0) { if ($arFilter["SITE_ID"] == "ALL") { unset($arFilter["SITE_ID"]); } elseif (strpos($arFilter["SITE_ID"], ",") !== false) { $arFilter["SITE_ID"] = explode(",", $arFilter["SITE_ID"]); } else { $arFilter["SITE_ID"] = array($arFilter["SITE_ID"]); } } } else { $arFilter["SITE_ID"] = array(CSite::GetDefSite()); } if (!isset($arFilter["ACTIVE"])) { $arFilter["ACTIVE"] = "Y"; } elseif ($arFilter["ACTIVE"] == "ALL") { unset($arFilter["ACTIVE"]); } $params = array('order' => array_intersect_key($arSort, Bitrix\Sale\Delivery\Services\Table::getMap()), 'filter' => self::convertFilterOldToNew($arFilter)); $services = array(); $dbRes = \Bitrix\Sale\Delivery\Services\Table::getList($params); while ($service = $dbRes->fetch()) { $dbRstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $service["ID"], "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT))); while ($restr = $dbRstrRes->fetch()) { if (!self::checkRestrictionFilter($restr, $arFilter)) { continue 2; } if ($restr["CLASS_NAME"] == '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite' && !empty($restr["PARAMS"]["SITE_ID"])) { if (is_array($restr["PARAMS"]["SITE_ID"])) { reset($restr["PARAMS"]["SITE_ID"]); $service["LID"] = current($restr["PARAMS"]["SITE_ID"]); } elseif (is_string($restr["PARAMS"]["SITE_ID"])) { $service["LID"] = $restr["PARAMS"]["SITE_ID"]; } else { $service["LID"] = ""; } } } if (strlen($service['CODE']) > 0) { $srv = \Bitrix\Sale\Delivery\Services\Automatic::convertNewServiceToOld($service); } else { \Bitrix\Sale\Delivery\Services\Manager::getHandlersList(); if (get_parent_class($service['CLASS_NAME']) == 'Bitrix\\Sale\\Delivery\\Services\\Base') { if ($service['CLASS_NAME']::canHasProfiles()) { continue; } } $srv = \Bitrix\Sale\Delivery\Services\NewToAutomatic::convertNewServiceToOld($service); } if (empty($srv)) { continue; } if (is_array($arFilter["COMPABILITY"])) { $arProfiles = CSaleDeliveryHandler::GetHandlerCompability($arFilter["COMPABILITY"], $srv); if (!is_array($arProfiles) || count($arProfiles) <= 0) { continue; } else { $srv["PROFILES"] = $arProfiles; } } if ($srv) { $services[] = $srv; } } $result = new \CDBResult(); $result->InitFromArray($services); return $result; }
/** * Binds (and creates if it's necessary) template to the application folder * * @param $templateId - symbolic code of the template * @param $folder - the application folder * @param bool $createNew - flag of the necessity of creating a new template */ public static function bindTemplate($templateId, $folder, $createNew) { $arFields = array("TEMPLATE" => array()); if ($createNew) { CopyDirFiles(Application::getDocumentRoot() . "/bitrix/modules/mobileapp/templates/default_app/", Application::getDocumentRoot() . "/bitrix/templates/" . $templateId, True, True); File::putFileContents(Application::getDocumentRoot() . "/bitrix/templates/" . $templateId . "/description.php", str_replace(array("#mobile_template_name#"), array($templateId), File::getFileContents(Application::getDocumentRoot() . "/bitrix/templates/" . $templateId . "/description.php"))); $arFields["TEMPLATE"][] = array("SORT" => 1, "CONDITION" => "CSite::InDir('/" . $folder . "/')", "TEMPLATE" => $templateId); } $default_site_id = \CSite::GetDefSite(); if ($default_site_id) { $dbTemplates = \CSite::GetTemplateList($default_site_id); $arFields["LID"] = $default_site_id; $isTemplateFound = false; while ($template = $dbTemplates->Fetch()) { $arFields["TEMPLATE"][] = array("TEMPLATE" => $template['TEMPLATE'], "SORT" => $template['SORT'], "CONDITION" => $template['CONDITION']); if ($template["TEMPLATE"] == $templateId && !$createNew && !$isTemplateFound) { $isTemplateFound = true; $arFields["TEMPLATE"][] = array("SORT" => 1, "CONDITION" => "CSite::InDir('/" . $folder . "/')", "TEMPLATE" => $templateId); } } $obSite = new \CSite(); $obSite->Update($default_site_id, $arFields); } }
public static function GetPathForCalendarEx($userId = 0) { $bExtranet = CModule::IncludeModule('extranet'); // It's extranet user if ($bExtranet && self::IsExtranetUser($userId)) { $siteId = CExtranet::GetExtranetSiteID(); } else { if ($bExtranet && !self::IsExtranetUser($userId)) { $siteId = CSite::GetDefSite(); } else { $siteId = self::GetSiteId(); } if (self::$siteId == $siteId && isset(self::$pathesForSite) && is_array(self::$pathesForSite)) { self::$pathes[$siteId] = self::$pathesForSite; } } if (!isset(self::$pathes[$siteId]) || !is_array(self::$pathes[$siteId])) { self::$pathes[$siteId] = self::GetPathes($siteId); } $calendarUrl = self::$pathes[$siteId]['path_to_user_calendar']; $calendarUrl = str_replace(array('#user_id#', '#USER_ID#'), $userId, $calendarUrl); $calendarUrl = CCalendar::GetServerPath() . $calendarUrl; return $calendarUrl; }
public static function InviteUser($arUser, $messageText, $SITE_ID) { global $USER; $bExtranet = !isset($arUser["UF_DEPARTMENT"]) || is_array($arUser["UF_DEPARTMENT"]) && intval($arUser["UF_DEPARTMENT"][0]) <= 0 || !is_array($arUser["UF_DEPARTMENT"]) && intval($arUser["UF_DEPARTMENT"]) <= 0; $SiteIdToSend = $bExtranet && CModule::IncludeModule("extranet") ? CExtranet::GetExtranetSiteID() : CSite::GetDefSite(); $rsSites = CSite::GetByID($SiteIdToSend); $arSite = $rsSites->Fetch(); $serverName = strlen($arSite["SERVER_NAME"]) > 0 ? $arSite["SERVER_NAME"] : (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", "")); $event = new CEvent(); if (IsModuleInstalled("bitrix24")) { $event->SendImmediate("BITRIX24_USER_INVITATION", $SITE_ID, array("EMAIL_FROM" => $USER->GetEmail(), "EMAIL_TO" => $arUser["EMAIL"], "LINK" => CHTTP::URN2URI("/bitrix/tools/intranet_invite_dialog.php?user_id=" . $arUser['ID'] . "&checkword=" . urlencode($arUser["CONFIRM_CODE"]), $serverName), "USER_TEXT" => $messageText)); } else { $event->SendImmediate("INTRANET_USER_INVITATION", $SITE_ID, array("EMAIL_TO" => $arUser["EMAIL"], "LINK" => CHTTP::URN2URI("/bitrix/tools/intranet_invite_dialog.php?user_id=" . $arUser['ID'] . "&checkword=" . urlencode($arUser["CONFIRM_CODE"]), $serverName), "USER_TEXT" => $messageText)); } }
private function Init($arParams) { global $USER; ?> <script> (function(window) { if (!window.BXHtmlEditor) { var BXHtmlEditor = { editors: {}, configs: {}, dialogs: {}, Controls: {}, SaveConfig: function(config) { BX.ready(function() { if (config && config.id) { BXHtmlEditor.configs[config.id] = config; } } ); }, Show: function(config, id) { BX.ready(function() { if ((!config || typeof config != 'object') && id && BXHtmlEditor.configs[id]) { config = BXHtmlEditor.configs[id]; } if (config && typeof config == 'object') { if (!BXHtmlEditor.editors[config.id] || !BXHtmlEditor.editors[config.id].Check()) { BXHtmlEditor.editors[config.id] = new window.BXEditor(config); } else { BXHtmlEditor.editors[config.id].CheckAndReInit(); } } } ); }, Hide: function(id) { if (BXHtmlEditor.editors[id]) { BXHtmlEditor.editors[config.id].Hide(); } }, Get: function(id) { return BXHtmlEditor.editors[id] || false; }, OnBeforeUnload: function(e) { for (var id in BXHtmlEditor.editors) { if (BXHtmlEditor.editors.hasOwnProperty(id) && BXHtmlEditor.editors[id].config.askBeforeUnloadPage === true && BXHtmlEditor.editors[id].IsShown() && BXHtmlEditor.editors[id].IsContentChanged() && !BXHtmlEditor.editors[id].IsSubmited() && BXHtmlEditor.editors[id].beforeUnloadHandlerAllowed !== false) { if (typeof(BX.PULL) != 'undefined' && typeof(BX.PULL.tryConnectDelay) == 'function') // TODO change to right code in near future (e.shelenkov) { BX.PULL.tryConnectDelay(); } if(typeof(BX.desktopUtils) != 'undefined' && typeof(BX.desktopUtils.isChangedLocationToBx) == 'function' && BX.desktopUtils.isChangedLocationToBx()) { return; } return BXHtmlEditor.editors[id].config.beforeUnloadMessage || BX.message('BXEdExitConfirm'); } } }, ReplaceNewLines : function(content) { content = content.replace(/<[^<>]*br>\n/ig, '#BX_BR#'); var contentTmp; while (true) { contentTmp = content.replace(/([\s|\S]+)\n([\s|\S]+)/gi, function (s, s1, s2) { if (s1.match(/>\s*$/) || s2.match(/^\s*</)) return s; return s1 + '#BX_BR#' + s2; } ); if (contentTmp == content) { break; } else { content = contentTmp; } } content = content.replace(/#BX_BR#/ig, "<br>\n"); return content; }, ReplaceNewLinesBack: function(content) { content = content.replace(/<[^<>]*br>\n/ig, '#BX_BR#'); var contentTmp; while (true) { contentTmp = content.replace(/([\s|\S]+)#BX_BR#([\s|\S]+)/gi, function (s, s1, s2) { if (s1.match(/>\s*$/) || s2.match(/^\s*</)) return s; return s1 + '\n' + s2; } ); if (contentTmp == content) { break; } else { content = contentTmp; } } content = content.replace(/#BX_BR#/ig, "<br>\n"); return content; } }; window.BXHtmlEditor = BXHtmlEditor; window.onbeforeunload = BXHtmlEditor.OnBeforeUnload; } BX.onCustomEvent(window, "OnBXHtmlEditorInit"); top.BXHtmlEditorAjaxResponse = {}; })(window); </script><?php $basePath = '/bitrix/js/fileman/html_editor/'; $this->id = isset($arParams['id']) && strlen($arParams['id']) > 0 ? $arParams['id'] : 'bxeditor' . substr(uniqid(mt_rand(), true), 0, 4); $this->id = preg_replace("/[^a-zA-Z0-9_:\\.]/is", "", $this->id); if (isset($arParams['name'])) { $this->name = preg_replace("/[^a-zA-Z0-9_:\\.]/is", "", $arParams['name']); } else { $this->name = $this->id; } $this->cssIframePath = $this->GetActualPath($basePath . 'iframe-style.css'); CJSCore::RegisterExt('html_editor', array('js' => array($basePath . 'range.js', $basePath . 'html-actions.js', $basePath . 'html-views.js', $basePath . 'html-parser.js', $basePath . 'html-base-controls.js', $basePath . 'html-controls.js', $basePath . 'html-components.js', $basePath . 'html-snippets.js', $basePath . 'html-editor.js', '/bitrix/js/main/dd.js'), 'css' => $basePath . 'html-editor.css', 'rel' => array('date', 'timer'))); CUtil::InitJSCore(array('html_editor')); foreach (GetModuleEvents("fileman", "OnBeforeHTMLEditorScriptRuns", true) as $arEvent) { ExecuteModuleEventEx($arEvent); } $this->bAutorized = is_object($USER) && $USER->IsAuthorized(); if (isset($arParams['allowPhp']) && !isset($arParams['bAllowPhp'])) { $arParams['bAllowPhp'] = $arParams['allowPhp']; } $this->bAllowPhp = $arParams['bAllowPhp'] !== false; $arParams['limitPhpAccess'] = $arParams['limitPhpAccess'] === true; $this->display = !isset($arParams['display']) || $arParams['display']; $arParams["bodyClass"] = COption::GetOptionString("fileman", "editor_body_class", ""); $arParams["bodyId"] = COption::GetOptionString("fileman", "editor_body_id", ""); $this->content = $arParams['content']; $this->inputName = isset($arParams['inputName']) ? $arParams['inputName'] : $this->name; $this->inputId = isset($arParams['inputId']) ? $arParams['inputId'] : 'html_editor_content_id'; $arParams["bbCode"] = isset($arParams["bbCode"]) && $arParams["bbCode"] || isset($arParams["BBCode"]) && $arParams["BBCode"]; // Site id if (!isset($arParams['siteId'])) { $siteId = CSite::GetDefSite(); } else { $siteId = $arParams['siteId']; $res = CSite::GetByID($siteId); if (!$res->Fetch()) { $siteId = CSite::GetDefSite(); } } if (!isset($siteId) && defined(SITE_ID)) { $siteId = SITE_ID; $res = CSite::GetByID($siteId); if (!$res->Fetch()) { $siteId = CSite::GetDefSite(); } } $templateId = null; if (isset($arParams['templateId'])) { $templateId = $arParams['templateId']; } elseif (defined('SITE_TEMPLATE_ID')) { $templateId = SITE_TEMPLATE_ID; } if (!isset($templateId) && isset($_GET['siteTemplateId'])) { $templateId = $_GET['siteTemplateId']; } if ($arParams["bbCode"]) { $arTemplates = array(); $arSnippets = array(); $templateParams = array(); } else { if (isset($arParams['arTemplates'])) { $arTemplates = $arParams['arTemplates']; } else { $arTemplates = self::GetSiteTemplates(); } if (!isset($templateId) && isset($siteId)) { $dbSiteRes = CSite::GetTemplateList($siteId); $first = false; while ($arSiteRes = $dbSiteRes->Fetch()) { if (!$first) { $first = $arSiteRes['TEMPLATE']; } if ($arSiteRes['CONDITION'] == "") { $templateId = $arSiteRes['TEMPLATE']; break; } } if (!isset($templateId)) { $templateId = $first ? $first : ''; } } $arSnippets = array($templateId => self::GetSnippets($templateId)); $templateParams = self::GetSiteTemplateParams($templateId, $siteId); } $userSettings = array('view' => isset($arParams["view"]) ? $arParams["view"] : 'wysiwyg', 'split_vertical' => 0, 'split_ratio' => 1, 'taskbar_shown' => 0, 'taskbar_width' => 250, 'specialchars' => false, 'clean_empty_spans' => 'Y', 'paste_clear_colors' => 'Y', 'paste_clear_borders' => 'Y', 'paste_clear_decor' => 'Y', 'paste_clear_table_dimen' => 'Y', 'show_snippets' => 'Y', 'link_dialog_type' => 'internal'); $settingsKey = "user_settings_" . $arParams["bbCode"] . "_" . $this->id; $curSettings = CUserOptions::GetOption("html_editor", $settingsKey, false, $USER->GetId()); if (is_array($curSettings)) { foreach ($userSettings as $k => $val) { if (isset($curSettings[$k])) { $userSettings[$k] = $curSettings[$k]; } } } if (!isset($arParams["usePspell"])) { $arParams["usePspell"] = COption::GetOptionString("fileman", "use_pspell", "N"); } if (!isset($arParams["useCustomSpell"])) { $arParams["useCustomSpell"] = COption::GetOptionString("fileman", "use_custom_spell", "Y"); } $arParams["showComponents"] = isset($arParams["showComponents"]) ? $arParams["showComponents"] : true; $arParams["showSnippets"] = isset($arParams["showSnippets"]) ? $arParams["showSnippets"] : true; $arParams["showSnippets"] = $arParams["showSnippets"] && $userSettings['show_snippets'] != 'N'; if (!isset($arParams["initConponentParams"])) { $arParams["initConponentParams"] = $arParams["showTaskbars"] !== false && $arParams["showComponents"] && ($arParams['limitPhpAccess'] || $arParams['bAllowPhp']); } $arParams["actionUrl"] = $arParams["bbCode"] ? '/bitrix/tools/html_editor_action.php' : '/bitrix/admin/fileman_html_editor_action.php'; $arParams["lazyLoad"] = isset($arParams["lazyLoad"]) ? $arParams["lazyLoad"] : false; $this->jsConfig = array('id' => $this->id, 'inputName' => $this->inputName, 'content' => $this->content, 'width' => $arParams['width'], 'height' => $arParams['height'], 'allowPhp' => $this->bAllowPhp, 'limitPhpAccess' => $arParams['limitPhpAccess'], 'templates' => $arTemplates, 'templateId' => $templateId, 'templateParams' => $templateParams, 'componentFilter' => $arParams['componentFilter'], 'snippets' => $arSnippets, 'placeholder' => isset($arParams['placeholder']) ? $arParams['placeholder'] : 'Text here...', 'actionUrl' => $arParams["actionUrl"], 'cssIframePath' => $this->cssIframePath, 'bodyClass' => $arParams["bodyClass"], 'bodyId' => $arParams["bodyId"], 'spellcheck_path' => $basePath . 'html-spell.js?v=' . filemtime($_SERVER['DOCUMENT_ROOT'] . $basePath . 'html-spell.js'), 'usePspell' => $arParams["usePspell"], 'useCustomSpell' => $arParams["useCustomSpell"], 'bbCode' => $arParams["bbCode"], 'askBeforeUnloadPage' => $arParams["askBeforeUnloadPage"] !== false, 'settingsKey' => $settingsKey, 'showComponents' => $arParams["showComponents"], 'showSnippets' => $arParams["showSnippets"], 'view' => $userSettings['view'], 'splitVertical' => $userSettings['split_vertical'] ? true : false, 'splitRatio' => $userSettings['split_ratio'], 'taskbarShown' => $userSettings['taskbar_shown'] ? true : false, 'taskbarWidth' => $userSettings['taskbar_width'], 'lastSpecialchars' => $userSettings['specialchars'] ? explode('|', $userSettings['specialchars']) : false, 'cleanEmptySpans' => $userSettings['clean_empty_spans'] != 'N', 'pasteSetColors' => $userSettings['paste_clear_colors'] != 'N', 'pasteSetBorders' => $userSettings['paste_clear_borders'] != 'N', 'pasteSetDecor' => $userSettings['paste_clear_decor'] != 'N', 'pasteClearTableDimen' => $userSettings['paste_clear_table_dimen'] != 'N', 'linkDialogType' => $userSettings['link_dialog_type'], 'lazyLoad' => $arParams["lazyLoad"]); if (($this->bAllowPhp || $arParams['limitPhpAccess']) && $arParams["showTaskbars"] !== false) { $this->jsConfig['components'] = self::GetComponents($templateId, false, $arParams['componentFilter']); } if (isset($arParams["initAutosave"])) { $this->jsConfig["initAutosave"] = $arParams["initAutosave"]; } if (isset($arParams["useFileDialogs"])) { $this->jsConfig["useFileDialogs"] = $arParams["useFileDialogs"]; } if (isset($arParams["showTaskbars"])) { $this->jsConfig["showTaskbars"] = $arParams["showTaskbars"]; } if (isset($arParams["showNodeNavi"])) { $this->jsConfig["showNodeNavi"] = $arParams["showNodeNavi"]; } if (isset($arParams["controlsMap"])) { $this->jsConfig["controlsMap"] = $arParams["controlsMap"]; } if (isset($arParams["arSmiles"])) { $this->jsConfig["smiles"] = $arParams["arSmiles"]; } if (isset($arParams["arSmilesSet"])) { $this->jsConfig["smileSets"] = $arParams["arSmilesSet"]; } if (isset($arParams["iframeCss"])) { $this->jsConfig["iframeCss"] = $arParams["iframeCss"]; } if (isset($arParams["beforeUnloadMessage"])) { $this->jsConfig["beforeUnloadMessage"] = $arParams["beforeUnloadMessage"]; } if (isset($arParams["setFocusAfterShow"])) { $this->jsConfig["setFocusAfterShow"] = $arParams["setFocusAfterShow"]; } if (isset($arParams["relPath"])) { $this->jsConfig["relPath"] = $arParams["relPath"]; } // autoresize if (isset($arParams["autoResize"])) { $this->jsConfig["autoResize"] = $arParams["autoResize"]; if (isset($arParams['autoResizeOffset'])) { $this->jsConfig['autoResizeOffset'] = $arParams['autoResizeOffset']; } if (isset($arParams['autoResizeMaxHeight'])) { $this->jsConfig['autoResizeMaxHeight'] = $arParams['autoResizeMaxHeight']; } if (isset($arParams['autoResizeSaveSize'])) { $this->jsConfig['autoResizeSaveSize'] = $arParams['autoResizeSaveSize'] !== false; } } if (isset($arParams["minBodyWidth"])) { $this->jsConfig["minBodyWidth"] = $arParams["minBodyWidth"]; } if (isset($arParams["minBodyHeight"])) { $this->jsConfig["minBodyHeight"] = $arParams["minBodyHeight"]; } if (isset($arParams["normalBodyWidth"])) { $this->jsConfig["normalBodyWidth"] = $arParams["normalBodyWidth"]; } return $arParams; }
function SendPassword($LOGIN, $EMAIL, $SITE_ID = false) { /** @global CMain $APPLICATION */ global $DB, $APPLICATION; $arParams = array("LOGIN" => $LOGIN, "EMAIL" => $EMAIL, "SITE_ID" => $SITE_ID); $result_message = array("MESSAGE" => GetMessage('ACCOUNT_INFO_SENT') . "<br>", "TYPE" => "OK"); $APPLICATION->ResetException(); $bOk = true; foreach (GetModuleEvents("main", "OnBeforeUserSendPassword", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arParams)) === false) { if ($err = $APPLICATION->GetException()) { $result_message = array("MESSAGE" => $err->GetString() . "<br>", "TYPE" => "ERROR"); } $bOk = false; break; } } if ($bOk) { $f = false; if ($arParams["LOGIN"] != '' || $arParams["EMAIL"] != '') { $confirmation = COption::GetOptionString("main", "new_user_registration_email_confirmation", "N") == "Y"; $strSql = ""; if ($arParams["LOGIN"] != '') { $strSql = "SELECT ID, LID, ACTIVE, CONFIRM_CODE, LOGIN, EMAIL, NAME, LAST_NAME " . "FROM b_user u " . "WHERE LOGIN='******' " . "\tAND (ACTIVE='Y' OR NOT(CONFIRM_CODE IS NULL OR CONFIRM_CODE='')) " . "\tAND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='') "; } if ($arParams["EMAIL"] != '') { if ($strSql != '') { $strSql .= "\nUNION\n"; } $strSql .= "SELECT ID, LID, ACTIVE, CONFIRM_CODE, LOGIN, EMAIL, NAME, LAST_NAME " . "FROM b_user u " . "WHERE EMAIL='" . $DB->ForSQL($arParams["EMAIL"]) . "' " . "\tAND (ACTIVE='Y' OR NOT(CONFIRM_CODE IS NULL OR CONFIRM_CODE='')) " . "\tAND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='') "; } $res = $DB->Query($strSql); while ($arUser = $res->Fetch()) { if ($arParams["SITE_ID"] === false) { if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) { $arParams["SITE_ID"] = CSite::GetDefSite($arUser["LID"]); } else { $arParams["SITE_ID"] = SITE_ID; } } if ($arUser["ACTIVE"] == "Y") { CUser::SendUserInfo($arUser["ID"], $arParams["SITE_ID"], GetMessage("INFO_REQ"), true, 'USER_PASS_REQUEST'); $f = true; } elseif ($confirmation) { //unconfirmed registration - resend confirmation email $arFields = array("USER_ID" => $arUser["ID"], "LOGIN" => $arUser["LOGIN"], "EMAIL" => $arUser["EMAIL"], "NAME" => $arUser["NAME"], "LAST_NAME" => $arUser["LAST_NAME"], "CONFIRM_CODE" => $arUser["CONFIRM_CODE"], "USER_IP" => $_SERVER["REMOTE_ADDR"], "USER_HOST" => @gethostbyaddr($_SERVER["REMOTE_ADDR"])); $event = new CEvent(); $event->SendImmediate("NEW_USER_CONFIRM", $arParams["SITE_ID"], $arFields); $result_message = array("MESSAGE" => GetMessage("MAIN_SEND_PASS_CONFIRM") . "<br>", "TYPE" => "OK"); $f = true; } if (COption::GetOptionString("main", "event_log_password_request", "N") === "Y") { CEventLog::Log("SECURITY", "USER_INFO", "main", $arUser["ID"]); } } } if (!$f) { return array("MESSAGE" => GetMessage('DATA_NOT_FOUND') . "<br>", "TYPE" => "ERROR"); } } return $result_message; }
public static function getForumId() { $forumId = COption::GetOptionString('bizproc', 'forum_id', 0); if (!$forumId && CModule::includeModule('forum')) { $defaultSiteId = CSite::GetDefSite(); $forumId = CForumNew::Add(array('NAME' => 'Bizproc Workflow', 'XML_ID' => 'bizproc_workflow', 'SITES' => array($defaultSiteId => '/'), 'ACTIVE' => 'Y', 'DEDUPLICATION' => 'N')); COption::SetOptionString("bizproc", "forum_id", $forumId); } return $forumId; }
} catch (\IntaroCrm\Exception\CurlException $e) { ICrmOrderActions::eventLog( 'ICrmOrderActions::orderHistory', 'RetailCrm\RestApi::customerFixExternalIds::CurlException', $e->getCode() . ': ' . $e->getMessage() ); die(); } } $order['customer']['externalId'] = $registeredUserID; } // new order $newOrderFields = array( 'LID' => CSite::GetDefSite(), 'PERSON_TYPE_ID' => isset($optionsOrderTypes[$order['orderType']]) ? $optionsOrderTypes[$order['orderType']] : $defaultOrderType, 'PAYED' => 'N', 'CANCELED' => 'N', 'STATUS_ID' => 'N', 'PRICE' => 0, 'CURRENCY' => CCurrency::GetBaseCurrency(), 'USER_ID' => $order['customer']['externalId'], 'PAY_SYSTEM_ID' => 0, 'PRICE_DELIVERY' => 0, 'DELIVERY_ID' => 0, 'DISCOUNT_VALUE' => 0, 'USER_DESCRIPTION' => '' ); if(count($optionsSitesList) > 1 && $lid = array_search($order['site'], $optionsSitesList)){
public static function SendEventAgent() { global $DB; if (IsModuleInstalled("im")) { return "CSocNetMessages::SendEventAgent();"; } $dbMessage = CSocNetMessages::GetList(array(), array("DATE_VIEW" => "", "TO_DELETED" => "N", "SEND_MAIL" => "N", "!IS_LOG" => "Y"), false, false, array("ID", "FROM_USER_ID", "TO_USER_ID", "TITLE", "MESSAGE", "DATE_CREATE", "FROM_USER_NAME", "FROM_USER_LAST_NAME", "FROM_USER_LOGIN", "TO_USER_NAME", "TO_USER_LAST_NAME", "TO_USER_LOGIN", "TO_USER_EMAIL", "TO_USER_LID", "EMAIL_TEMPLATE", "IS_LOG")); while ($arMessage = $dbMessage->Fetch()) { if (isset($arMessage["EMAIL_TEMPLATE"]) && strlen($arMessage["EMAIL_TEMPLATE"]) > 0) { $mailTemplate = $arMessage["EMAIL_TEMPLATE"]; } else { $mailTemplate = "SONET_NEW_MESSAGE"; } $defSiteID = $arMessage["TO_USER_LID"]; $siteID = CSocNetUserEvents::GetEventSite($arMessage["TO_USER_ID"], $mailTemplate, $defSiteID); if ($siteID == false || StrLen($siteID) <= 0) { $siteID = CSite::GetDefSite(); } if ($siteID == false || StrLen($siteID) <= 0) { continue; } $arFields = array("MESSAGE_ID" => $arMessage["ID"], "USER_ID" => $arMessage["TO_USER_ID"], "USER_NAME" => $arMessage["TO_USER_NAME"], "USER_LAST_NAME" => $arMessage["TO_USER_LAST_NAME"], "SENDER_ID" => $arMessage["FROM_USER_ID"], "SENDER_NAME" => $arMessage["FROM_USER_NAME"], "SENDER_LAST_NAME" => $arMessage["FROM_USER_LAST_NAME"], "EMAIL_TO" => $arMessage["TO_USER_EMAIL"], "TITLE" => $arMessage["TITLE"], "MESSAGE" => CSocNetTextParser::convert4mail($arMessage["MESSAGE"])); $event = new CEvent(); $event->Send($mailTemplate, $siteID, $arFields, "N"); CSocNetMessages::Update($arMessage["ID"], array("SEND_MAIL" => "Y")); } return "CSocNetMessages::SendEventAgent();"; }
function SendPassword($LOGIN, $EMAIL, $SITE_ID = false) { global $DB, $APPLICATION, $USER; $arParams = array("LOGIN" => $LOGIN, "EMAIL" => $EMAIL, "SITE_ID" => $SITE_ID); $result_message = array("MESSAGE" => GetMessage('ACCOUNT_INFO_SENT') . "<br>", "TYPE" => "OK"); $APPLICATION->ResetException(); $bOk = true; $db_events = GetModuleEvents("main", "OnBeforeUserSendPassword"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arParams)) === false) { if ($err = $APPLICATION->GetException()) { $result_message = array("MESSAGE" => $err->GetString() . "<br>", "TYPE" => "ERROR"); } $bOk = false; break; } } if ($bOk) { $f = false; $sFilter = ""; if ($arParams["LOGIN"] != '') { $sFilter .= "LOGIN='******'"; } if ($arParams["EMAIL"] != '') { $sFilter .= ($sFilter != '' ? ' OR ' : '') . "EMAIL='" . $DB->ForSQL($arParams["EMAIL"]) . "'"; } if ($sFilter != '') { $strSql = "SELECT ID, LID " . "FROM b_user u " . "WHERE (" . $sFilter . ") " . "\tAND ACTIVE='Y' " . "\tAND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='') "; $res = $DB->Query($strSql); while ($arUser = $res->Fetch()) { if ($arParams["SITE_ID"] === false) { if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) { $arParams["SITE_ID"] = CSite::GetDefSite($arUser["LID"]); } else { $arParams["SITE_ID"] = SITE_ID; } } // отсылаем данные $f = true; CUser::SendUserInfo($arUser["ID"], $arParams["SITE_ID"], GetMessage("INFO_REQ"), true, 'USER_PASS_REQUEST'); if (COption::GetOptionString("main", "event_log_password_request", "N") === "Y") { CEventLog::Log("SECURITY", "USER_INFO", "main", $arUser["ID"]); } } } if (!$f) { return array("MESSAGE" => GetMessage('DATA_NOT_FOUND') . "<br>", "TYPE" => "ERROR"); } } return $result_message; }
$arFields["SITE_ID"][] = CExtranet::GetExtranetSiteID(); $arFields["VISIBLE"] = "N"; $arFields["OPENED"] = "N"; } } elseif (CModule::IncludeModule("extranet") && CExtranet::IsExtranetSite()) { $arFields["SITE_ID"] = array(SITE_ID, CSite::GetDefSite()); } foreach ($arResult["GROUP_PROPERTIES"] as $field => $arUserField) { if (array_key_exists($field, $_POST)) { $arFields[$field] = $_POST[$field]; } } $USER_FIELD_MANAGER->EditFormAddFields("SONET_GROUP", $arFields); if ($arParams["GROUP_ID"] <= 0) { if (CModule::IncludeModule("extranet") && CExtranet::IsExtranetSite()) { $arFields["SITE_ID"][] = CSite::GetDefSite(); } $arResult["GROUP_ID"] = CSocNetGroup::CreateGroup($USER->GetID(), $arFields, $bAutoSubscribe); if (!$arResult["GROUP_ID"]) { if ($e = $APPLICATION->GetException()) { $errorMessage .= $e->GetString(); $errorID = $e->GetID(); if (strlen($errorID) > 0) { $arResult["ErrorFields"][] = $errorID; } } } else { $bFirstStepSuccess = true; } } else { $arFields["=DATE_UPDATE"] = $DB->CurrentTimeFunction();
private function Init($arParams) { global $USER, $APPLICATION; ?> <script> (function() { if (!window.BXHtmlEditor) { var BXHtmlEditor = { ajaxResponse: {}, editors: {}, configs: {}, dialogs: {}, Controls: {}, SaveConfig: function(config) { BX.ready(function() { if (config && config.id) { BXHtmlEditor.configs[config.id] = config; } } ); }, Show: function(config, id) { BX.ready(function() { if ((!config || typeof config != 'object') && id && BXHtmlEditor.configs[id]) { config = BXHtmlEditor.configs[id]; } if (config && typeof config == 'object') { if (!BXHtmlEditor.editors[config.id] || !BXHtmlEditor.editors[config.id].Check()) { BXHtmlEditor.editors[config.id] = new window.BXEditor(config); BXHtmlEditor.editors[config.id].Show(); BX.onCustomEvent(BXHtmlEditor, 'OnEditorCreated',[BXHtmlEditor.editors[config.id]]); } else { BXHtmlEditor.editors[config.id].CheckAndReInit(); } } } ); }, Hide: function(id) { if (BXHtmlEditor.editors[id]) { BXHtmlEditor.editors[config.id].Hide(); } }, Get: function(id) { return BXHtmlEditor.editors[id] || false; }, OnBeforeUnload: function(e) { for (var id in BXHtmlEditor.editors) { if (BXHtmlEditor.editors.hasOwnProperty(id) && BXHtmlEditor.editors[id].config.askBeforeUnloadPage === true && BXHtmlEditor.editors[id].IsShown() && BXHtmlEditor.editors[id].IsContentChanged() && !BXHtmlEditor.editors[id].IsSubmited() && BXHtmlEditor.editors[id].beforeUnloadHandlerAllowed !== false) { return BXHtmlEditor.editors[id].config.beforeUnloadMessage || BX.message('BXEdExitConfirm'); } } } }; top.BXHtmlEditor = window.BXHtmlEditor = BXHtmlEditor; window.onbeforeunload = BXHtmlEditor.OnBeforeUnload; } BX.onCustomEvent(window, "OnBXHtmlEditorInit"); })(); </script><? $basePath = '/bitrix/js/fileman/html_editor/'; $this->id = (isset($arParams['id']) && strlen($arParams['id']) > 0) ? $arParams['id'] : 'bxeditor'.substr(uniqid(mt_rand(), true), 0, 4); $this->id = preg_replace("/[^a-zA-Z0-9_:\.]/is", "", $this->id); if (isset($arParams['name'])) { $this->name = preg_replace("/[^a-zA-Z0-9_:\.]/is", "", $arParams['name']); } else { $this->name = $this->id; } $this->cssIframePath = $this->GetActualPath($basePath.'iframe-style.css'); CJSCore::RegisterExt('html_editor', array( 'js' => array( $basePath.'range.js', $basePath.'html-actions.js', $basePath.'html-views.js', $basePath.'html-parser.js', $basePath.'html-base-controls.js', $basePath.'html-controls.js', $basePath.'html-components.js', $basePath.'html-snippets.js', $basePath.'html-editor.js', '/bitrix/js/main/dd.js' ), 'css' => $basePath.'html-editor.css', 'rel' => array('date', 'timer') )); CUtil::InitJSCore(array('html_editor')); $db_events = GetModuleEvents("fileman", "OnBeforeHTMLEditorScriptRuns"); while($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent); } $this->bAutorized = is_object($USER) && $USER->IsAuthorized(); if (isset($arParams['allowPhp']) && !isset($arParams['bAllowPhp'])) { $arParams['bAllowPhp'] = $arParams['allowPhp']; } $this->bAllowPhp = $arParams['bAllowPhp'] !== false; $arParams['limitPhpAccess'] = $arParams['limitPhpAccess'] === true; $this->display = !isset($arParams['display']) || $arParams['display']; $arParams["bodyClass"] = COption::GetOptionString("fileman", "editor_body_class", ""); $arParams["bodyId"] = COption::GetOptionString("fileman", "editor_body_id", ""); $this->content = $arParams['content']; $this->inputName = isset($arParams['inputName']) ? $arParams['inputName'] : 'html_editor_content'; $this->inputId = isset($arParams['inputId']) ? $arParams['inputId'] : 'html_editor_content_id'; $arParams["bbCode"] = (isset($arParams["bbCode"]) && $arParams["bbCode"]) || (isset($arParams["BBCode"]) && $arParams["BBCode"]); // Site id if (!isset($arParams['siteId'])) { $siteId = CSite::GetDefSite(); } else { $siteId = $arParams['siteId']; $res = CSite::GetByID($siteId); if (!$res->Fetch()) { $siteId = CSite::GetDefSite(); } } if (!isset($siteId) && defined(SITE_ID)) { $siteId = SITE_ID; $res = CSite::GetByID($siteId); if (!$res->Fetch()) { $siteId = CSite::GetDefSite(); } } $templateId = null; if (isset($arParams['templateId'])) { $templateId = $arParams['templateId']; } elseif (defined(SITE_TEMPLATE_ID)) { $templateId = SITE_TEMPLATE_ID; } if ($arParams["bbCode"]) { $arTemplates = array(); $arSnippets = array(); $templateParams = array(); } else { if (isset($arParams['arTemplates'])) { $arTemplates = $arParams['arTemplates']; } else { $arTemplates = self::GetSiteTemplates(); } if (!isset($templateId) && isset($siteId)) { $dbSiteRes = CSite::GetTemplateList($siteId); $first = false; while($arSiteRes = $dbSiteRes->Fetch()) { if (!$first) { $first = $arSiteRes['TEMPLATE']; } if ($arSiteRes['CONDITION'] == "") { $templateId = $arSiteRes['TEMPLATE']; break; } } if (!isset($templateId)) { $templateId = $first; } } $arSnippets = array($templateId => self::GetSnippets($templateId)); $templateParams = self::GetSiteTemplateParams($templateId, $siteId); } $userSettings = array( 'view' => isset($arParams["view"]) ? $arParams["view"] : 'wysiwyg', 'split_vertical' => 0, 'split_ratio' => 1, 'taskbar_shown' => 0, 'taskbar_width' => 250, 'specialchars' => false, 'clean_empty_spans' => 'Y' ); $settingsKey = "user_settings_".$arParams["bbCode"]; $curSettings = CUserOptions::GetOption("html_editor", $settingsKey, false, $USER->GetId()); if (is_array($curSettings)) { foreach ($userSettings as $k => $val) { if (isset($curSettings[$k])) { $userSettings[$k] = $curSettings[$k]; } } } if(!isset($arParams["usePspell"])) { $arParams["usePspell"] = COption::GetOptionString("fileman", "use_pspell", "N"); } if(!isset($arParams["useCustomSpell"])) { $arParams["useCustomSpell"] = COption::GetOptionString("fileman", "use_custom_spell", "Y"); } $arParams["showComponents"] = isset($arParams["showComponents"]) ? $arParams["showComponents"] : true; $arParams["showSnippets"] = isset($arParams["showSnippets"]) ? $arParams["showSnippets"] : true; if(!isset($arParams["initConponentParams"])) $arParams["initConponentParams"] = $arParams["showTaskbars"] !== false && $arParams["showComponents"] && ($arParams['limitPhpAccess'] || $arParams['bAllowPhp']); $arParams["actionUrl"] = $arParams["bbCode"] ? '/bitrix/tools/html_editor_action.php' : '/bitrix/admin/fileman_html_editor_action.php'; $this->jsConfig = array( 'id' => $this->id, 'inputName' => $this->name, 'content' => $this->content, 'width' => $arParams['width'], 'height' => $arParams['height'], 'allowPhp' => $this->bAllowPhp, 'limitPhpAccess' => $arParams['limitPhpAccess'], 'templates' => $arTemplates, 'templateId' => $templateId, 'templateParams' => $templateParams, 'snippets' => $arSnippets, 'placeholder' => isset($arParams['placeholder']) ? $arParams['placeholder'] : 'Text here...', 'actionUrl' => $arParams["actionUrl"], 'cssIframePath' => $this->cssIframePath, 'bodyClass' => $arParams["bodyClass"], 'bodyId' => $arParams["bodyId"], 'spellcheck_path' => $basePath.'html-spell.js?v='.filemtime($_SERVER['DOCUMENT_ROOT'].$basePath.'html-spell.js'), 'usePspell' => $arParams["usePspell"], 'useCustomSpell' => $arParams["useCustomSpell"], 'bbCode' => $arParams["bbCode"], 'askBeforeUnloadPage' => $arParams["askBeforeUnloadPage"] !== false, 'settingsKey' => $settingsKey, 'showComponents' => $arParams["showComponents"], 'showSnippets' => $arParams["showSnippets"], // user settings 'view' => $userSettings['view'], 'splitVertical' => $userSettings['split_vertical'] ? true : false, 'splitRatio' => $userSettings['split_ratio'], 'taskbarShown' => $userSettings['taskbar_shown'] ? true : false, 'taskbarWidth' => $userSettings['taskbar_width'], 'lastSpecialchars' => $userSettings['specialchars'] ? explode('|', $userSettings['specialchars']) : false, 'cleanEmptySpans' => $userSettings['clean_empty_spans'] != 'N' ); if (($this->bAllowPhp || $arParams['limitPhpAccess']) && $arParams["showTaskbars"] !== false) { $this->jsConfig['components'] = self::GetComponents($templateId); } if (isset($arParams["showTaskbars"])) $this->jsConfig["showTaskbars"] = $arParams["showTaskbars"]; if (isset($arParams["showNodeNavi"])) $this->jsConfig["showNodeNavi"] = $arParams["showNodeNavi"]; if (isset($arParams["controlsMap"])) $this->jsConfig["controlsMap"] = $arParams["controlsMap"]; if (isset($arParams["arSmiles"])) $this->jsConfig["smiles"] = $arParams["arSmiles"]; if (isset($arParams["iframeCss"])) $this->jsConfig["iframeCss"] = $arParams["iframeCss"]; if (isset($arParams["beforeUnloadMessage"])) $this->jsConfig["beforeUnloadMessage"] = $arParams["beforeUnloadMessage"]; if (isset($arParams["setFocusAfterShow"])) $this->jsConfig["setFocusAfterShow"] = $arParams["setFocusAfterShow"]; // autoresize if (isset($arParams["autoResize"])) { $this->jsConfig["autoResize"] = $arParams["autoResize"]; if (isset($arParams['autoResizeOffset'])) $this->jsConfig['autoResizeOffset'] = $arParams['autoResizeOffset']; if (isset($arParams['autoResizeMaxHeight'])) $this->jsConfig['autoResizeMaxHeight'] = $arParams['autoResizeMaxHeight']; if (isset($arParams['autoResizeSaveSize'])) $this->jsConfig['autoResizeSaveSize'] = $arParams['autoResizeSaveSize'] !== false; } if (isset($arParams["minBodyWidth"])) $this->jsConfig["minBodyWidth"] = $arParams["minBodyWidth"]; if (isset($arParams["minBodyHeight"])) $this->jsConfig["minBodyHeight"] = $arParams["minBodyHeight"]; if (isset($arParams["normalBodyWidth"])) $this->jsConfig["normalBodyWidth"] = $arParams["normalBodyWidth"]; return $arParams; }
private function Init($arParams) { global $USER, $APPLICATION; ?> <script> (function() { if (!window.BXHtmlEditor) { var BXHtmlEditor = { ajaxResponse: {}, editors: {}, configs: {}, SaveConfig: function(config) { BX.ready(function() { if (config && config.id) { BXHtmlEditor.configs[config.id] = config; } } ); }, Show: function(config, id) { BX.ready(function() { if ((!config || typeof config != 'object') && id && BXHtmlEditor.configs[id]) { config = BXHtmlEditor.configs[id]; } if (config && typeof config == 'object') { BXHtmlEditor.editors[config.id] = new window.BXEditor(config); BXHtmlEditor.editors[config.id].Show(); } } ); }, Hide: function(id) { if (BXHtmlEditor.editors[id]) { BXHtmlEditor.editors[config.id].Hide(); } }, Get: function(id) { return BXHtmlEditor.editors[id] || false; }, OnBeforeUnload: function(e) { for (var id in BXHtmlEditor.editors) { if (BXHtmlEditor.editors.hasOwnProperty(id) && BXHtmlEditor.editors[id].IsShown() && BXHtmlEditor.editors[id].IsContentChanged() && !BXHtmlEditor.editors[id].IsSubmited()) { return BX.message('BXEdExitConfirm'); } } } }; top.BXHtmlEditor = window.BXHtmlEditor = BXHtmlEditor; window.onbeforeunload = BXHtmlEditor.OnBeforeUnload; } BX.onCustomEvent(window, "OnBXHtmlEditorInit"); })(); </script><? $basePath = '/freetrix/js/fileman/html_editor/'; $this->id = (isset($arParams['id']) && strlen($arParams['id']) > 0) ? $arParams['id'] : 'bxeditor'.substr(uniqid(mt_rand(), true), 0, 4); $this->id = preg_replace("/[^a-zA-Z0-9_:\.]/is", "", $this->id); if (isset($arParams['name'])) { $this->name = preg_replace("/[^a-zA-Z0-9_:\.]/is", "", $arParams['name']); } else { $this->name = $this->id; } $arJSPath = array( $basePath.'range.js', $basePath.'html-actions.js', $basePath.'html-views.js', $basePath.'html-parser.js', $basePath.'html-controls.js', $basePath.'html-components.js', $basePath.'html-editor.js' ); $this->cssPath = $this->GetActualPath($basePath.'html-editor.css'); $this->cssIframePath = $this->GetActualPath($basePath.'iframe-style.css'); $APPLICATION->SetAdditionalCss($this->cssPath); foreach ($arJSPath as $path) { $APPLICATION->AddHeadScript($path); } $this->bAutorized = is_object($USER) && $USER->IsAuthorized(); $this->bAllowPhp = $arParams['bAllowPhp'] !== false; $arParams['limitPhpAccess'] = $arParams['limitPhpAccess'] === true; $this->display = !isset($arParams['display']) || $arParams['display']; $arParams["bodyClass"] = COption::GetOptionString("fileman", "editor_body_class", ""); $arParams["bodyId"] = COption::GetOptionString("fileman", "editor_body_id", ""); $this->content = $arParams['content']; $this->inputName = isset($arParams['inputName']) ? $arParams['inputName'] : 'html_editor_content'; $this->inputId = isset($arParams['inputId']) ? $arParams['inputId'] : 'html_editor_content_id'; // Site id if (!isset($arParams['siteId'])) { $siteId = CSite::GetDefSite(); } else { $siteId = $arParams['siteId']; } if (!isset($siteId) && defined(SITE_ID)) { $siteId = SITE_ID; } $arTemplates = self::GetSiteTemplates(); if (isset($arParams['templateId'])) { $templateId = $arParams['templateId']; } elseif (defined(SITE_TEMPLATE_ID)) { $templateId = SITE_TEMPLATE_ID; } if (!isset($templateId) && isset($siteId)) { $dbSiteRes = CSite::GetTemplateList($siteId); $first = false; while($arSiteRes = $dbSiteRes->Fetch()) { if (!$first) { $first = $arSiteRes['TEMPLATE']; } if ($arSiteRes['CONDITION'] == "") { $templateId = $arSiteRes['TEMPLATE']; break; } } if (!isset($templateId)) { $templateId = $first; } } $arSnippets = array($templateId => self::GetSnippets($templateId)); $arComponents = self::GetComponents($templateId); $templateParams = self::GetSiteTemplateParams($templateId, $siteId); $userSettings = array( 'view' => 'wysiwyg', 'split_vertical' => 0, 'split_ratio' => 1, 'taskbar_shown' => 0, 'taskbar_width' => 250, 'specialchars' => false ); $curSettings = CUserOptions::GetOption("html_editor", "user_settings", false, $USER->GetId()); if (is_array($curSettings)) { foreach ($userSettings as $k => $val) { if (isset($curSettings[$k])) { $userSettings[$k] = $curSettings[$k]; } } } $this->jsConfig = array( 'id' => $this->id, 'inputName' => $this->name, 'content' => $this->content, 'width' => $arParams['width'], 'height' => $arParams['height'], 'allowPhp' => $this->bAllowPhp, 'bLPA' => $arParams['limitPhpAccess'], 'templates' => $arTemplates, 'templateId' => $templateId, 'templateParams' => $templateParams, 'snippets' => $arSnippets, 'components' => $arComponents, 'placeholder' => isset($arParams['placeholder']) ? $arParams['placeholder'] : 'Text here...', 'actionUrl' => '/freetrix/admin/fileman_html_editor_action.php', 'cssIframePath' => $this->cssIframePath, 'bodyClass' => $arParams["bodyClass"], 'bodyId' => $arParams["bodyId"], // user settings 'view' => $userSettings['view'], 'splitVertical' => $userSettings['split_vertical'] ? true : false, 'splitRatio' => $userSettings['split_ratio'], 'taskbarShown' => $userSettings['taskbar_shown'] ? true : false, 'taskbarWidth' => $userSettings['taskbar_width'], 'lastSpecialchars' => $userSettings['specialchars'] ? explode('|', $userSettings['specialchars']) : false ); }
public static function SendEvent($ID, $mailTemplate = "SONET_NEW_EVENT", $tmp_id = false, $bAgent = false, $bTransport = false) { $ID = IntVal($ID); if ($ID <= 0) return false; if (intval($tmp_id) > 0) $arFilter = array("ID" => $tmp_id); else $arFilter = array("ID" => $ID); $dbLog = CSocNetLog::GetList( array(), $arFilter, false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "EVENT_ID", "LOG_DATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "SITE_ID", "PARAMS", "SOURCE_ID", "GROUP_NAME", "CREATED_BY_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_LOGIN", "LOG_SOURCE_ID"), array("MIN_ID_JOIN" => true) ); $arLog = $dbLog->Fetch(); if (!$arLog) return $bAgent; if (MakeTimeStamp($arLog["LOG_DATE"]) > (time() + CTimeZone::GetOffset())) { $agent = "CSocNetLog::SendEventAgent(".$ID.", '".$mailTemplate."', ".($tmp_id ? $tmp_id : 'false').");"; $rsAgents = CAgent::GetList(array("ID"=>"DESC"), array("NAME" => $agent)); if(!$rsAgents->Fetch()) { $res = CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]); if(!$res) $GLOBALS["APPLICATION"]->ResetException(); } elseif ($bAgent) { CAgent::RemoveAgent($agent, "socialnetwork"); CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]); return true; } return false; } $arEvent = CSocNetLogTools::FindLogEventByID($arLog["EVENT_ID"], $arLog["ENTITY_TYPE"]); if ( $arEvent && array_key_exists("CLASS_FORMAT", $arEvent) && array_key_exists("METHOD_FORMAT", $arEvent) ) { $dbSiteCurrent = CSite::GetByID(SITE_ID); if ($arSiteCurrent = $dbSiteCurrent->Fetch()) if ($arSiteCurrent["LANGUAGE_ID"] != LANGUAGE_ID) $arLog["MAIL_LANGUAGE_ID"] = $arSiteCurrent["LANGUAGE_ID"]; $arLog["FIELDS_FORMATTED"] = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arLog, array(), true); } if ( array_key_exists($arLog["ENTITY_TYPE"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"]) && array_key_exists("HAS_MY", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["HAS_MY"] == "Y" && array_key_exists("CLASS_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && array_key_exists("METHOD_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"]) > 0 && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]) > 0 && method_exists($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]) ) $arOfEntities = call_user_func(array($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]), $arLog["ENTITY_ID"]); if ($bTransport) { $arListParams = array( "USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLog["ENTITY_TYPE"], "ENTITY_ID" => $arLog["ENTITY_ID"], "EVENT_ID" => $arLog["EVENT_ID"], "USER_ID" => $arLog["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => array("M", "X") ); $arLogSites = array(); $rsLogSite = CSocNetLog::GetSite($ID); while($arLogSite = $rsLogSite->Fetch()) $arLogSites[] = $arLogSite["LID"]; if (CModule::IncludeModule("extranet")) { $arSites = array(); $dbSite = CSite::GetList($by="sort", $order="desc", array("ACTIVE" => "Y")); while($arSite = $dbSite->Fetch()) $arSites[$arSite["ID"]] = array( "DIR" => (strlen(trim($arSite["DIR"])) > 0 ? $arSite["DIR"] : "/"), "SERVER_NAME" => (strlen(trim($arSite["SERVER_NAME"])) > 0 ? $arSite["SERVER_NAME"] : COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"])) ); $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $arIntranetUsers = CExtranet::GetIntranetUsers(); } $dbSubscribers = CSocNetLogEvents::GetList( array("TRANSPORT" => "DESC"), array( "USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false)) ), false, false, array("USER_ID", "SITE_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "USER_NAME", "USER_LAST_NAME", "USER_LOGIN", "USER_LID", "USER_EMAIL", "TRANSPORT"), $arListParams ); $arListParams = array( "USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLog["ENTITY_TYPE"], "ENTITY_ID" => $arLog["ENTITY_ID"], "EVENT_ID" => $arLog["EVENT_ID"], "USER_ID" => $arLog["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => "N" ); $dbUnSubscribers = CSocNetLogEvents::GetList( array("TRANSPORT" => "DESC"), array( "USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false)) ), false, false, array("USER_ID", "SITE_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "TRANSPORT", "EVENT_ID"), $arListParams ); $arUnSubscribers = array(); while ($arUnSubscriber = $dbUnSubscribers->Fetch()) $arUnSubscribers[] = $arUnSubscriber["USER_ID"]."_".$arUnSubscriber["ENTITY_TYPE"]."_".$arUnSubscriber["ENTITY_ID"]."_".$arUnSubscriber["ENTITY_MY"]."_".$arUnSubscriber["ENTITY_CB"]."_".$arUnSubscriber["EVENT_ID"]; $bHasAccessAll = CSocNetLogRights::CheckForUserAll($arLog["ID"]); $arSentUserID = array("M" => array(), "X" => array()); while ($arSubscriber = $dbSubscribers->Fetch()) { if ( is_array($arIntranetUsers) && !in_array($arSubscriber["USER_ID"], $arIntranetUsers) && !in_array($extranet_site_id, $arLogSites) ) continue; if ( array_key_exists($arSubscriber["TRANSPORT"], $arSentUserID) && in_array($arSubscriber["USER_ID"], $arSentUserID[$arSubscriber["TRANSPORT"]]) ) continue; if ( intval($arSubscriber["ENTITY_ID"]) != 0 && $arSubscriber["EVENT_ID"] == "all" && ( in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arSubscriber["ENTITY_ID"]."_N_".$arSubscriber["ENTITY_CB"]."_".$arLog["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arSubscriber["ENTITY_ID"]."_Y_".$arSubscriber["ENTITY_CB"]."_".$arLog["EVENT_ID"], $arUnSubscribers) ) ) continue; elseif ( intval($arSubscriber["ENTITY_ID"]) == 0 && $arSubscriber["ENTITY_CB"] == "N" && $arSubscriber["EVENT_ID"] != "all" && ( in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_Y_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_N_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_Y_N_".$arLog["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_N_N_".$arLog["EVENT_ID"], $arUnSubscribers) ) ) continue; $arSentUserID[$arSubscriber["TRANSPORT"]][] = $arSubscriber["USER_ID"]; if (!$bHasAccessAll) { $bHasAccess = CSocNetLogRights::CheckForUserOnly($arLog["ID"], $arSubscriber["USER_ID"]); if (!$bHasAccess) continue; } if (CModule::IncludeModule("extranet")) { $server_name = $arSites[((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)]["SERVER_NAME"]; $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"] = str_replace( array("#SERVER_NAME#", "#GROUPS_PATH#"), array( $server_name, COption::GetOptionString("socialnetwork", "workgroups_page", false, ((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)) ), $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"] ); $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"] = str_replace( array("#SERVER_NAME#", "#GROUPS_PATH#"), array( $server_name, COption::GetOptionString("socialnetwork", "workgroups_page", false, ((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)) ), $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] ); } else $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]; switch ($arSubscriber["TRANSPORT"]) { case "X": if ( array_key_exists("URL_TO_SEND", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0 ) $link = GetMessage("SONET_GL_SEND_EVENT_LINK").$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; elseif ( array_key_exists("URL", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]) > 0 ) $link = GetMessage("SONET_GL_SEND_EVENT_LINK").$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]; else $link = ""; $arMessageFields = array( "FROM_USER_ID" => (intval($arLog["USER_ID"]) > 0 ? $arLog["USER_ID"] : 1), "TO_USER_ID" => $arSubscriber["USER_ID"], "MESSAGE" => $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"]." #BR#".$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"].(strlen($link) > 0 ? "#BR# ".$link : ""), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "IS_LOG" => "Y" ); CSocNetMessages::Add($arMessageFields); break; case "M": $arFields["SUBSCRIBER_ID"] = $arSubscriber["USER_ID"]; $arFields["SUBSCRIBER_NAME"] = $arSubscriber["USER_NAME"]; $arFields["SUBSCRIBER_LAST_NAME"] = $arSubscriber["USER_LAST_NAME"]; $arFields["SUBSCRIBER_LOGIN"] = $arSubscriber["USER_LOGIN"]; $arFields["SUBSCRIBER_EMAIL"] = $arSubscriber["USER_EMAIL"]; $arFields["EMAIL_TO"] = $arSubscriber["USER_EMAIL"]; $arFields["TITLE"] = str_replace("#BR#", "\n", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"]); $arFields["MESSAGE"] = str_replace("#BR#", "\n", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"]); $arFields["ENTITY"] = $arLog["FIELDS_FORMATTED"]["ENTITY"]["FORMATTED"]; $arFields["ENTITY_TYPE"] = $arLog["FIELDS_FORMATTED"]["ENTITY"]["TYPE_MAIL"]; if ( array_key_exists("URL_TO_SEND", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0 ) $arFields["URL"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; elseif ( array_key_exists("URL", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]) > 0 ) $arFields["URL"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]; else $arFields["URL"] = $arLog["URL"]; if (CModule::IncludeModule("extranet")) $arUserGroup = CUser::GetUserGroup($arSubscriber["USER_ID"]); foreach ($arLogSites as $site_id_tmp) { if (IsModuleInstalled("extranet")) { if ( ( CExtranet::IsExtranetSite($site_id_tmp) && in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup) ) || ( !CExtranet::IsExtranetSite($site_id_tmp) && !in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup) ) ) { $siteID = $site_id_tmp; break; } else continue; } else { $siteID = $site_id_tmp; break; } } if (!$siteID) $siteID = (defined("SITE_ID") ? SITE_ID : $arSubscriber["SITE_ID"]); if (StrLen($siteID) <= 0) $siteID = $arSubscriber["USER_LID"]; if (StrLen($siteID) <= 0) continue; $event = new CEvent; $event->Send($mailTemplate, $siteID, $arFields, "N"); break; default: } } } CSocNetLog::CounterIncrement($arLog["ID"], $arLog["EVENT_ID"], $arOfEntities); return true; }
public static function OnAddRatingVote($id, $arParams) { $bSocialnetworkInstalled = CModule::IncludeModule("socialnetwork"); if ($arParams['ENTITY_TYPE_ID'] == 'LISTS_NEW_ELEMENT' && CModule::IncludeModule("socialnetwork")) { $rsLog = CSocNetLog::GetList(array(), array("RATING_TYPE_ID" => $arParams['ENTITY_TYPE_ID'], "RATING_ENTITY_ID" => $arParams['ENTITY_ID']), false, false, array("ID", "USER_ID", "TITLE_TEMPLATE", "TITLE")); if ($arLog = $rsLog->Fetch()) { if ($arLog['USER_ID'] != $arParams['USER_ID']) { $url = COption::GetOptionString("socialnetwork", "log_entry_page", $arSites[$user_site_id]["DIR"] . "company/personal/log/#log_id#/", SITE_ID); $url = str_replace("#log_id#", $arLog["ID"], $url); $arParams['ENTITY_LINK'] = $url; $arParams['ENTITY_TITLE'] = htmlspecialcharsback($arLog["TITLE"]); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => intval($arLog['USER_ID']), "FROM_USER_ID" => intval($arParams['USER_ID']), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "main", "NOTIFY_EVENT" => "rating_vote", "NOTIFY_TAG" => "RATING|" . ($arParams['VALUE'] >= 0 ? "" : "DL|") . $arParams['ENTITY_TYPE_ID'] . "|" . $arParams['ENTITY_ID'], "NOTIFY_MESSAGE" => self::GetMessageRatingVote($arParams), "NOTIFY_MESSAGE_OUT" => self::GetMessageRatingVote($arParams, true)); CIMNotify::Add($arMessageFields); } } } elseif ($arParams['ENTITY_TYPE_ID'] == 'LOG_COMMENT') { if ($arComment = CSocNetLogComments::GetByID($arParams['ENTITY_ID'])) { preg_match_all("/\\[user\\s*=\\s*([^\\]]*)\\](.+?)\\[\\/user\\]/ies" . BX_UTF_PCRE_MODIFIER, $arComment["TEXT_MESSAGE"], $arMention); if (!empty($arMention)) { $arMentionedUserID = $arMention[1]; } if ($arComment['USER_ID'] == $arParams['USER_ID'] && empty($arMentionedUserID)) { return false; } $arEventTmp = CSocNetLogTools::FindLogCommentEventByID($arComment["EVENT_ID"]); if ($arEventTmp && array_key_exists("CLASS_FORMAT", $arEventTmp) && array_key_exists("METHOD_FORMAT", $arEventTmp)) { $arComment["MESSAGE"] = preg_replace(array('|\\[DISK\\sFILE\\sID=[n]*\\d+\\]|', '|\\[DOCUMENT\\sID=[n]*\\d+\\]|'), '', $arComment["MESSAGE"]); $arComment["MESSAGE"] = preg_replace('|\\[QUOTE\\](.+?)\\[\\/QUOTE\\]|is' . BX_UTF_PCRE_MODIFIER, '"\\1"', $arComment["MESSAGE"]); $arFIELDS_FORMATTED = call_user_func(array($arEventTmp["CLASS_FORMAT"], $arEventTmp["METHOD_FORMAT"]), $arComment, array("IM" => "Y")); $CCTP = new CTextParser(); $CCTP->MaxStringLen = 200; $CCTP->allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "Y", "NL2BR" => "Y", "VIDEO" => "N", "TABLE" => "N", "CUT_ANCHOR" => "N", "ALIGN" => "N"); $arComment["MESSAGE"] = $CCTP->convertText($arFIELDS_FORMATTED["EVENT_FORMATTED"]["MESSAGE"]); } $arComment["MESSAGE"] = preg_replace(array('|\\[DISK\\sFILE\\sID=[n]*\\d+\\]|', '|\\[DOCUMENT\\sID=[n]*\\d+\\]|'), '', $arComment["MESSAGE"]); $arParams["ENTITY_TITLE"] = strip_tags(str_replace(array("<br>", "<br/>", "<br />", "#BR#"), array(" ", " ", " ", " "), htmlspecialcharsback($arComment["MESSAGE"]))); $bExtranetInstalled = CModule::IncludeModule("extranet"); if ($bExtranetInstalled) { $arSites = array(); $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $dbSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $dbSite->Fetch()) { $arSites[$arSite["ID"]] = array("DIR" => strlen(trim($arSite["DIR"])) > 0 ? $arSite["DIR"] : "/", "SERVER_NAME" => strlen(trim($arSite["SERVER_NAME"])) > 0 ? $arSite["SERVER_NAME"] : COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"])); } } if ($arComment['USER_ID'] != $arParams['USER_ID']) { $followValue = "Y"; if ($bSocialnetworkInstalled) { $followValue = CSocNetLogFollow::GetExactValueByRating($arComment['USER_ID'], trim($arParams["ENTITY_TYPE_ID"]), intval($arParams["ENTITY_ID"])); } if ($followValue != "N") { $arParams['ENTITY_LINK'] = self::GetMessageRatingLogCommentURL($arComment, intval($arComment['USER_ID']), $arSites, $intranet_site_id, $extranet_site_id); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => intval($arComment['USER_ID']), "FROM_USER_ID" => intval($arParams['USER_ID']), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "main", "NOTIFY_EVENT" => "rating_vote", "NOTIFY_TAG" => "RATING|" . ($arParams['VALUE'] >= 0 ? "" : "DL|") . $arParams['ENTITY_TYPE_ID'] . "|" . $arParams['ENTITY_ID'], "NOTIFY_MESSAGE" => self::GetMessageRatingVote($arParams), "NOTIFY_MESSAGE_OUT" => self::GetMessageRatingVote($arParams, true)); CIMNotify::Add($arMessageFields); } } if (!empty($arMentionedUserID) && is_array($arMentionedUserID)) { $arParams["MENTION"] = true; // for self::GetMessageRatingVote() foreach ($arMentionedUserID as $mentioned_user_id) { if ($mentioned_user_id != $arParams['USER_ID'] && CSocNetLogRights::CheckForUserOnly($arComment["LOG_ID"], $mentioned_user_id)) { $followValue = "Y"; if ($bSocialnetworkInstalled) { $followValue = CSocNetLogFollow::GetExactValueByRating(intval($mentioned_user_id), trim($arParams["ENTITY_TYPE_ID"]), intval($arParams["ENTITY_ID"])); } if ($followValue != "N") { $arParams['ENTITY_LINK'] = self::GetMessageRatingLogCommentURL($arComment, intval($mentioned_user_id), $arSites, $intranet_site_id, $extranet_site_id); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => intval($mentioned_user_id), "FROM_USER_ID" => intval($arParams['USER_ID']), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "main", "NOTIFY_EVENT" => "rating_vote_mentioned", "NOTIFY_TAG" => "RATING_MENTION|" . ($arParams['VALUE'] >= 0 ? "" : "DL|") . $arParams['ENTITY_TYPE_ID'] . "|" . $arParams['ENTITY_ID'], "NOTIFY_MESSAGE" => self::GetMessageRatingVote($arParams), "NOTIFY_MESSAGE_OUT" => self::GetMessageRatingVote($arParams, true)); CIMNotify::Add($arMessageFields); } } } } } } else { if (!CModule::IncludeModule("search") || BX_SEARCH_VERSION <= 1) { return false; } $CSI = new CSearchItem(); $arFSearch = array('=ENTITY_TYPE_ID' => $arParams['ENTITY_TYPE_ID'], '=ENTITY_ID' => $arParams['ENTITY_ID']); if (defined("SITE_ID") && strlen(SITE_ID) > 0) { $arFSearch["=SITE_ID"] = SITE_ID; } $res = $CSI->GetList(array(), $arFSearch, array('ID', 'URL', 'TITLE', 'BODY', 'PARAM1')); if ($arItem = $res->GetNext(true, false)) { // notify mentioned users $arSearchItemParams = CSearch::GetContentItemParams($arItem['ID'], 'mentioned_user_id'); if (is_array($arSearchItemParams) && array_key_exists('mentioned_user_id', $arSearchItemParams) && is_array($arSearchItemParams['mentioned_user_id'])) { $arMentionedUserID = $arSearchItemParams['mentioned_user_id']; } // send to author if ($arParams['OWNER_ID'] != $arParams['USER_ID'] || $arMentionedUserID) { $arParams["ENTITY_LINK"] = $arItem['URL']; $arParams["ENTITY_PARAM"] = $arItem['PARAM1']; $arParams["ENTITY_TITLE"] = trim(strip_tags(str_replace(array("\r\n", "\n", "\r"), ' ', htmlspecialcharsback($arItem['TITLE'])))); $arParams["ENTITY_MESSAGE"] = trim(strip_tags(str_replace(array("\r\n", "\n", "\r"), ' ', htmlspecialcharsback($arItem['BODY'])))); if ((strlen($arParams["ENTITY_TITLE"]) > 0 || strlen($arParams["ENTITY_MESSAGE"]) > 0) && strlen($arParams["ENTITY_LINK"]) > 0) { $originalLink = $arParams["ENTITY_LINK"]; $bExtranetInstalled = CModule::IncludeModule("extranet"); if ($bExtranetInstalled) { $arSites = array(); $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $dbSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $dbSite->Fetch()) { $arSites[$arSite["ID"]] = array("DIR" => strlen(trim($arSite["DIR"])) > 0 ? $arSite["DIR"] : "/", "SERVER_NAME" => strlen(trim($arSite["SERVER_NAME"])) > 0 ? $arSite["SERVER_NAME"] : COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"])); } } if ($arParams['OWNER_ID'] != $arParams['USER_ID']) { $followValue = "Y"; if ($bSocialnetworkInstalled) { $followValue = CSocNetLogFollow::GetExactValueByRating(intval($arParams['OWNER_ID']), trim($arParams["ENTITY_TYPE_ID"]), intval($arParams["ENTITY_ID"])); } if ($followValue != "N") { $arParams['ENTITY_LINK'] = self::GetMessageRatingEntityURL($originalLink, intval($arParams['OWNER_ID']), $arSites, $intranet_site_id, $extranet_site_id); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => intval($arParams['OWNER_ID']), "FROM_USER_ID" => intval($arParams['USER_ID']), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "main", "NOTIFY_EVENT" => "rating_vote", "NOTIFY_TAG" => "RATING|" . ($arParams['VALUE'] >= 0 ? "" : "DL|") . $arParams['ENTITY_TYPE_ID'] . "|" . $arParams['ENTITY_ID'], "NOTIFY_MESSAGE" => self::GetMessageRatingVote($arParams), "NOTIFY_MESSAGE_OUT" => self::GetMessageRatingVote($arParams, true)); CIMNotify::Add($arMessageFields); } } if (is_array($arMentionedUserID) && $bSocialnetworkInstalled) { if (in_array($arParams['ENTITY_TYPE_ID'], array("BLOG_COMMENT", "FORUM_POST"))) { $rsLogComment = CSocNetLogComments::GetList(array(), array("RATING_TYPE_ID" => $arParams['ENTITY_TYPE_ID'], "RATING_ENTITY_ID" => $arParams['ENTITY_ID']), false, false, array("LOG_ID")); if ($arLogComment = $rsLogComment->Fetch()) { $log_id = $arLogComment["LOG_ID"]; } } elseif (in_array($arParams['ENTITY_TYPE_ID'], array("BLOG_POST"))) { $rsLog = CSocNetLog::GetList(array(), array("RATING_TYPE_ID" => $arParams['ENTITY_TYPE_ID'], "RATING_ENTITY_ID" => $arParams['ENTITY_ID']), false, false, array("ID")); if ($arLog = $rsLog->Fetch()) { $log_id = $arLog["ID"]; } } if (intval($log_id) > 0) { $arParams["MENTION"] = true; // for self::GetMessageRatingVote() foreach ($arMentionedUserID as $mentioned_user_id) { if ($mentioned_user_id != $arParams['USER_ID'] && CSocNetLogRights::CheckForUserOnly($log_id, $mentioned_user_id)) { $followValue = "Y"; if ($bSocialnetworkInstalled) { $followValue = CSocNetLogFollow::GetExactValueByRating(intval($mentioned_user_id), trim($arParams["ENTITY_TYPE_ID"]), intval($arParams["ENTITY_ID"])); } if ($followValue != "N") { $arParams['ENTITY_LINK'] = self::GetMessageRatingEntityURL($originalLink, intval($mentioned_user_id), $arSites, $intranet_site_id, $extranet_site_id); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => intval($mentioned_user_id), "FROM_USER_ID" => intval($arParams['USER_ID']), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "main", "NOTIFY_EVENT" => "rating_vote_mentioned", "NOTIFY_TAG" => "RATING_MENTION|" . ($arParams['VALUE'] >= 0 ? "" : "DL|") . $arParams['ENTITY_TYPE_ID'] . "|" . $arParams['ENTITY_ID'], "NOTIFY_MESSAGE" => self::GetMessageRatingVote($arParams), "NOTIFY_MESSAGE_OUT" => self::GetMessageRatingVote($arParams, true)); CIMNotify::Add($arMessageFields); } } } } } } } } } }