Beispiel #1
0
        case "DEL_TOPIC":
            if (ForumDeleteTopic($arResult["TID"], $strErrorMessage, $strOkMessage)) {
                if (isset($_REQUEST['NAV_PAGE']) && strpos($_REQUEST['NAV_PAGE'], ':') !== false) {
                    list($NavNum, $NavPageNomer) = explode(":", $_REQUEST['NAV_PAGE']);
                    LocalRedirect(ForumAddPageParams($arResult["URL"]["~TOPIC_LIST"], array("result" => "delele", "PAGEN_" . intval($NavNum) => intval($NavPageNomer))));
                    return true;
                }
                LocalRedirect(ForumAddPageParams($arResult["URL"]["~TOPIC_LIST"], array("result" => "delele")));
                return true;
            }
            break;
        case "STATE_Y":
        case "STATE_N":
            $ACTION = $ACTION == "STATE_Y" ? "OPEN" : "CLOSE";
            $state = $ACTION == "STATE_Y" ? "Y" : "N";
            if (ForumOpenCloseTopic($arResult["TID"], $ACTION, $strErrorMessage, $strOkMessage)) {
                LocalRedirect(ForumAddPageParams($arResult["URL"]["~TOPIC_LIST"], array("result" => $ACTION == "OPEN" ? "open" : "close")));
                return true;
            }
            break;
    }
} elseif (!check_bitrix_sessid() && strLen($ACTION) > 0) {
    $strErrorMessage .= GetMessage("F_ERR_SESS_FINISH") . ".\n";
}
//*******************************************************************
$arResult["ERROR_MESSAGE"] .= trim($strErrorMessage);
if (!empty($strErrorMessage)) {
    $arResult["OK_MESSAGE"] = trim($strOkMessage);
} else {
    $arResult["OK_MESSAGE"] .= trim($strOkMessage);
}
Beispiel #2
0
                     }
                 }
                 $result = ForumDeleteTopic($arTopic, $strErrorMessage, $strOkMessage, array("PERMISSION" => $arParams["PERMISSION"]));
                 if ($result) {
                     foreach ($arLogID as $log_id) {
                         CSocNetLog::Delete($log_id);
                     }
                 }
                 break;
             case "STATE_Y":
             case "STATE_N":
             case "CLOSE":
             case "OPEN":
                 $ACTION = $ACTION == "STATE_Y" ? "OPEN" : ($ACTION == "STATE_N" ? "CLOSE" : $ACTION);
                 $state = $ACTION == "OPEN" ? "Y" : "N";
                 $result = ForumOpenCloseTopic($arTopic, $ACTION, $strErrorMessage, $strOkMessage, array("PERMISSION" => $arParams["PERMISSION"]));
                 break;
             default:
                 $arError[] = array("id" => "bad action", "text" => $ACTION);
                 break;
         }
         if (!empty($strErrorMessage)) {
             $arError[] = array("id" => "action error", "text" => $strErrorMessage);
         }
     }
     $arTopic = array_diff($topics, $arTopic);
     if (!empty($arTopic)) {
         $arError[] = array("id" => "empty topics", "text" => str_replace("#TOPICS#", implode(", ", $arTopic), GetMessage("F_ERR_TOPICS_NOT_MODERATION")));
     }
 }
 if (empty($arError)) {
Beispiel #3
0
         if ($TID > 0) {
             if (ForumDeleteTopic($TID, $strErrorMessage, $strOKMessage)) {
                 LocalRedirect("list.php?FID=" . $FID);
             }
         }
         break;
     case "STATE_Y":
     case "STATE_N":
         if ($action == "STATE_Y") {
             $action = "OPEN";
             $state = "Y";
         } else {
             $action = "CLOSE";
             $state = "N";
         }
         if (ForumOpenCloseTopic($TID, $action, $strErrorMessage, $strOKMessage)) {
             $arTopic["STATE"] = $state;
         }
         LocalRedirect("read.php?FID=" . $FID . "&TID=" . $TID);
         break;
     case "DEL":
         if (ForumDeleteMessage($MID, $strErrorMessage, $strOKMessage)) {
             $arTopic = CForumTopic::GetByID($TID);
             if (!$arTopic) {
                 LocalRedirect("list.php?FID=" . $FID);
             }
         }
         LocalRedirect("read.php?FID=" . $FID . "&TID=" . $TID);
         break;
 }
 global $HTTP_GET_VARS;
