Здравствуйте!
Помогите пожалуйста реализовать следующее.
В идеале хочу что бы при добавлении материала (объявление, запись в блог, форум, комментарий) если в тексте обнаружена ссылка, то материал не сохранялся А выдавалась ошибка, как если это бывает если к примеру не заполнено обязательное поле, и выбивалось сообщение в котором говорилось бы о том что в тексте найдена ссылка, удалите ее и нажмите сохранить еще раз.
Что у меня получилось сделать: когда создается материал с ссылкой — он сохраняется но сразу же снимается с публикации а пользователю показывается сообщение о том что сообщение было снято с публикации за ссылку. Но это не очень хорошо, в таком случае пользователь либо создаст еще точно такой пост уже без ссылки или будет ждать когда модератор проверит неопубликованные записи.
Реализовано это так:
Установил модуль rules
Создал два правила
1. для события After saving new content
и
2. для события After updating existing content
Выбрал для обоих условия Execute custom PHP code indent
<?php$text=$node->body;
$count_t=substr_count($text,'http://');
return $count_t>0;?>
Добавил действия:
- снять с публикации
- показать сообщение, что материал отправлен на модерацию
но и тут проблемы, этот код не работает для комментариев и для тех типов материалов, где стандартное поле body не используется а вместо него другое текстовое поле.
Хотелось бы сделать так как я описал в начале(я не програмист но очень друпал понравился за его гибкость, ушел с глюченой джумлы, подскажите пожалуйста), но если нельзя, то подскажите как изменить код что бы он работал для комментариев и для полей где стандартное поле body отсутствует. Всем за ранее спасибо!
Комментарии
Для комментариев используйте block anonymous links
Для всего остального - лучше отключите в Фильтрах возможность добавления ссылок...