Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2015-04-11 14:25:57

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

STOPWORDS в Feedback

Нужен список стоп-слов для плагина Feedback.
Если текстовое поле имеет в составе стопслово обнулять форму.
Чтобы до отправки на почту не доходило.


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#2 2015-05-17 22:15:28

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: STOPWORDS в Feedback

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;
	}

}

Не в сети

#3 2015-05-17 23:41:23

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: STOPWORDS в Feedback

К сожалению отправляет.

У меня "feedback Feedback forms     Плагин     0.05"
Менять пока не хочу, все работает.
И PHP Version 5.2.17. на продакшн, так-же не хочу менять пока работает.

Подскажешь?

Изменено v01d (2015-05-18 00:24:45)


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#4 2015-05-18 00:30:15

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: STOPWORDS в Feedback

Пример стопслов и сообщения

Не в сети

#5 2015-05-18 12:21:52

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: STOPWORDS в Feedback

"Это проверка решения 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,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#6 2015-05-18 14:04:32

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: STOPWORDS в Feedback

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;
	}

}

Не в сети

#7 2015-05-18 14:16:25

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: STOPWORDS в Feedback

Да! Есть!
Спасибо.
Очень приятное дополнение.


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

Подвал раздела

Работает на FluxBB