require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
use \Bitrix\Main;
use \Bitrix\Forum;
Main\Loader::includeModule("forum");
$forumPermissions = $APPLICATION->GetGroupRight("forum");
if ($forumPermissions == "D")
{
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
IncludeModuleLangFile(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/forum/prolog.php");
$request = Main\Context::getCurrent()->getRequest();
$errorCollection = new Main\ErrorCollection();
$ID = intval($request->get("ID"));
$DICTIONARY_ID = intval($request->get("DICTIONARY_ID"));
$bVarsFromForm = false;
$arFields = [
"DICTIONARY_ID" => $DICTIONARY_ID,
"WORDS" => "",
"PATTERN_CREATE" => "WORD",
"DESCRIPTION" => "",
"USE_IT" => "Y"
];
$filter = null;
try {
if ($ID > 0)
{
$filter = new Forum\BadWords\Filter($ID);
$arFields["DICTIONARY_ID"] = $filter["DICTIONARY_ID"];
$arFields["WORDS"] = $filter["WORDS"];
$arFields["PATTERN_CREATE"] = $filter["PATTERN_CREATE"];
$arFields["DESCRIPTION"] = $filter["DESCRIPTION"];
$arFields["USE_IT"] = $filter["USE_IT"];
}
}
catch (Exception $e)
{
$errorCollection->add([new Main\Error($e->getMessage())]);
}
/*******************************************************************/
if ($request->isPost() && check_bitrix_sessid() && $forumPermissions >= "W")
{
$arFields["WORDS"] = $request->getPost("WORDS");
$arFields["PATTERN_CREATE"] = $request->getPost("PATTERN_CREATE");
$arFields["REPLACEMENT"] = trim($request->getPost("REPLACEMENT"));
$arFields["DESCRIPTION"] = trim($request->getPost("DESCRIPTION"));
$arFields["USE_IT"] = $request->getPost("USE_IT") === "Y" ? "Y" : "N";
if (empty($arFields["PATTERN_CREATE"]))
{
$errorCollection->add([new Main\Error(GetMessage("FLTR_NOT_ACTION"))]);
}
if (trim($arFields["WORDS"]) == '')
{
$errorCollection->add([new Main\Error(GetMessage("FLTR_NOT_WORDS"))]);
}
if ($errorCollection->isEmpty())
{
if ($filter instanceof Forum\BadWords\Filter)
{
$result = $filter->update($arFields);
}
else
{
$result = Forum\BadWords\Filter::add($arFields);
}
if ($result->isSuccess())
{
$url = "forum_words.php?DICTIONARY_ID={$arFields["DICTIONARY_ID"]}&lang=".LANG;
if ($request->getPost("Update"))
{
$id = $result->getId();
$url = "forum_words_edit.php?DICTIONARY_ID={$arFields["DICTIONARY_ID"]}&ID={$id}&lang=".LANG;
}
LocalRedirect($url);
}
else
{
$errorCollection->add($result->getErrors());
}
}
}
$sDocTitle = ($ID > 0) ? str_replace("#ID#", $ID, GetMessage("FLTR_EDIT")) : GetMessage("FLTR_NEW");
$APPLICATION->SetTitle($sDocTitle);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
/*******************************************************************/
$aMenu = array(
array(
"TEXT" => GetMessage("FLTR_LIST"),
"LINK" => "/bitrix/admin/forum_words.php?DICTIONARY_ID={$arFields["DICTIONARY_ID"]}&lang=".LANG,
"ICON" => "btn_list",
)
);
if ($ID > 0 && $forumPermissions >= "W")
{
$aMenu[] = array("SEPARATOR" => "Y");
$aMenu[] = array(
"TEXT" => GetMessage("FLTR_NEW"),
"LINK" => "/bitrix/admin/forum_words_edit.php?DICTIONARY_ID={$arFields["DICTIONARY_ID"]}&lang=".LANG,
"ICON" => "btn_new",
);
$aMenu[] = array(
"TEXT" => GetMessage("FLTR_DEL"),
"LINK" => "javascript:if(confirm('".GetMessage("FLTR_DEL_CONFIRM")."')) window.location='/bitrix/admin/forum_words.php?DICTIONARY_ID={$arFields["DICTIONARY_ID"]}&lang=".LANG."&action_button=delete&ID[]=".$ID."&".bitrix_sessid_get()."';",
"ICON" => "btn_delete",
);
}
(new CAdminContextMenu($aMenu))->Show();
if (!$errorCollection->isEmpty())
{
$message = [];
foreach ($errorCollection->getValues() as $error)
{
$message[] = $error->getMessage();
}
\CAdminMessage::ShowMessage(implode("
", $message));
}
/*******************************************************************/
?>