Exemple #1
0
 function AddComment_Review_CreateRoot_Forum($arElement, $forumID, $bPostFirstMessage = false, $strFirstMessage = "")
 {
     if (!CModule::IncludeModule("forum")) {
         return false;
     }
     if ($bPostFirstMessage && strlen($strFirstMessage) <= 0) {
         return false;
     }
     // Add Topic
     $arUserStart = array("ID" => intVal($arElement["~CREATED_BY"]), "NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"]);
     if ($arUserStart["ID"] > 0) {
         $res = array();
         $db_res = CForumUser::GetListEx(array(), array("USER_ID" => $arElement["~CREATED_BY"]));
         if ($db_res && ($res = $db_res->Fetch())) {
             $res["FORUM_USER_ID"] = intVal($res["ID"]);
             $res["ID"] = $res["USER_ID"];
         } else {
             $db_res = CUser::GetByID($arElement["~CREATED_BY"]);
             if ($db_res && ($res = $db_res->Fetch())) {
                 $res["SHOW_NAME"] = COption::GetOptionString("forum", "USER_SHOW_NAME", "Y");
                 $res["USER_PROFILE"] = "N";
             }
         }
         if (!empty($res)) {
             $arUserStart = $res;
             $sName = $res["SHOW_NAME"] == "Y" ? trim($res["NAME"] . " " . $res["LAST_NAME"]) : "";
             $arUserStart["NAME"] = empty($sName) ? trim($res["LOGIN"]) : $sName;
         }
     }
     $arUserStart["NAME"] = empty($arUserStart["NAME"]) ? $GLOBALS["FORUM_STATUS_NAME"]["guest"] : $arUserStart["NAME"];
     $GLOBALS["DB"]->StartTransaction();
     $arFields = array("TITLE" => $arElement["~NAME"], "TAGS" => $arElement["~TAGS"], "FORUM_ID" => $forumID, "USER_START_ID" => $arUserStart["ID"], "USER_START_NAME" => $arUserStart["NAME"], "LAST_POSTER_NAME" => $arUserStart["NAME"], "APPROVED" => "Y", "XML_ID" => "IBLOCK_" . $arElement["ID"]);
     if (isset($arElement["ENTITY_TYPE"]) && $arElement["ENTITY_TYPE"] == SONET_ENTITY_GROUP && isset($arElement["ENTITY_ID"]) && intval($arElement["ENTITY_ID"]) > 0) {
         $arFields["SOCNET_GROUP_ID"] = intval($arElement["ENTITY_ID"]);
     }
     $TOPIC_ID = CForumTopic::Add($arFields);
     if ($bPostFirstMessage && intVal($TOPIC_ID) > 0) {
         if (COption::GetOptionString("forum", "FILTER", "Y") == "Y") {
             $strFirstMessage = CFilterUnquotableWords::Filter($strFirstMessage);
         }
         // Add post as new message
         $arFields = array("POST_MESSAGE" => $strFirstMessage, "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $forumID, "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => "IB", "PARAM2" => intVal($arElement["ID"]));
         $MID = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($MID) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TOPIC_ID);
             $TOPIC_ID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arResult["ELEMENT"]["~CREATED_BY"] . "/subscribe/");
                 // Sorry, Max.
             }
         }
     } elseif (intVal($TOPIC_ID) <= 0) {
         $GLOBALS["DB"]->Rollback();
         return false;
     }
     $GLOBALS["DB"]->Commit();
     return $TOPIC_ID;
 }
