[решено] Запрет указания контактной информации в комментариях

Главные вкладки

Аватар пользователя Positiff Positiff 5 августа 2011 в 0:03

Возникла необходимость запретить пользователям указывать в комментариях контактную информацию. Как это можно сделать?
Нужен какой то хотя бы простенький алгоритм, который бы распознавал что в комментарии указан телефонный номер, чтобы можно было его не опубликовывать сразу.

Понятно что можно извернуться и написать телефонный номер словами. Но хотя бы чтобы работал в простом случае.

Заранее спасибо за любые наводки

Комментарии

Аватар пользователя Arturus Arturus 5 августа 2011 в 5:11

Надо включить Rules на сайте и создать правило которое будет выполняться после добавления комментария, admin/rules/trigger
(add new comment - После сохранения нового комментария)
Выставляем Execute custom PHP code
$text=$node->body;
и проверяем, есть ли в переменной $text номера, т.е. цифры длиной 8-12 знаков.

Аватар пользователя Positiff Positiff 29 августа 2011 в 23:04

А как вставить регулярку правильно?
Есть поле
Pattern:
Что в это поле написать?
прям регулярку - или нужно какими то символами ограничивать?

Аватар пользователя Positiff Positiff 14 ноября 2011 в 14:56

Может быть кому пригодится.
Создал правило в Rules (Custom PHP code), которое вырезает номер телефонов и e-mailы:
Вот такая функция:

function hide_contact_info($text){
        $pattern_phone = array('/(?:(?:8|\+*7)(?:[-() ]*\d){10})/','/(?:[-() ]*\d){7,10}/');
        $out_text = preg_replace($pattern_phone, '', $text);

        $mail_pattern = '/[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+/';
        $out_text = preg_replace($mail_pattern,'',$out_text);
       
        return $out_text;
}

Иногда режет не то что надо, но в основном работает.