Beispiel #4
0
function ForumActions($action, $arFields, &$strErrorMessage, &$strOKMessage)
{
    $result = false;
    $sError = "";
    $sNote = "";
    if (empty($action)) {
        $sError = GetMessage("FORUM_NO_ACTION");
    } else {
        switch ($action) {
            case "REPLY":
                $result = ForumAddMessage("REPLY", $arFields["FID"], $arFields["TID"], 0, $arFields, $sError, $sNote, false, $arFields["captcha_word"], 0, $arFields["captcha_code"], $arFields["NAME_TEMPLATE"]);
                break;
            case "DEL":
                $result = ForumDeleteMessage($arFields["MID"], $sError, $sNote, $arFields);
                break;
            case "SHOW":
            case "HIDE":
                $result = ForumModerateMessage($arFields["MID"], $action, $sError, $sNote, $arFields);
                break;
            case "VOTE4USER":
                $result = ForumVote4User($arFields["UID"], $arFields["VOTES"], $arFields["VOTE"], $sError, $sNote, $arFields);
                break;
            case "FORUM_MESSAGE2SUPPORT":
                $result = ForumMoveMessage2Support($arFields["MID"], $sError, $sNote, $arFields);
                break;
            case "FORUM_SUBSCRIBE":
            case "TOPIC_SUBSCRIBE":
            case "FORUM_SUBSCRIBE_TOPICS":
                $result = ForumSubscribeNewMessagesEx($arFields["FID"], $arFields["TID"], $arFields["NEW_TOPIC_ONLY"], $sError, $sNote);
                break;
            case "SET_ORDINARY":
            case "SET_TOP":
            case "ORDINARY":
            case "TOP":
                if ($action == "SET_ORDINARY") {
                    $action = "ORDINARY";
                } elseif ($action == "SET_TOP") {
                    $action = "TOP";
                }
                $result = ForumTopOrdinaryTopic($arFields["TID"], $action, $sError, $sNote, $arFields);
                break;
            case "DEL_TOPIC":
                $result = ForumDeleteTopic($arFields["TID"], $sError, $sNote, $arFields);
                break;
            case "OPEN":
            case "CLOSE":
            case "STATE_Y":
            case "STATE_N":
                if ($action == "STATE_Y") {
                    $action = "OPEN";
                } elseif ($action == "STATE_N") {
                    $action = "CLOSE";
                }
                $result = ForumOpenCloseTopic($arFields["TID"], $action, $sError, $sNote, $arFields);
                break;
            case "SHOW_TOPIC":
            case "HIDE_TOPIC":
                $db_res = CForumMessage::GetList(array(), array("TOPIC_ID" => $arFields["TID"], "APPROVED" => $action == "HIDE_TOPIC" ? "Y" : "N"));
                $message = array();
                if ($db_res && ($res = $db_res->Fetch())) {
                    do {
                        $message[] = $res["ID"];
                    } while ($res = $db_res->Fetch());
                }
                if (!empty($message)) {
                    $s = "";
                    $result = ForumModerateMessage($message, $action == "HIDE_TOPIC" ? "HIDE" : "SHOW", $sError, $s, $arFields);
                } else {
                    $result = true;
                }
                CForumEventLog::Log("topic", $action == "HIDE_TOPIC" ? "unapprove" : "approve", $arFields["TID"], serialize(CForumTopic::GetByID($arFields["TID"])));
                break;
            case "SPAM_TOPIC":
                $result = ForumSpamTopic($arFields["TID"], $sError, $sNote, $arFields);
                break;
            case "SPAM":
                $result = ForumSpamMessage($arFields["MID"], $sError, $sNote, $arFields);
                break;
            default:
                $sError = GetMessage("FORUM_NO_ACTION") . " (" . htmlspecialcharsbx($action) . ")";
                break;
        }
    }
    $strErrorMessage = $sError;
    $strOKMessage = $sNote;
    return $result;
}
Beispiel #5
0
         $arTopic["SORT"] = "150";
     }
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "SET_TOP") {
     if (ForumTopOrdinaryTopic($TID, "TOP", $strErrorMessage, $strOKMessage)) {
         $arTopic["SORT"] = "100";
     }
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "DEL_TOPIC" && $TID > 0) {
     if (ForumDeleteTopic($TID, $strErrorMessage, $strOKMessage)) {
         LocalRedirect("list.php?FID=" . $FID);
     }
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "STATE_Y") {
     if (ForumOpenCloseTopic($TID, "OPEN", $strErrorMessage, $strOKMessage)) {
         $arTopic["STATE"] = "Y";
     }
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "STATE_N") {
     if (ForumOpenCloseTopic($TID, "CLOSE", $strErrorMessage, $strOKMessage)) {
         $arTopic["STATE"] = "N";
     }
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "DEL") {
     if (ForumDeleteMessage($MID, $strErrorMessage, $strOKMessage)) {
         $arTopic = CForumTopic::GetByID($TID);
         if (!$arTopic) {
             LocalRedirect("list.php?FID=" . $FID);
         }
     }
 }
 if ($GLOBALS["SHOW_FORUM_DEBUG_INFO"]) {
     $arForumDebugInfo[] = "<br><font color=\"#FF0000\">Actions: " . Round(getmicrotime() - $prexectime, 3) . " sec</font>";
 }
 // End of ACTIONS
 $APPLICATION->AddChainItem($arForum["NAME"], "list.php?FID=" . $FID);