Exemple #2
0
function ForumSubscribeNewMessages($FID, $TID, &$strErrorMessage, &$strOKMessage, $NEW_TOPIC_ONLY = "N", $strSite = false, $SOCNET_GROUP_ID = false)
{
    global $USER;
    $strSite = $strSite === false ? SITE_ID : $strSite;
    $FID = IntVal($FID);
    $TID = IntVal($TID);
    $arError = array();
    $arNote = array();
    if (!$USER->IsAuthorized()) {
        $arError[] = GetMessage("FORUM_SUB_ERR_AUTH");
    } elseif ($SOCNET_GROUP_ID == false && !CForumSubscribe::CanUserAddSubscribe($FID, $USER->GetUserGroupArray())) {
        $arError[] = GetMessage("FORUM_SUB_ERR_PERMS");
    } else {
        $arFields = array("USER_ID" => $USER->GetID(), "FORUM_ID" => $FID, "SITE_ID" => $strSite, "TOPIC_ID" => $TID > 0 ? $TID : false);
        if ($SOCNET_GROUP_ID > 0) {
            $arFields['SOCNET_GROUP_ID'] = $SOCNET_GROUP_ID;
        }
        $db_res = CForumSubscribe::GetListEx(array(), $arFields);
        if ($db_res && ($res = $db_res->Fetch())) {
            $sError = GetMessage("FORUM_SUB_ERR_ALREADY_TOPIC");
            if ($TID <= 0) {
                if ($res["NEW_TOPIC_ONLY"] == "Y") {
                    $sError = GetMessage("FORUM_SUB_ERR_ALREADY_NEW");
                    if ($NEW_TOPIC_ONLY != $res["NEW_TOPIC_ONLY"]) {
                        $sError = str_replace("#FORUM_NAME#", htmlspecialcharsEx($res["FORUM_NAME"]), GetMessage("FORUM_SUB_ERR_ALREADY_ALL_HELP"));
                    }
                } else {
                    $sError = GetMessage("FORUM_SUB_ERR_ALREADY_ALL");
                    if ($NEW_TOPIC_ONLY != $res["NEW_TOPIC_ONLY"]) {
                        $sError = str_replace("#FORUM_NAME#", htmlspecialcharsEx($res["FORUM_NAME"]), GetMessage("FORUM_SUB_ERR_ALREADY_NEW_HELP"));
                    }
                }
            }
            $arError[] = $sError;
        } else {
            $arFields["NEW_TOPIC_ONLY"] = $arFields["TOPIC_ID"] !== false ? "N" : $NEW_TOPIC_ONLY;
            $subid = CForumSubscribe::Add($arFields);
            if (IntVal($subid) > 0) {
                if ($TID > 0) {
                    $arNote[] = GetMessage("FORUM_SUB_OK_MESSAGE_TOPIC");
                } else {
                    $arNote[] = GetMessage("FORUM_SUB_OK_MESSAGE");
                }
            } else {
                $arError[] = GetMessage("FORUM_SUB_ERR_UNKNOWN");
            }
        }
    }
    if (!empty($arError)) {
        $strErrorMessage .= implode(".\n", $arError);
    }
    if (!empty($arError)) {
        $strOKMessage .= implode(".\n", $arNote);
    }
    if (empty($arError)) {
        return True;
    } else {
        return False;
    }
}
Exemple #3
0
         }
         if ($arAllow["HTML"] != "Y") {
             $arTopic['MESSAGE'] = strip_tags($arTopic['MESSAGE']);
         }
         $arFields = array("POST_MESSAGE" => $arTopic['MESSAGE'], "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $arParams["FORUM_ID"], "TOPIC_ID" => $TID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => $arParams['ENTITY_TYPE'], "PARAM2" => intVal($arParams["ENTITY_ID"]), "PERMISSION_EXTERNAL" => $arResult['USER']["PERMISSION"], "PERMISSION" => $arResult['USER']["PERMISSION"]);
         $res = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($res) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TID);
             $TID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arUserStart["ID"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arUserStart["ID"] . "/subscribe/");
             }
         }
     }
     // Second exit point
     if (!empty($arError)) {
         $DB->Rollback();
         return false;
     } else {
         $DB->Commit();
         $arResult["FORUM_TOPIC_ID"] = $TID;
     }
 }
 // Add post comment
 $arFieldsG = array("POST_MESSAGE" => $arPost["MESSAGE"], "AUTHOR_NAME" => trim($post["REVIEW_AUTHOR"]), "AUTHOR_EMAIL" => $post["REVIEW_EMAIL"], "USE_SMILES" => isset($post["REVIEW_USE_SMILES"]) ? $post["REVIEW_USE_SMILES"] : "N", "PARAM2" => $arParams["ENTITY_ID"], "PERMISSION_EXTERNAL" => $arResult['USER']["PERMISSION"], "PERMISSION" => $arResult['USER']["PERMISSION"]);
Exemple #4
0
         $sElementPreview = $arResult["ELEMENT"]["~PREVIEW_TEXT"];
         if ($arAllow["HTML"] != "Y") {
             $sElementPreview = strip_tags($sElementPreview);
         }
         $arFields = array("POST_MESSAGE" => str_replace(array("#IMAGE#", "#TITLE#", "#BODY#", "#LINK#"), array($sImage, $arResult["ELEMENT"]["~NAME"], $sElementPreview, $url), $arParams["POST_FIRST_MESSAGE_TEMPLATE"]), "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $arParams["FORUM_ID"], "TOPIC_ID" => $TID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => "IB", "PARAM2" => intVal($arParams["ELEMENT_ID"]));
         $MID = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($MID) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TID);
             $TID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arResult["ELEMENT"]["~CREATED_BY"] . "/subscribe/");
                 // Sorry, Max.
             }
         }
     }
     // Second exit point
     if (!empty($arError)) {
         $DB->Rollback();
         return false;
     } else {
         $DB->Commit();
     }
 }
 // 1.6.1 Add post comment
 $arFieldsG = array("POST_MESSAGE" => $_POST["REVIEW_TEXT"], "AUTHOR_NAME" => trim($_POST["REVIEW_AUTHOR"]), "AUTHOR_EMAIL" => $_POST["REVIEW_EMAIL"], "USE_SMILES" => $_POST["REVIEW_USE_SMILES"], "PARAM2" => intVal($arParams["ELEMENT_ID"]), "TITLE" => $PRODUCT_NAME);
Exemple #5
0
 private function subscribeAuthor($type, $id, $tid)
 {
     if ($this->feed->getentity()->getType() == $type && $this->feed->getentity()->getId() == $id) {
         CForumSubscribe::Add(array("USER_ID" => $this->getUser()->getId(), "FORUM_ID" => $this->arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $tid, "NEW_TOPIC_ONLY" => "N"));
         BXClearCache(true, "/bitrix/forum/user/" . $this->getUser()->getId() . "/subscribe/");
     }
 }