Example #1
0
 case "SET_TOP":
     $ACTION = $ACTION == "SET_ORDINARY" ? "ORDINARY" : "TOP";
     if (ForumTopOrdinaryTopic($arResult["TID"], $ACTION, $strErrorMessage, $strOkMessage)) {
         LocalRedirect(ForumAddPageParams($arResult["URL"]["~TOPIC_LIST"], array("result" => $ACTION == "ORDINARY" ? "unstick" : "stick")));
         return true;
     }
     break;
 case "MOVE_TOPIC":
     $topic_id = is_array($arResult["TID"]) ? implode(",", $arResult["TID"]) : $arResult["TID"];
     if (!empty($topic_id)) {
         LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_MOVE"], array("FID" => $arParams["FID"], "TID" => $topic_id)));
         return true;
     }
     break;
 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")));
Example #2
0
     if ($_REQUEST['action_target'] != 'selected') {
         $arFilterAction["@ID"] = $arID;
     }
     if ($APPLICATION->GetGroupRight("forum") < "W") {
         $arFilterAction["PERMISSION_STRONG"] = "Y";
     }
     $rsData = CForumTopic::GetListEx(array($by => $order), $arFilterAction);
     $arID = array();
     while ($res = $rsData->Fetch()) {
         $arID[] = $res['ID'];
     }
     if (empty($arID)) {
     } else {
         switch ($_REQUEST['action']) {
             case "delete":
                 ForumDeleteTopic($arID, $sError, $sOk);
                 break;
             case "move":
                 if (!CForumTopic::MoveTopic2Forum($arID, intVal($_REQUEST['move_to']))) {
                     $ex = $APPLICATION->GetException();
                     if ($ex && ($err = $ex->GetString())) {
                         $lAdmin->AddUpdateError($err, $ID);
                     } else {
                         $lAdmin->AddUpdateError(GetMessage("FM_WRONG_UPDATE"), $ID);
                     }
                 }
                 break;
         }
     }
 }
 if (!empty($sError)) {
Example #3
0
     $result = ForumTopOrdinaryTopic($arTopic, $ACTION, $strErrorMessage, $strOkMessage, array("PERMISSION" => $arParams["PERMISSION"]));
     break;
 case "DEL_TOPIC":
 case "DELETE":
     $arLogID = array();
     foreach ($arTopic as $topic_id_tmp) {
         // delete message log records
         $dbForumMessage = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $topic_id_tmp));
         while ($arForumMessage = $dbForumMessage->Fetch()) {
             $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "forum", "SOURCE_ID" => $arForumMessage["ID"]), false, false, array("ID", "PARAMS"));
             while ($arRes = $dbRes->Fetch()) {
                 $arLogID[] = $arRes["ID"];
             }
         }
     }
     $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:
Example #4
0
             $sError = $ex->GetString();
         }
         $arError[] = array("id" => "drop error", "text" => PhotoShowError(array("code" => "NOT_DELETED", "title" => $sError, "DATA" => $arRes)));
         continue;
     }
     $iFileSize += intVal($arRes["REAL_PICTURE"]["FILE_SIZE"]);
     if ($arRes["BLOG_POST_ID"] > 0) {
         CModule::IncludeModule("blog");
         $arPost = CBlogPost::GetByID($arRes["BLOG_POST_ID"]);
         $arBlog = CBlog::GetByID($arPost["BLOG_ID"]);
         CBlogPost::Delete($arRes["BLOG_POST_ID"]);
         BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"]);
     }
     if ($arRes["FORUM_TOPIC_ID"] > 0) {
         CModule::IncludeModule("forum");
         ForumDeleteTopic($arRes["FORUM_TOPIC_ID"]);
     }
     $events = GetModuleEvents("photogallery", "OnAfterPhotoDrop");
     $arEventFields = array("ID" => $arRes["ID"], "SECTION_ID" => $arRes["IBLOCK_SECTION_ID"]);
     $sectionsIds[] = $arRes["IBLOCK_SECTION_ID"];
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEventEx($arEvent, array($arEventFields, $arParams));
     }
     break;
 case "move":
     $bs = new CIBlockElement();
     $itemID = $bs->Update($itemID, array("MODIFIED_BY" => $USER->GetID(), "IBLOCK_SECTION" => $_REQUEST["TO_SECTION_ID"]));
     if ($itemID <= 0) {
         $arError[] = array("id" => "move error", "text" => PhotoShowError(array("ID" => $itemID, "code" => "NOT_UPDATED", "title" => $bs->LAST_ERROR, "DATA" => $arRes)));
     } else {
         $sectionsIds[] = $arRes["TO_SECTION_ID"];
Example #5
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;
}
Example #6
0
 case "SET_TOP":
     if ($action == "SET_ORDINARY") {
         $action = "ORDINARY";
         $sort = "150";
     } else {
         $action = "TOP";
         $sort = "100";
     }
     if (ForumTopOrdinaryTopic($TID, $action, $strErrorMessage, $strOKMessage)) {
         $arTopic["SORT"] = $sort;
     }
     LocalRedirect("read.php?FID=" . $FID . "&TID=" . $TID);
     break;
 case "DEL_TOPIC":
     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;