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

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

rss

Вы не зашли.

Объявление

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

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

STOPWORDS в Feedback

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


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

Неактивен

 

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

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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 22:41:23

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

Re: STOPWORDS в Feedback

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

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

Подскажешь?

Отредактированно v01d (2015-05-17 23:24:45)


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

Неактивен

 

#4 2015-05-17 23:30:15

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: STOPWORDS в Feedback

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

Неактивен

 

#5 2015-05-18 11: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 12:52:40)


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

Неактивен

 

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

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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 13:16:25

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

Re: STOPWORDS в Feedback

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


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

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.010 seconds, 14 queries executed ]