Пример #1
0
    } else {
        $e = new CAdminException(array_reverse($arError));
        $GLOBALS["APPLICATION"]->ThrowException($e);
        $err = $GLOBALS['APPLICATION']->GetException();
        $arResult["ERROR_MESSAGE"] = $err->GetString();
        $bVarsFromForm = true;
    }
}
/********************************************************************
				Action
********************************************************************/
/********************************************************************
				Data
********************************************************************/
$arResult["action"] = $mode == "edit" ? "save" : "send";
$arResult["count"] = CForumPrivateMessage::PMSize($USER->GetID(), COption::GetOptionInt("forum", "MaxPrivateMessages", 100));
$arResult["count"] = round($arResult["count"] * 100);
$arResult["sessid"] = bitrix_sessid_post();
$arResult["FID"] = intVal($arParams["FID"]);
$arResult["MID"] = intVal($arParams["MID"]);
$arResult["mode"] = $mode;
$arResult["SystemFolder"] = FORUM_SystemFolder;
$resFolder = CForumPMFolder::GetList(array(), array("USER_ID" => $USER->GetID()));
$arResult["UserFolder"] = array();
if ($resFolder && ($resF = $resFolder->GetNext())) {
    do {
        $arResult["UserFolder"][$resF["ID"]] = $resF;
    } while ($resF = $resFolder->GetNext());
}
// *****************************************************************************************
// Info about current user
Пример #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
if ($arParams["mode"] == "edit" || $arParams["mode"] == "new") {
    if (intVal($arParams["FID"]) > 0) {
        $db_res = CForumPMFolder::GetByID($arParams["FID"]);
        if ($db_res && ($res = $db_res->GetNext())) {
            $arResult["FOLDER"] = $res;
            $arResult["POST_VALUES"]["FOLDER_TITLE"] = $res["TITLE"];
        }
    }
    if (!empty($arError)) {
        $arResult["POST_VALUES"]["FOLDER_TITLE"] = htmlspecialcharsEx($_REQUEST["FOLDER_TITLE"]);
    }
} else {
    for ($ii = 1; $ii <= FORUM_SystemFolder; $ii++) {
        $arResult["SYSTEM_FOLDER"][$ii]["cnt"] = "";
        $arFilter = $ii == 2 ? array("FOLDER_ID" => $ii, "USER_ID" => $USER->GetId(), "OWNER_ID" => $USER->GetId()) : array("FOLDER_ID" => $ii, "USER_ID" => $USER->GetId());
        $db_res = CForumPrivateMessage::GetList(array(), $arFilter, true);
        if ($db_res && ($res = $db_res->GetNext())) {
            $arResult["SYSTEM_FOLDER"][$ii]["cnt"] = intVal($res["CNT"]);
            $arResult["SYSTEM_FOLDER"][$ii]["CNT"] = intVal($res["CNT"]);
            $arResult["SYSTEM_FOLDER"][$ii]["CNT_NEW"] = intVal($res["CNT_NEW"]);
        }
        $arResult["SYSTEM_FOLDER"][$ii]["URL"] = array("FOLDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_LIST"], array("FID" => $ii)), "REMOVE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "remove", "FID" => $ii)));
        $arResult["SYSTEM_FOLDER"][$ii]["pm_list"] = $arResult["SYSTEM_FOLDER"][$ii]["URL"]["FOLDER"];
        $arResult["SYSTEM_FOLDER"][$ii]["remove"] = $arResult["SYSTEM_FOLDER"][$ii]["URL"]["REMOVE"];
    }
    $arResult["SHOW_USER_FOLDER"] = "N";
    $db_res = CForumPMFolder::GetList(array($by => $order), array("USER_ID" => $USER->GetId()));
    if ($db_res && ($res = $db_res->GetNext())) {
        $arResult["SHOW_USER_FOLDER"] = "Y";
        do {
            $res["URL"] = array("FOLDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_LIST"], array("FID" => $res["ID"])), "DELETE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "delete", "FID" => $res["ID"])), "REMOVE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "remove", "FID" => $res["ID"])), "EDIT" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("mode" => "edit", "FID" => $res["ID"])));
Пример #4
0
    if (intval(COption::GetOptionString("forum", "UsePMVersion", "2")) > 0) {
        $pm = "";
        $arUserPM = array();
        $cache = new CPHPCache();
        $cache_path_main = str_replace(array(":", "//"), "/", "/" . SITE_ID . "/" . $this->__component->__name . "/");
        $cache_id = "forum_user_pm_" . $GLOBALS["USER"]->GetId();
        $cache_path = $cache_path_main . "user" . $GLOBALS["USER"]->GetId();
        if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) {
            $val = $cache->GetVars();
            if (is_array($val["arUserPM"])) {
                $arUserPM = $val["arUserPM"];
            }
        }
        if (!is_array($arUserPM) || empty($arUserPM)) {
            CModule::IncludeModule("forum");
            $arUserPM = CForumPrivateMessage::GetNewPM();
            if ($arParams["CACHE_TIME"] > 0) {
                $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
                $cache->EndDataCache(array("arUserPM" => $arUserPM));
            }
        }
        if (intVal($arUserPM["UNREAD_PM"]) > 0) {
            $pm = " (" . intVal($arUserPM["UNREAD_PM"]) . ")";
        }
        ?>
		<span class="forum-menu-item forum-menu-messages"><a href="<?php 
        echo $arResult["URL_TEMPLATES"]["MESSAGES"];
        ?>
"><span><?php 
        echo GetMessage("F_MESSAGES");
        echo $pm;
Пример #5
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"] = "";
Пример #6
0
 public static function PMSize($USER_ID, $CountMess = false)
 {
     $USER_ID = intVal($USER_ID);
     if (COption::GetOptionString("forum", "UsePMVersion", "2") == 2) {
         $count = CForumPrivateMessage::GetList(array(), array("USER_ID" => $USER_ID), true);
     } else {
         $count = CForumPrivateMessage::GetList(array(), array("USER_ID" => $USER_ID, "OWNER_ID" => $USER_ID), true);
     }
     $count = $count->GetNext();
     if ($CountMess) {
         $ratio = $count["CNT"] / $CountMess;
         return $ratio < 1 ? $ratio : 1;
     }
     return $count["CNT"];
 }