Рейтинг:-1

Пользовательское поле правил

флаг id

Я разрабатываю сайт Drupal, где администратор создает учетные записи пользователей. Ведь для этого сайта администратор создает учетные записи пользователей, заполняет поля строгим минимумом (Фамилия, Имя, Почта).

Когда пользователь входит в систему, я бы хотел, чтобы сайт заставлял его заполнять остальные поля профиля.

Для этого я хотел использовать модуль «Правила» с:

  • Событие: Пользователь вошел в систему
  • Условие: Значение данных пусто: Пользовательское поле
  • Действие: Перенаправление страницы (пользователь/[аккаунт: uid]/редактировать)

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить доступ к своим таможенным полям в селекторе данных.

Кто-нибудь знает, как получить доступ к моим таможенным полям в Правилах?

флаг fr
Примечание. Текстовое описание того, как вы настроили правило, является неадекватным, поскольку в большинстве случаев оно упускает важную информацию. Отсутствует одна конкретная вещь: было ли значение введено в селекторе данных или путем прямого ввода — существует ОГРОМНАЯ разница между «узлом», введенным в селекторе данных, и «узлом», введенным при прямом вводе. Пожалуйста, в будущем публикуйте экспорт вашего правила, когда задаете вопрос или сообщаете о проблеме - экспорт содержит полную информацию, необходимую для воспроизведения вашей проблемы.
флаг fr
Правила в Drupal 8 не используют токены модуля токенов. Вместо этого вам нужно использовать синтаксис Twig. В вашем случае пункт назначения перенаправления должен быть введен как '/user/{{ account.uid.value }}/edit' с использованием прямого ввода.
Рейтинг:0
флаг fr

Событие «Пользователь вошел в систему» ​​помещает в контекст сущность пользователя для пользователя, который только что вошел в систему. Сама по себе сущность пользователя не имеет полей. Пользовательский объект с добавленными полями называется пакетом.

Чтобы открыть поля пакета для правил, вам нужно использовать условие «Сущность из пакета». Это условие принимает три входа:

  1. Конкретный объект, который вы проверяете.В вашем случае использования это должна быть переменная «учетная запись», выбранная с помощью селектора данных.
  2. Тип сущности. Это должно быть имя машины типа объекта, выбранного в 1), который в вашем случае является «пользователем», введенным с помощью прямого ввода.
  3. Имя машины пакета. Опять же, это будет «пользователь», введенный с помощью прямого ввода.

Любые условия или действия, добавленные после этого условия «Сущность из пакета», теперь будут иметь доступ к пользовательским полям.

Вышеупомянутые шаги необходимы для того, чтобы открыть поля любого пакета для правил — это касается не только объекта «пользователь».

Monster971 avatar
флаг id
Спасибо бро, все заработало! У вас есть способ, чтобы пользователь не имел доступа к какой-либо другой странице, пока поля не будут заполнены?
флаг fr
Если это помогло, пожалуйста, примите ответ! См. https://stackoverflow.com/help/someone-answers.
флаг fr
Чтобы предотвратить доступ к другим страницам, я бы предложил назначить роль пользователям, у которых есть полностью заполненные профили. Все пользователи без этой роли могут быть перенаправлены на страницу профиля при входе в систему и могут быть лишены доступа к контенту или чему-либо еще, установив разрешения для роли «аутентифицированный пользователь» (которая является ролью по умолчанию).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.