Переискала весь интернет по СТОП СЛОВАМ. И везде только и пишет, что это можно сделать с помощью модуля Rules. Я поставила модуль Rules, но никак не могу понять, как так сделать, чтобы пользователь после обновления учетной записи не мог вводить СТОП СЛОВА. То есть добавлены дополнительные поля в профиль (чаще всего *длинный текст*), хочу чтобы в те поля нельзя было вводить номера телефонов, а именно чтобы когда пользователь ввел СТОП СЛОВА и захотел сохранить профиль, то чтобы при обнаружении СТОП СЛОВ профиль не сохранялся, а выпало сообщение об ошибке.
Комментарии
Стоп-слова, это конкретные слова, на которые должно реагировать правило.
В Вашем же случае необходимо проверять на соответствие определенным форматам (и нужно учитывать все возможные форматы, в которых может быть записан телефонный номер, учитывая что пользователь может ввести другую информацию числами, на которую реагировать не нужно).
Такое можно реализовать с помощью регулярных выражений (RegExp).
И элементарно проверить в условиях правила.
Если необходима валидация форм (до отправки), Рулз не умеет такое по умолчанию, нужно ставить какой нибудь Rules Forms Support, или придумывать свои костыли.
А проще всего, просто добавить свой JS в админ-тему, с той же регуляркой.
Сложновато как то ((( думала будет проще......
Для анонимных пользователей просто, есть модуль Simple Anti-Spam и все работает как часы, но только для анонимных ((((
Если нужен простой фильтр по Стоп-словам, и лень пользоваться Rules'ами - в ядре есть модуль Trigger.
Создаете правило со стоп-словами (admin/config/system/actions -> "Отменить публикацию содержимого, содержащего слова").
Назначаете созданное правило на необходимое событие (admin/structure/trigger/node).
Если нужна валидация форм - методы из первого сообщения.
я так пробовала, там нету по ролям Блокировки по СТОП СЛОВАМ (((
А в Rules есть все что дуща пожелает! я пробовала через дейстрия - снять материал с пубдикации и выбирала через Селектор данных нужное поле, но выпада ошибка *Data selector account:field-status-u:host-entity: for parameter node is invalid.*
Вы выбирали не тот селектор.
Нужно выбирать ноду, которую необходимо снять с публикации.
А как ее выбрать правильно?
Я так и делаю через *Снять материал с публикации* потом и саму ноду, но все время одна и та же ошибка *Data selector account:field-zkjhpakasdz: for parameter node is invalid.*
но все что выбрано до этого работает ном, кончая *показать сообщение*
вот скрин настроек:
Судя по скрину, ноды не имеют никакого отношения к правилу.
Вы проверяете аккаунт пользователя.
Его нельзя снять с публикации.
Можете восстановить прежнее значение поля.
account-unchanged:field-[название поля] -> account:field-[название поля]
P.S. Если поле с форматированием, необходимо полностью указывать текст поля и формат поля. Из приведенного вами примера, Вы пытаетесь вставить неполные данные (account:field-zkjhpakasdz:)
Здесь ошибся, наоборот нудно:
account:field-[название поля] -> account-unchanged:field-[название поля]
А где EVENT что тогда выбираь ?
У Вас уже все выбрано.
Все получилось кроме отмены сохранения профиля, когда есть стоп слова, чтото никак не могу найти ЭЛЕМЕНТАХ такую функцию ((((
перерыла все подмодури Рулз и нету валидации до отправки, а так жаль....нужная же вещь... )))))
А че если много рас добавить в одно правило *НЕ Сравнение текста* то правило перестает вообще работать ?
А если создавать каждое отдельное правило на инную ноду то все работает ?
странно как то.....