Вы не зашли.
Страницы 1
Нужен список стоп-слов для плагина Feedback.
Если текстовое поле имеет в составе стопслово обнулять форму.
Чтобы до отправки на почту не доходило.
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Не в сети
1. Создать в корне плагина /engine/plugins/feedback/ файл stop.txt - в нем хранить стопслова по 1 в строке.
2. В feedback.php добавить:
function check_stop_contains($string, array $array) {
$count = 0;
foreach($array as $value) {
if (false !== stripos($string,$value)) {
++$count;
};
}
return $count;
}
3. В feedback.php найти в plugin_feedback_post():
foreach ($fData as $fName => $fInfo) {
Ниже добавить:
$stopArray = file(dirname(__FILE__).'/stop.txt', FILE_IGNORE_NEW_LINES);
if($fInfo['type'] == 'textarea') {
if (check_stop_contains($_REQUEST['fld_'.$fName], $stopArray) > 0) {
// Wrong check stop words (!!!)
plugin_feedback_showScreen(1, "В тексте используются запрещенные слова");
return;
}
}
Не в сети
К сожалению отправляет.
У меня "feedback Feedback forms Плагин 0.05"
Менять пока не хочу, все работает.
И PHP Version 5.2.17. на продакшн, так-же не хочу менять пока работает.
Подскажешь?
Изменено v01d (2015-05-18 00:24:45)
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Не в сети
Пример стопслов и сообщения
Не в сети
"Это проверка решения metro. Это METRO остопи"
Оба слова с новой строки в stop.txt
Пробовал указывать полный путь к файлу, эффект тот-же.
Вот так:
$stopArray = file(dirname(__FILE__).'/stop.txt', FILE_IGNORE_NEW_LINES);
if($fInfo['type'] == 'textarea') {
if (check_stop_contains($_REQUEST[$fName], $stopArray) > 0) {
// Wrong check stop words (!!!)
// plugin_feedback_showScreen(1, "В тексте используются запрещенные слова");
$template['vars']['mainblock'] = $tpl->show('site.infoblock');
return 1;
}
}
работает но не выводит сообщение об ошибке.
Старый плагин нет функции plugin_feedback_showScreen()
Изменено v01d (2015-05-18 13:52:40)
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Не в сети
1. Фильтр регистронезависимый, поэтому не нужно повторять слова. Чекаются только textarea.
2. Решение под последние версии feedback. В старых версиях много нету, в том числе "plugin_feedback_showScreen", которая выводит сообщения об ошибках.
3. Для 0.0.5 вроде можно так:
$stopArray = file(dirname(__FILE__).'/stop.txt', FILE_IGNORE_NEW_LINES);
if($fInfo['type'] == 'textarea') {
if (check_stop_contains($_REQUEST[$fName], $stopArray) > 0) {
$tpl->template('site.infoblock', $tpath['site.infoblock']);
$tpl->vars('site.infoblock', array( 'vars' => array( 'title' => 'В тексте используются запрещенные слова', 'ptpl_url' => $ptpl_url, 'entries' => 'В тексте используются запрещенные слова')));
$template['vars']['mainblock'] = $tpl->show('site.infoblock');
return 1;
}
}
Не в сети
Да! Есть!
Спасибо.
Очень приятное дополнение.
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Не в сети
Страницы 1