예제 #1
0
            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 . "&amp;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%"));
예제 #2
0
 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);
 }
예제 #3
0
    $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()) {