if (strlen($ID) <= 0) { continue; } $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": CFilterUnquotableWords::Delete($ID); break; case "generate": CFilterUnquotableWords::GenPattern($ID, intVal($DICTIONARY_ID_T)); break; } } } } $rsData = CFilterUnquotableWords::GetList(array($by => $order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("FLT_TITLE_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true), array("id" => "USE_IT", "content" => GetMessage("FLT_USE_IT"), "sort" => "USE_IT", "default" => true), array("id" => "PATTERN_CREATE", "content" => GetMessage("FLT_PATTERN_CREATE"), "sort" => "PATTERN_CREATE", "default" => true), array("id" => "WORDS", "content" => GetMessage("FLT_WORDS"), "sort" => "WORDS", "default" => true), array("id" => "PATTERN", "content" => GetMessage("FLT_PATTERN"), "sort" => "PATTERN", "default" => false), array("id" => "REPLACEMENT", "content" => GetMessage("FLT_REPLACEMENT"), "sort" => "REPLACEMENT", "default" => true), array("id" => "DESCRIPTION", "content" => GetMessage("FLT_DESCRIPTION"), "sort" => "DESCRIPTION", "default" => true))); /*******************************************************************/ while ($arData = $rsData->NavNext(true, "t_")) { $row =& $lAdmin->AddRow($t_ID, $arData); if (!CFilterUnquotableWords::FilterPerm()) { $row->bReadOnly = True; } $row->AddViewField("ID", '<a title="' . GetMessage("FLT_ACT_EDIT") . '" href="' . "forum_words_edit.php?DICTIONARY_ID=" . $t_DICTIONARY_ID . "&ID=" . $t_ID . "&lang=" . LANG . '">' . $t_ID . '</a>'); $row->AddInputField("WORDS", array("size" => "20")); $row->AddInputField("PATTERN", array()); $row->AddInputField("REPLACEMENT", array("maxlength" => "255", "size" => "10%")); $row->AddInputField("DESCRIPTION", array("size" => "80%"));
public static function Filter($message) { global $USER, $DB, $CACHE_MANAGER, $APPLICATION; static $arFilterPattern = array(); $filter = array(); $pattern = array(); $replacement = array(); if (!array_key_exists(LANGUAGE_ID, $arFilterPattern)) { $cache_id = "b_forum_filter_" . COption::GetOptionInt("forum", "FILTER_DICT_W", false, LANGUAGE_ID); if (CACHED_b_forum_filter !== false && $CACHE_MANAGER->Read(CACHED_b_forum_filter, $cache_id, "b_forum_filter")) { $arFilterPattern[LANGUAGE_ID] = $CACHE_MANAGER->Get($cache_id); } else { $db_res = CFilterUnquotableWords::GetList(array(), array("USE_IT" => "Y", "DICTIONARY_ID" => COption::GetOptionInt("forum", "FILTER_DICT_W", false, LANGUAGE_ID))); $replace = COption::GetOptionString("forum", "FILTER_RPL", "*"); while ($res = $db_res->Fetch()) { if (strlen(trim($res["PATTERN"])) > 0) { $arFilterPattern[LANGUAGE_ID]["pattern"][] = trim($res["PATTERN"]); $arFilterPattern[LANGUAGE_ID]["replacement"][] = strlen($res["REPLACEMENT"]) > 0 ? " " . $res["REPLACEMENT"] . " " : " " . $replace . " "; } } } } if (empty($arFilterPattern[LANGUAGE_ID]["pattern"])) { return $message; } $pattern = $arFilterPattern[LANGUAGE_ID]["pattern"]; $replacement = $arFilterPattern[LANGUAGE_ID]["replacement"]; ksort($pattern); ksort($replacement); $message = ' ' . $message . ' '; switch (COption::GetOptionString("forum", "FILTER_ACTION", "rpl")) { case "rpl": $message = preg_replace($pattern, $replacement, $message); break; case "del": $message = preg_replace($pattern, '', $message); break; } return trim($message); }
$bVarsFromForm = true; } $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"; /*******************************************************************/ $str_DICTIONARY_ID = $DICTIONARY_ID; $str_DICTIONARY_ID = $DICTIONARY_ID; $str_WORDS = ""; $str_PATTERN = ""; $str_REPLACEMENT = ""; $str_DESCRIPTION = ""; $str_USE_IT = "Y"; $str_PATTERN_CREATE = "TRNSL"; if ($ID > 0) { $db_res = CFilterUnquotableWords::GetList(array(), array("ID" => $ID)); $db_res->ExtractFields("str_", False); } if ($bVarsFromForm) { $DB->InitTableVarsForEdit("b_forum_filter", "", "str_"); } $str_PATTERN_CREATE = strToUpper(trim($str_PATTERN_CREATE)); $aMenu = array(array("TEXT" => GetMessage("FLTR_LIST"), "LINK" => "/bitrix/admin/forum_words.php?DICTIONARY_ID=" . $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=" . $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=" . $DICTIONARY_ID . "&lang=" . LANG . "&action=delete&ID[]=" . $ID . "&" . bitrix_sessid_get() . "';", "ICON" => "btn_delete"); } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($err = $APPLICATION->GetException()) {