Пример #1
0
             $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();
Пример #2
0
    $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()));
Пример #3
0
 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)) {
Пример #4
0
    $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"] = "";
Пример #5
0
 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;
 }
Пример #6
0
				/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;
        }