Возникла необходимость запретить пользователям указывать в комментариях контактную информацию. Как это можно сделать?
Нужен какой то хотя бы простенький алгоритм, который бы распознавал что в комментарии указан телефонный номер, чтобы можно было его не опубликовывать сразу.
Понятно что можно извернуться и написать телефонный номер словами. Но хотя бы чтобы работал в простом случае.
Заранее спасибо за любые наводки
Комментарии
Надо включить Rules на сайте и создать правило которое будет выполняться после добавления комментария, admin/rules/trigger
(add new comment - После сохранения нового комментария)
Выставляем Execute custom PHP code
$text=$node->body;
и проверяем, есть ли в переменной $text номера, т.е. цифры длиной 8-12 знаков.
Второй вариант - с помощью custom_filter задать новый фильтр с регуляркой, навесить его на какой-нить формат ввода, а с помощью этого модуля назначить нужный формат ввода комментариям.
Спасибо за идеи - попробую. Отпишусь
А как вставить регулярку правильно?
Есть поле
Pattern:
Что в это поле написать?
прям регулярку - или нужно какими то символами ограничивать?
Выражение должно возвращать истину или ложь
Может быть кому пригодится.
Создал правило в Rules (Custom PHP code), которое вырезает номер телефонов и e-mailы:
Вот такая функция:
$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;
}
Иногда режет не то что надо, но в основном работает.