Ещё один хак для фикса бага целсофта, суть в том что у некоторых вылазиет ошибка при добавлении коментария, и если в флильтре слов есть символы левые, то также будут вылазить ошибки. Вот извращенский фикс без прег_реплайс:
Файл /engine/modules/functions.php
Находим
function word_filter($source) {
...
return $source;
}
Заменяем функцию на эту:
function word_filter($source) {
$all_words = file(ENGINE_DIR.'/data/wordfilter.db.php');
if (!empty($all_words)) {
foreach($all_words as $word_line)
{
$word_arr = explode("|", $word_line);
$find[] = strtolower($word_arr[1]);
$find[] = strtoupper($word_arr[1]);
$hh = $word_arr[1];
$hh[0] = strtoupper($hh[0]);
$find[] = $hh;
$replace[] = $word_arr[2];
$replace[] = $word_arr[2];
$replace[] = $word_arr[2];
}
// чувствительно к регистру.
// Если у вас php5 то всё гораздо проще, там есть аналог не чувствительный к регистру.
// А так что-то не чего не лезит в голову с бодуна, сделал по извращенски.
$source = str_replace($find,$replace,$source);
}
return $source;
}
Файл /engine/modules/functions.php
Находим
function word_filter($source) {
...
return $source;
}
Заменяем функцию на эту:
function word_filter($source) {
$all_words = file(ENGINE_DIR.'/data/wordfilter.db.php');
if (!empty($all_words)) {
foreach($all_words as $word_line)
{
$word_arr = explode("|", $word_line);
$find[] = strtolower($word_arr[1]);
$find[] = strtoupper($word_arr[1]);
$hh = $word_arr[1];
$hh[0] = strtoupper($hh[0]);
$find[] = $hh;
$replace[] = $word_arr[2];
$replace[] = $word_arr[2];
$replace[] = $word_arr[2];
}
// чувствительно к регистру.
// Если у вас php5 то всё гораздо проще, там есть аналог не чувствительный к регистру.
// А так что-то не чего не лезит в голову с бодуна, сделал по извращенски.
$source = str_replace($find,$replace,$source);
}
return $source;
}