$arUserFields["USER_ID"] = intval($_REQUEST['USER_ID']); $USER_ID = CForumUser::Add($arUserFields); $USER_INFO = CForumUser::GetByUSER_ID($USER_ID); } } } if (empty($USER_INFO)) { $arError[] = array("id" => "bad_user_info", "text" => str_replace("##", htmlspecialcharsEx($_REQUEST["USER_ID"]), GetMessage("PM_USER_NOT_FOUND"))); } else { $arrVars = array("AUTHOR_ID" => $USER->GetID(), "POST_SUBJ" => $_REQUEST["POST_SUBJ"], "POST_MESSAGE" => $_REQUEST["POST_MESSAGE"], "USE_SMILES" => $_REQUEST["USE_SMILES"], "USER_ID" => $USER_INFO["USER_ID"], "COPY_TO_OUTBOX" => $_REQUEST["COPY_TO_OUTBOX"], "REQUEST_IS_READ" => $_REQUEST["REQUEST_IS_READ"]); $arParams["MID"] = CForumPrivateMessage::Send($arrVars); if (intVal($arParams["MID"]) <= 0) { $err = $APPLICATION->GetException(); $arError[] = array("id" => "bad_send", "text" => $err->GetString()); } elseif ($arParams["version"] == 2) { $db_res = CForumPrivateMessage::GetListEx(array(), array("ID" => $arParams["MID"])); if (!($db_res && ($res = $db_res->GetNext()))) { ""; } elseif (!empty($res["RECIPIENT_EMAIL"])) { $event = new CEvent(); $arSiteInfo = $event->GetSiteFieldsArray(SITE_ID); if (!isset(${"parser_" . LANGUAGE_ID})) { ${"parser_" . LANGUAGE_ID} = new forumTextParser(LANGUAGE_ID); } $POST_MESSAGE = ${"parser_" . LANGUAGE_ID}->convert4mail(str_replace("#SERVER_NAME#", SITE_SERVER_NAME, $_REQUEST["POST_MESSAGE"])); $arFields = array("FROM_NAME" => $res["AUTHOR_NAME"], "FROM_USER_ID" => $USER->GetID(), "FROM_EMAIL" => $USER->GetEmail(), "TO_NAME" => $res["RECIPIENT_NAME"], "TO_USER_ID" => $res["RECIPIENT_ID"], "TO_EMAIL" => $res["RECIPIENT_EMAIL"], "SUBJECT" => $_REQUEST["POST_SUBJ"], "MESSAGE" => $POST_MESSAGE, "MESSAGE_DATE" => date("d.m.Y H:i:s"), "MESSAGE_LINK" => "http://" . SITE_SERVER_NAME . CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PM_READ"], array("FID" => "1", "MID" => $arParams["MID"])) . " \n"); $event->Send("NEW_FORUM_PRIVATE_MESSAGE", SITE_ID, $arFields, "N"); } } if ($arParams['AUTOSAVE']) { $arParams['AUTOSAVE']->Reset();
$arResult["InputOutput"] = "AUTHOR_ID"; $SortingField = "AUTHOR_NAME"; } elseif (1 < $arParams["FID"] && $arParams["FID"] <= 3) { $arResult["StatusUser"] = "******"; $arResult["InputOutput"] = "RECIPIENT_ID"; $SortingField = "RECIPIENT_NAME"; } $arResult["SortingEx"]["POST_SUBJ"] = SortingEx("post_subj"); $arResult["SortingEx"]["AUTHOR_NAME"] = SortingEx(strToLower($SortingField)); $arResult["SortingEx"]["POST_DATE"] = SortingEx("post_date"); $arFilter = array("USER_ID" => $arParams["UID"], "FOLDER_ID" => $arParams["FID"]); if ($arParams["FID"] == 2) { //If this is outbox folder $arFilter = array("OWNER_ID" => $arParams["UID"]); } $dbrMessages = CForumPrivateMessage::GetListEx(array($by => $order), $arFilter); $dbrMessages->NavStart($arParams["PM_PER_PAGE"]); $dbrMessages->bShowAll = false; $dbrMessages->nPageWindow = $arParams["PAGE_NAVIGATION_WINDOW"]; $arResult["NAV_RESULT"] = $dbrMessages; $arResult["NAV_STRING"] = $dbrMessages->GetPageNavStringEx($navComponentObject, GetMessage("PM_TITLE_PAGES"), $arParams["PAGE_NAVIGATION_TEMPLATE"]); if ($dbrMessages && ($arMsg = $dbrMessages->GetNext())) { do { $arMsg["POST_SUBJ"] = wordwrap($arMsg["POST_SUBJ"], 100, " ", 1); $arMsg["~SHOW_NAME"] = GetUserName($arMsg[$arResult["InputOutput"]], $arParams["NAME_TEMPLATE"]); $arMsg["SHOW_NAME"] = htmlspecialcharsEx($arMsg["~SHOW_NAME"]); $arMsg["URL"] = array("MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_READ"], array("FID" => $arParams["FID"], "MID" => $arMsg["ID"])), "MESSAGE_EDIT" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_EDIT"], array("FID" => $arParams["FID"], "mode" => "new", "MID" => 0, "UID" => $arMsg[$arResult["InputOutput"]])), "RECIPIENT" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg["RECIPIENT_ID"])), "SENDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg["AUTHOR_ID"]))); $arMsg["pm_read"] = $arMsg["URL"]["MESSAGE"]; $arMsg["pm_edit"] = $arMsg["URL"]["MESSAGE_EDIT"]; $arMsg["profile_view"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg[$arResult["InputOutput"]])); $arMsg["POST_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arMsg["POST_DATE"], CSite::GetDateFormat()));
foreach ($arFolders as $iFid) { $remMes = true; $iFid = intVal($iFid); if ($iFid <= 0) { } elseif (!CForumPMFolder::CheckPermissions($iFid)) { $arError[] = array("id" => "bad_permission", "text" => GetMessage("PM_NOT_RIGHT")); } elseif ($action == "delete" && $iFid <= FORUM_SystemFolder) { $arError[] = array("id" => "bad_folders", "text" => GetMessage("F_ERR_SYSTEM_FOLDERS")); } else { $arFilter = array("FOLDER_ID" => $iFid, "USER_ID" => $USER->GetId()); if ($version == "2" && ($iFid == 2 || $iFid == 3)) { $arFilter = array("OWNER_ID" => $USER->GetId()); } elseif ($version != "2" && $iFid == 2) { $arFilter = array("FOLDER_ID" => 2, "USER_ID" => $USER->GetId(), "OWNER_ID" => $USER->GetId()); } $arMessage = CForumPrivateMessage::GetListEx(array(), $arFilter); while ($res = $arMessage->GetNext()) { if (!CForumPrivateMessage::Delete($res["ID"])) { $arError[] = array("id" => "bad_delete_" . $res["ID"], "text" => GetMessage("PM_NOT_DELETE")); } } if (empty($arError) && $action == "delete" && !CForumPMFolder::Delete($iFid)) { $arError[] = array("id" => "not_delete", "text" => GetMessage("PM_NOT_DELETE")); } if (empty($arError)) { BXClearCache(true, "/bitrix/forum/user/" . $USER->GetId() . "/"); $arComponentPath = array("bitrix:forum"); foreach ($arComponentPath as $path) { $componentRelativePath = CComponentEngine::MakeComponentPath($path); $arComponentDescription = CComponentUtil::GetComponentDescr($path); if (strLen($componentRelativePath) <= 0 || !is_array($arComponentDescription)) {
$arResult["InputOutput"] = "AUTHOR_ID"; $SortingField = "AUTHOR_NAME"; } elseif (1 < $arParams["FID"] && $arParams["FID"] <= 3) { $arResult["StatusUser"] = "******"; $arResult["InputOutput"] = "RECIPIENT_ID"; $SortingField = "RECIPIENT_NAME"; } $arResult["SortingEx"]["POST_SUBJ"] = SortingEx("post_subj"); $arResult["SortingEx"]["AUTHOR_NAME"] = SortingEx(strToLower($SortingField)); $arResult["SortingEx"]["POST_DATE"] = SortingEx("post_date"); $arFilter = array("USER_ID" => $arParams["UID"], "FOLDER_ID" => $arParams["FID"]); if ($arParams["FID"] == 2) { //If this is outbox folder $arFilter = array("OWNER_ID" => $arParams["UID"]); } $dbrMessages = CForumPrivateMessage::GetListEx(array($by => $order), $arFilter, array("bDescPageNumbering" => false, "nPageSize" => $arParams["PM_PER_PAGE"], "bShowAll" => false, "sNameTemplate" => $arParams["NAME_TEMPLATE"])); $dbrMessages->NavStart($arParams["PM_PER_PAGE"]); $dbrMessages->nPageWindow = $arParams["PAGE_NAVIGATION_WINDOW"]; $arResult["NAV_RESULT"] = $dbrMessages; $arResult["NAV_STRING"] = $dbrMessages->GetPageNavStringEx($navComponentObject, GetMessage("PM_TITLE_PAGES"), $arParams["PAGE_NAVIGATION_TEMPLATE"]); if ($dbrMessages && ($arMsg = $dbrMessages->GetNext())) { do { $arMsg["POST_SUBJ"] = wordwrap($arMsg["POST_SUBJ"], 100, " ", 1); $arMsg["~SHOW_NAME"] = $arMsg["~" . $SortingField]; $arMsg["SHOW_NAME"] = $arMsg[$SortingField]; $arMsg["URL"] = array("MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_READ"], array("FID" => $arParams["FID"], "MID" => $arMsg["ID"])), "MESSAGE_EDIT" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_EDIT"], array("FID" => $arParams["FID"], "mode" => "new", "MID" => 0, "UID" => $arMsg[$arResult["InputOutput"]])), "RECIPIENT" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg["RECIPIENT_ID"])), "SENDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg["AUTHOR_ID"]))); $arMsg["pm_read"] = $arMsg["URL"]["MESSAGE"]; $arMsg["pm_edit"] = $arMsg["URL"]["MESSAGE_EDIT"]; $arMsg["profile_view"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arMsg[$arResult["InputOutput"]])); $arMsg["POST_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arMsg["POST_DATE"], CSite::GetDateFormat())); $arMsg["checked"] = "";
public static function MakeRead($ID) { global $DB; $ID = IntVal($ID); $version = intVal(COption::GetOptionString("forum", "UsePMVersion", "2")); if ($ID > 0) { $db_res = CForumPrivateMessage::GetListEx(array(), array("ID" => $ID)); if ($db_res && ($resFields = $db_res->Fetch()) && $resFields["IS_READ"] != "Y") { foreach (GetModuleEvents("forum", "onBeforePMMakeRead", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$resFields)) === false) { return false; } } $strSql = "UPDATE b_forum_private_message SET IS_READ='Y' WHERE ID=" . $ID; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($version == 1 && $resFields["IS_READ"] == "N") { $resFields = array_merge($resFields, array("USER_ID" => $resFields["AUTHOR_ID"], "FOLDER_ID" => 3, "IS_READ" => "Y")); $resFields["REQUEST_IS_READ"] = $resFields["REQUEST_IS_READ"] != "Y" ? "N" : "Y"; if (CForumPrivateMessage::CheckFields($resFields, "E")) { unset($resFields["ID"]); return $DB->Add("b_forum_private_message", $resFields, array("POST_MESSAGE")); } } } } return false; }
/Action ********************************************************************/ /******************************************************************** Data ********************************************************************/ $arResult["MESSAGE"]["POST_MESSAGE"] = $parser->convert($arResult["MESSAGE"]["~POST_MESSAGE"], array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "VIDEO" => "Y", "LIST" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "SMILES" => $arResult["MESSAGE"]["USE_SMILES"], "UPLOAD" => "N", "NL2BR" => "N", "TABLE" => "Y", "ALIGN" => "Y")); $arResult["MESSAGE"]["RECIPIENT_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arResult["MESSAGE"]["RECIPIENT_ID"])); $arResult["MESSAGE"]["AUTHOR_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arResult["MESSAGE"]["AUTHOR_ID"])); $arResult["MESSAGE"]["POST_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResult["MESSAGE"]["POST_DATE"], CSite::GetDateFormat())); // ************************* Pagen ********************************************************************* $arFilter = array("USER_ID" => $arParams["UID"], "FOLDER_ID" => $arParams["FID"]); if ($arParams["FID"] == 2) { //If this is outbox folder $arFilter = array("OWNER_ID" => $arParams["UID"]); } $db_res = CForumPrivateMessage::GetListEx(array($by => $order), $arFilter, false, 0, array("sNameTemplate" => $arParams["NAME_TEMPLATE"])); $prev = array(); $next = array(); $bFound = false; if ($db_res && ($res = $db_res->Fetch())) { do { if ($bFound) { $next = $res; break; } if ($res["ID"] == $arParams["MID"]) { $bFound = true; } if (!$bFound) { $prev = $res; }