Не знаю как вас а меня модуль wordfilter заколебал, ага, он в слове заколебал заменяет последнюю часть слова на букву е.
Поэтому я с ним поступил так:
заменяем функцию wordfilter_filter_process:
<?php
function wordfilter_filter_process($text) {
$text = ' '. $text .' ';
$list = _wordfilter_list();
$utf8 = variable_get('wordfilter_use_utf8_flag', FALSE);
foreach ($list as $word) {
// Prevent mysterious empty value from blowing away the node title.
if (!empty($word->words)) {
$replacement = ($word->replacement) ? $word->replacement : variable_get('wordfilter_default_replacement', '[filtered word]');
if ($word->standalone) {
$pattern = '/([^a-zA-Zа-яё])'. preg_quote($word->words, '/') .'([^a-zA-Zа-яё])/i';
$pattern_l = '/'. preg_quote($word->words, '/') .'([^a-zA-Zа-яё])/i';
$pattern_r = '/([^a-zA-Zа-яё])'. preg_quote($word->words, '/') .'/i';
}
else {
$pattern = '/'. preg_quote($word->words, '/') .'/i';
}
if ($utf8) {
$pattern .= 'u';
}
$split_text = preg_split('/(<[^>]*>)/i', drupal_substr($text, 1, -1), -1, PREG_SPLIT_DELIM_CAPTURE);
$split_text = array_values(array_filter($split_text));
if (count($split_text) > 1) {
$new_string = '';
foreach ($split_text as $key=>$part) {
if (!preg_match('/^</', $part)) {
if ((0==$key) && (true==$word->standalone))
$new_string .= preg_replace($pattern_l, "\${1}". $replacement ."\${2}", $part);
elseif (((count($split_text)-1)==$key) && (true==$word->standalone))
$new_string .= preg_replace($pattern_r, "\${1}". $replacement ."\${2}", $part);
else
$new_string .= preg_replace($pattern , "\${1}". $replacement ."\${2}", $part);
}
else {
$new_string .= $part;
}
}
$text = ' '. $new_string .' ';
}
else {
$text = preg_replace($pattern , "\${1}". $replacement ."\${2}", $text);
}
}
}
$text = drupal_substr($text, 1, -1);
return $text;
}
?>
Комментарии
А где взять список слов для замены...
неужели все в ручную вбивать?