СТОП СЛОВА с помощью модуля Rules

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

Аватар пользователя Ritka Ritka 27 января 2015 в 22:03

Переискала весь интернет по СТОП СЛОВАМ. И везде только и пишет, что это можно сделать с помощью модуля Rules. Я поставила модуль Rules, но никак не могу понять, как так сделать, чтобы пользователь после обновления учетной записи не мог вводить СТОП СЛОВА. То есть добавлены дополнительные поля в профиль (чаще всего *длинный текст*), хочу чтобы в те поля нельзя было вводить номера телефонов, а именно чтобы когда пользователь ввел СТОП СЛОВА и захотел сохранить профиль, то чтобы при обнаружении СТОП СЛОВ профиль не сохранялся, а выпало сообщение об ошибке.

Комментарии

Аватар пользователя bumble bumble 27 января 2015 в 22:32

Стоп-слова, это конкретные слова, на которые должно реагировать правило.
В Вашем же случае необходимо проверять на соответствие определенным форматам (и нужно учитывать все возможные форматы, в которых может быть записан телефонный номер, учитывая что пользователь может ввести другую информацию числами, на которую реагировать не нужно).
Такое можно реализовать с помощью регулярных выражений (RegExp).
И элементарно проверить в условиях правила.
Если необходима валидация форм (до отправки), Рулз не умеет такое по умолчанию, нужно ставить какой нибудь Rules Forms Support, или придумывать свои костыли.

А проще всего, просто добавить свой JS в админ-тему, с той же регуляркой.

Аватар пользователя Ritka Ritka 27 января 2015 в 22:52

bumble wrote:
Стоп-слова, это конкретные слова, на которые должно реагировать правило.
В Вашем же случае необходимо проверять на соответствие определенным форматам (и нужно учитывать все возможные форматы, в которых может быть записан телефонный номер, учитывая что пользователь может ввести другую информацию числами, на которую реагировать не нужно).
Такое можно реализовать с помощью регулярных выражений (RegExp).
И элементарно проверить в условиях правила.
Если необходима валидация форм (до отправки), Рулз не умеет такое по умолчанию, нужно ставить какой нибудь Rules Forms Support, или придумывать свои костыли.

А проще всего, просто добавить свой JS в админ-тему, с той же регуляркой.

Сложновато как то ((( думала будет проще......

Для анонимных пользователей просто, есть модуль Simple Anti-Spam и все работает как часы, но только для анонимных ((((

Аватар пользователя bumble bumble 27 января 2015 в 23:47

Если нужен простой фильтр по Стоп-словам, и лень пользоваться Rules'ами - в ядре есть модуль Trigger.

Создаете правило со стоп-словами (admin/config/system/actions -> "Отменить публикацию содержимого, содержащего слова").
Назначаете созданное правило на необходимое событие (admin/structure/trigger/node).

Если нужна валидация форм - методы из первого сообщения.

Аватар пользователя Ritka Ritka 28 января 2015 в 0:20

bumble wrote:
Если нужен простой фильтр по Стоп-словам, и лень пользоваться Rules'ами - в ядре есть модуль Trigger.

Создаете правило со стоп-словами (admin/config/system/actions -> "Отменить публикацию содержимого, содержащего слова").
Назначаете созданное правило на необходимое событие (admin/structure/trigger/node).

Если нужна валидация форм - методы из первого сообщения.

я так пробовала, там нету по ролям Блокировки по СТОП СЛОВАМ (((

А в Rules есть все что дуща пожелает! я пробовала через дейстрия - снять материал с пубдикации и выбирала через Селектор данных нужное поле, но выпада ошибка *Data selector account:field-status-u:host-entity: for parameter node is invalid.*

Аватар пользователя Ritka Ritka 28 января 2015 в 13:53

bumble wrote:
Вы выбирали не тот селектор.
Нужно выбирать ноду, которую необходимо снять с публикации.

А как ее выбрать правильно?

Аватар пользователя bumble bumble 28 января 2015 в 14:00

"Ritka" wrote:
А как ее выбрать правильно?

"Ritka" wrote:
Нужно выбирать ноду, которую необходимо снять с публикации.

Аватар пользователя Ritka Ritka 28 января 2015 в 14:16

bumble wrote:
"Ritka" wrote:
А как ее выбрать правильно?

"Ritka" wrote:
Нужно выбирать ноду, которую необходимо снять с публикации.

Я так и делаю через *Снять материал с публикации* потом и саму ноду, но все время одна и та же ошибка *Data selector account:field-zkjhpakasdz: for parameter node is invalid.*

но все что выбрано до этого работает ном, кончая *показать сообщение*

вот скрин настроек:

Аватар пользователя bumble bumble 28 января 2015 в 14:23

Судя по скрину, ноды не имеют никакого отношения к правилу.

Вы проверяете аккаунт пользователя.
Его нельзя снять с публикации.

Можете восстановить прежнее значение поля.
account-unchanged:field-[название поля] -> account:field-[название поля]

P.S. Если поле с форматированием, необходимо полностью указывать текст поля и формат поля. Из приведенного вами примера, Вы пытаетесь вставить неполные данные (account:field-zkjhpakasdz:)

Аватар пользователя bumble bumble 28 января 2015 в 14:24

"bumble" wrote:
account-unchanged:field-[название поля] -> account:field-[название поля]

Здесь ошибся, наоборот нудно:
account:field-[название поля] -> account-unchanged:field-[название поля]

Аватар пользователя Ritka Ritka 28 января 2015 в 20:45

Все получилось кроме отмены сохранения профиля, когда есть стоп слова, чтото никак не могу найти ЭЛЕМЕНТАХ такую функцию ((((

Аватар пользователя bumble bumble 28 января 2015 в 20:52

"Ritka" wrote:
Все получилось кроме отмены сохранения профиля

"bumble" wrote:
Если необходима валидация форм (до отправки), Рулз не умеет такое по умолчанию, нужно ставить какой нибудь Rules Forms Support, или придумывать свои костыли.

Аватар пользователя Ritka Ritka 30 января 2015 в 0:50

bumble wrote:
"Ritka" wrote:
Все получилось кроме отмены сохранения профиля

"bumble" wrote:
Если необходима валидация форм (до отправки), Рулз не умеет такое по умолчанию, нужно ставить какой нибудь Rules Forms Support, или придумывать свои костыли.

перерыла все подмодури Рулз и нету валидации до отправки, а так жаль....нужная же вещь... )))))

Аватар пользователя Ritka Ritka 30 января 2015 в 0:49

А че если много рас добавить в одно правило *НЕ Сравнение текста* то правило перестает вообще работать ?

А если создавать каждое отдельное правило на инную ноду то все работает ?

странно как то.....