Нашел сам, помоги другим.
/bitrix/modules/forum/classes/general/filter_dictionary.php
Код |
---|
CModule::IncludeModule('forum');
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 (trim($res["PATTERN"]) <> '' )
{
$arFilterPattern[LANGUAGE_ID]["pattern"][] = trim($res["PATTERN"]);
$arFilterPattern[LANGUAGE_ID]["replacement"][] = $res["REPLACEMENT"] <> '' ? " ".$res["REPLACEMENT"]." " : " ".$replace." ";
}
}
}
}
if (empty($arFilterPattern[LANGUAGE_ID]["pattern"])):
return $message;
endif;
$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);
} |
$bezmata=Filter('строка с матом'); // На выходе строка где мат на звездочку заменен. $replace = COption::GetOptionString("forum", "FILTER_RPL", "*");