Exemplo n.º 1
0
}
$this->IncludeComponentLang("action.php");
if ((strlen($action) > 0 || strlen($s_action) > 0) && $_REQUEST["MESSAGE_MODE"] != "VIEW" && check_bitrix_sessid()) {
    //*************************!Subscribe***************************************************
    if ($s_action == 'SUBSCRIBE' || $s_action == 'UNSUBSCRIBE') {
        if ($_REQUEST["TOPIC_UNSUBSCRIBE"] == "Y") {
            ForumUnsubscribeNewMessagesEx($arParams["FID"], $arParams["TID"], "N", $strErrorMessage, $strOKMessage);
        }
        if ($_REQUEST["FORUM_UNSUBSCRIBE"] == "Y") {
            ForumUnsubscribeNewMessagesEx($arParams["FID"], 0, "N", $strErrorMessage, $strOKMessage);
        }
        if ($_REQUEST["TOPIC_SUBSCRIBE"] == "Y") {
            ForumSubscribeNewMessagesEx($arParams["FID"], $arParams["TID"], "N", $strErrorMessage, $strOKMessage);
        }
        if ($_REQUEST["FORUM_SUBSCRIBE"] == "Y") {
            ForumSubscribeNewMessagesEx($arParams["FID"], 0, "N", $strErrorMessage, $strOKMessage);
        }
        if (empty($strErrorMessage) && $_SERVER['REQUEST_METHOD'] == 'GET') {
            LocalRedirect($APPLICATION->GetCurPageParam("", array("TOPIC_UNSUBSCRIBE", "FORUM_UNSUBSCRIBE", "TOPIC_SUBSCRIBE", "FORUM_SUBSCRIBE", "sessid")));
        }
    }
    $result = false;
    //*************************!Subscribe***************************************************
    if (strlen($action) > 0 && $action != "SUBSCRIBE" && $action != "UNSUBSCRIBE") {
        $arFields = array();
        $url = false;
        $code = false;
        $message = array();
        if ($_SERVER['REQUEST_METHOD'] == "POST") {
            $message = !empty($_POST["MID_ARRAY"]) ? $_POST["MID_ARRAY"] : $_POST["MID"];
            if ((empty($message) || $message == "s") && !empty($_POST["message_id"])) {
Exemplo n.º 2
0
                    } else {
                        $MAILBOX_ID = 0;
                    }
                }
                if ($MAILBOX_ID > 0) {
                    $arMailFilterFields = array("MAILBOX_ID" => $MAILBOX_ID, "NAME" => GetMessage("SOCNET_FORUM_TL_EMAIL_RULE"), "ACTION_TYPE" => "forumsocnet", "ACTION_VARS" => "", "WHEN_MAIL_RECEIVED" => "Y", "WHEN_MANUALLY_RUN" => "Y");
                    $MAIL_FILTER_ID = CMailFilter::Add($arMailFilterFields);
                    $arFields["MAIL_FILTER_ID"] = $MAIL_FILTER_ID;
                    if (CForumEMail::Set($arFields) > 0) {
                        LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"])));
                    }
                }
            }
        }
    } elseif ($ACTION == "FORUM_SUBSCRIBE") {
        if (ForumSubscribeNewMessagesEx($arParams["FID"], 0, "N", $strErrorMessage, $strOkMessage, false, $arParams["SOCNET_GROUP_ID"])) {
            LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"])));
        } else {
            $arResult["ERROR_MESSAGE"] = $strErrorMessage;
        }
    } elseif ($ACTION == "FORUM_UNSUBSCRIBE") {
        $arFields = array("USER_ID" => $USER->GetID(), "FORUM_ID" => $arParams["FID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => false, "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"]);
        $db_res = CForumSubscribe::GetListEx(array(), $arFields);
        if ($db_res && ($res = $db_res->Fetch()) && CForumSubscribe::Delete($res["ID"])) {
            LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"])));
        }
    }
}
/********************************************************************
				/Actions
********************************************************************/
Exemplo n.º 3
0
$strErrorMessage = "";
$strOkMessage = "";
$arResult["USER"] = array("INFO" => array(), "RIGHTS" => array("CAN_ADD_TOPIC" => $arResult["CanUserAddTopic"] ? "Y" : "N"), "PERMISSION" => $arResult["PERMISSION"], "SUBSCRIBE" => array());
/********************************************************************
				/Default values
********************************************************************/
CPageOption::SetOptionString("main", "nav_page_in_session", "N");
/********************************************************************
				Actions
********************************************************************/
if (check_bitrix_sessid() && strLen($ACTION) > 0) {
    $aMsg = array();
    switch ($ACTION) {
        case "FORUM_SUBSCRIBE":
        case "FORUM_SUBSCRIBE_TOPICS":
            if (ForumSubscribeNewMessagesEx($arParams["FID"], 0, $ACTION == "FORUM_SUBSCRIBE_TOPICS" ? "Y" : "N", $strErrorMessage, $strOkMessage)) {
                LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_SUBSCR_LIST"], array("FID" => $arParams["FID"])));
                return true;
            }
            break;
        case "SET_BE_READ":
            ForumSetReadForum($arParams["FID"]);
            LocalRedirect($APPLICATION->GetCurPageParam('', array('sessid', 'ACTION')));
            break;
        case "SET_ORDINARY":
        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;
            }
Exemplo n.º 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;
}
Exemplo n.º 5
0
        if ($TID > 0) {
            CIBlockElement::SetPropertyValues($arParams["ELEMENT_ID"], $PRODUCT_IBLOCK_ID, intVal($TID), "FORUM_TOPIC_ID");
        } else {
            if ($TOPIC_ID > 0) {
                $TID = $TOPIC_ID;
            }
            if ($FORUM_TOPIC_ID > 0) {
                $TID = $FORUM_TOPIC_ID;
            }
        }
        $strOKMessage = GetMessage("COMM_COMMENT_OK");
        $arResult["FORUM_TOPIC_ID"] = intVal($FORUM_TOPIC_ID);
        ForumClearComponentCache($componentName);
        // SUBSCRIBE
        if ($_REQUEST["TOPIC_SUBSCRIBE"] == "Y") {
            ForumSubscribeNewMessagesEx($arParams["FORUM_ID"], $FORUM_TOPIC_ID, "N", $strErrorMessage, $strOKMessage);
            BXClearCache(true, "/bitrix/forum/user/" . $GLOBALS["USER"]->GetID() . "/subscribe/");
        }
        $strURL = !empty($_REQUEST["back_page"]) ? $_REQUEST["back_page"] : $APPLICATION->GetCurPageParam("", array("MID", "SEF_APPLICATION_CUR_PAGE_URL", BX_AJAX_PARAM_ID, "result"));
        $bNotModerated = $arResult["FORUM"]["MODERATION"] != "Y" || CForumNew::CanUserModerateForum($arParams["FORUM_ID"], $USER->GetUserGroupArray());
        $strURL = ForumAddPageParams($strURL, array("MID" => $MID, "result" => $bNotModerated ? "reply" : "not_approved"));
        $strURL .= $bNotModerated ? "#message" . $MID : "#reviewnote";
        if ($arParams["NO_REDIRECT_AFTER_SUBMIT"] != "Y") {
            LocalRedirect($strURL);
        } else {
            $arResult['RESULT'] = $MID;
            $strOKMessage = $bNotModerated ? GetMessage("COMM_COMMENT_OK") : GetMessage("COMM_COMMENT_OK_AND_NOT_APPROVED");
        }
    }
} elseif ($_REQUEST["save_product_review"] == "Y") {
    $arParams['SHOW_MINIMIZED'] = 'N';
Exemplo n.º 6
0
     LocalRedirect("read.php?FID=" . $FID . "&TID=" . $TID);
 } elseif ($_SERVER["REQUEST_METHOD"] == "GET" && check_bitrix_sessid()) {
     $action = strToUpper($_GET["ACTION"]);
     switch ($action) {
         case "FORUM_MESSAGE2SUPPORT":
             if (CModule::IncludeModule("support")) {
                 $SuID = ForumMoveMessage2Support($MID, $strErrorMessage, $strOKMessage);
                 if (IntVal($SuID) > 0) {
                     LocalRedirect("/bitrix/admin/ticket_edit.php?ID=" . IntVal($SuID) . "&lang=" . LANGUAGE_ID);
                 }
             }
             break;
         case "FORUM_SUBSCRIBE":
         case "TOPIC_SUBSCRIBE":
         case "FORUM_SUBSCRIBE_TOPICS":
             if (ForumSubscribeNewMessagesEx($FID, $action == "FORUM_SUBSCRIBE" ? 0 : $TID, $action == "FORUM_SUBSCRIBE_TOPICS" ? "Y" : "N", $strErrorMessage, $strOKMessage)) {
                 LocalRedirect("subscr_list.php?FID=" . $FID . "&TID=" . $TID);
             }
             break;
         case "MOVE_TOPIC":
             LocalRedirect("move.php?FID=" . $FID . "&TID=" . $TID);
             break;
         case "HIDE":
         case "SHOW":
             ForumModerateMessage($MID, $action, $strErrorMessage, $strOKMessage);
             LocalRedirect("read.php?FID=" . $FID . "&TID=" . $TID);
             break;
         case "SET_ORDINARY":
         case "SET_TOP":
             if ($action == "SET_ORDINARY") {
                 $action = "ORDINARY";
Exemplo n.º 7
0
 private function checkActions()
 {
     if ($this->request["ENTITY_XML_ID"] !== $this->feed->getEntity()->getXmlId()) {
         return null;
     }
     $post = array_merge($this->request->getQueryList()->toArray(), $this->request->getPostList()->toArray());
     $action = strtolower($post["comment_review"] == "Y" ? strtolower($post['REVIEW_ACTION']) == "edit" ? "edit" : "add" : $post['REVIEW_ACTION']);
     if (!in_array($action, array("add", 'del', 'hide', 'show', 'edit'))) {
         return null;
     }
     $actionErrors = new ErrorCollection();
     $arPost = array();
     if (!check_bitrix_sessid()) {
         $actionErrors->addOne(new Error(Loc::getMessage("F_ERR_SESSION_TIME_IS_UP"), self::ERROR_ACTION));
     } else {
         if (!$this->checkCaptcha($actionErrors)) {
             $actionErrors->addOne(new Error(Loc::getMessage("POSTM_CAPTCHA"), self::ERROR_ACTION));
         } else {
             if ($post["AJAX_POST"] == "Y") {
                 CUtil::decodeURIComponent($post);
             }
             if ($action == "add" || $action == "edit") {
                 $arPost = array("POST_MESSAGE" => $post["REVIEW_TEXT"], "AUTHOR_NAME" => $this->getUser()->isAuthorized() ? $this->getUserName() : (empty($post["REVIEW_AUTHOR"]) ? $GLOBALS["FORUM_STATUS_NAME"]["guest"] : $post["REVIEW_AUTHOR"]), "AUTHOR_EMAIL" => $post["REVIEW_EMAIL"], "USE_SMILES" => $post["REVIEW_USE_SMILES"]);
                 foreach (GetModuleEvents('forum', 'OnCommentAdd', true) as $arEvent) {
                     if (ExecuteModuleEventEx($arEvent, array($this->feed->getEntity()->getType(), $this->feed->getEntity()->getId(), &$arPost)) === false) {
                         $actionErrors->addOne(new Error(isset($arPost['ERROR']) ? $arPost['ERROR'] : Loc::getMessage("F_ERR_DURING_ACTIONS") . print_r($arEvent, true), self::ERROR_ACTION));
                     }
                 }
             }
         }
     }
     if (!$actionErrors->hasErrors()) {
         if ($action == "add" || $action == "edit") {
             $message = $action == "add" ? $this->feed->add($arPost) : $this->feed->edit($this->request["MID"], $arPost);
             if ($message && $this->request["TOPIC_SUBSCRIBE"] == "Y") {
                 ForumSubscribeNewMessagesEx($this->arParams["FORUM_ID"], $message["TOPIC_ID"], "N", $strErrorMessage, $strOKMessage);
                 BXClearCache(true, "/bitrix/forum/user/" . $this->getUser()->getId() . "/subscribe/");
             }
         } elseif ($action == "show" || $action == "hide") {
             $message = $this->feed->moderate($this->request["MID"], $action == "show");
         } else {
             $message = $this->feed->delete($this->request["MID"]);
         }
         if ($this->feed->hasErrors()) {
             $actionErrors->add($this->feed->getErrors());
         } else {
             if ($this->request["NOREDIRECT"] != "Y" && !$this->isAjaxRequest()) {
                 $strURL = $this->request["back_page"] ?: $this->getApplication()->GetCurPageParam("", array("MID", "SEF_APPLICATION_CUR_PAGE_URL", BX_AJAX_PARAM_ID, "result", "sessid", "bxajaxid"));
                 $strURL = ForumAddPageParams($strURL, array("MID" => $message["ID"], "result" => $message["APPROVED"] == "Y" ? "reply" : "not_approved"));
                 LocalRedirect($strURL);
             } else {
                 $this->arResult['RESULT'] = $message["ID"];
                 if ($action == "add") {
                     $this->arResult['OK_MESSAGE'] = $message["APPROVED"] == "Y" ? GetMessage("COMM_COMMENT_OK") : GetMessage("COMM_COMMENT_OK_AND_NOT_APPROVED");
                 } else {
                     if ($action == "edit") {
                         $this->arResult['OK_MESSAGE'] = Loc::getMessage("COMM_COMMENT_UPDATED");
                     } else {
                         if ($action == "show") {
                             $this->arResult['OK_MESSAGE'] = Loc::getMessage("COMM_COMMENT_SHOWN");
                         } else {
                             if ($action == "hide") {
                                 $this->arResult['OK_MESSAGE'] = Loc::getMessage("COMM_COMMENT_HIDDEN");
                             } else {
                                 $this->arResult['OK_MESSAGE'] = Loc::getMessage("COMM_COMMENT_DELETED");
                             }
                         }
                     }
                 }
             }
         }
     }
     if ($actionErrors->hasErrors()) {
         /** @var $error Error */
         $this->arResult["RESULT"] = false;
         $this->arResult["OK_MESSAGE"] = '';
         foreach ($actionErrors->toArray() as $error) {
             $this->arResult['ERROR_MESSAGE'] .= $error->getMessage();
         }
         return false;
     }
     return true;
 }
Exemplo n.º 8
0
				/Default params
********************************************************************/
/********************************************************************
				Data
********************************************************************/
/*************** Show webdav interface *****************************/
$arParams["SHOW_WEBDAV"] = $ob->CheckRight($arParams["PERMISSION"], "element_edit") >= "U" ? 'Y' : 'N';
/*************** Forum subscribe to document ***********************/
if ($arParams["USE_COMMENTS"] == "Y" && $GLOBALS['USER']->IsAuthorized()) {
    CModule::IncludeModule("forum");
    $cache_id = "/" . $arParams["IBLOCK_ID"] . "/forum_user_subscribe_" . intVal($GLOBALS["USER"]->GetID()) . "_" . $arParams["FORUM_ID"];
    $arParams["FORUM_CAN_VIEW"] = CForumNew::CanUserViewForum($arParams["FORUM_ID"], $GLOBALS['USER']->GetUserGroupArray()) ? "Y" : "N";
    if ($arParams["FORUM_CAN_VIEW"] == "Y" && $GLOBALS['USER']->IsAuthorized()) {
        if ((!empty($_REQUEST["SUBSCRIBE_FORUM"]) || !empty($_REQUEST["subscribe_forum"])) && check_bitrix_sessid()) {
            if ($_REQUEST["SUBSCRIBE_FORUM"] == "Y" || $_REQUEST["subscribe_forum"] == "Y") {
                ForumSubscribeNewMessagesEx($arParams["FORUM_ID"], 0, "N", $strErrorMessage = "", $strOKMessage = "");
            } elseif ($_REQUEST["SUBSCRIBE_FORUM"] == "N" || $_REQUEST["subscribe_forum"] == "N") {
                $arFilter = array("USER_ID" => $GLOBALS["USER"]->GetId(), "FORUM_ID" => $arParams["FORUM_ID"]);
                $db_res = CForumSubscribe::GetList(array(), $arFilter);
                if ($db_res && ($res = $db_res->Fetch())) {
                    do {
                        if (CForumSubscribe::CanUserDeleteSubscribe($res["ID"], $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID())) {
                            CForumSubscribe::Delete($res["ID"]);
                        }
                    } while ($res = $db_res->Fetch());
                }
            }
            BXClearCache(true, $cache_path_main);
            $arNavChain = $arParams["CONVERT"] ? $arResult["NAV_CHAIN_UTF8"] : $arResult["NAV_CHAIN"];
            $url = CComponentEngine::MakePathFromTemplate($arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arNavChain), "SECTION_ID" => $arParams["SECTION_ID"]));
        }