Регистрация пользователя с использованием craft 3 cms - PullRequest
0 голосов
/ 30 октября 2018

Я хотел создать коммерческий сайт, используя крафт 3 cms. И я хотел создать родительскую регистрационную форму, чтобы у каждого родителя была учетная запись для использования на сайте. Затем, после того, как они войдут в систему, я хочу, чтобы они могли добавлять своих детей.

Возможно ли это сделать, используя крафт 3 cms. Единственное, что я нашел, - это форма регистрации пользователя в документации.

Если есть блог документации по интеграции этой функции с использованием craft 3 cms или есть что-то, что я пропустил до сих пор.

1 Ответ

0 голосов
/ 08 августа 2019

Зависит от того, насколько сложными будут ваши отношения родитель-ребенок. Лучшее решение - написать собственный плагин или модуль для этого, с записями и правилами, некоторыми контроллерами ... и т. Д.

Мое решение будет следующим

  1. Разрешить публичную регистрацию

  2. Создать два user groups:

    • Родитель
    • Дети
  3. Установите группу пользователей по умолчанию на Parent

  4. Убедитесь, что группа пользователей Parent имеет разрешение: Назначить группы пользователей -> Назначить пользователей на «Дочерний» отмечен

  5. Создайте field group с одним полем в нем:

    • parentId> number (точнее int)
  6. Назначить эту группу полей пользователям

  7. Создайте регистрационную форму внешнего пользователя для родителей, чтобы они могли зарегистрироваться.

  8. И тогда вам понадобится еще одна форма для родителей, чтобы они могли зарегистрировать своих детей. Для этого родители должны войти в систему, иначе она не будет работать.

  9. Вы можете проверить это с помощью

{% if not craft.app.user.isGuest %}

  {# Your child registration form #}

  <input type="hidden" id="parentId" name="parentId" value="{{ craft.app.user.id }}">

  {% else %}

  {# The user is not logged in #}

{% endif %}

Таким образом, вы можете:

  • Различайте родительских пользователей от детей, используя:

{% set userGroups = craft.app.user.identity.getGroups() %}

  • Получить зарегистрированный дочерний родительский объект пользователя, используя:

{% set parent = craft.users().id( craft.app.user.identity.parentId ).one()%}

  • Получить в систему родителей родителей детей

{% set children = craft.users().parentId( craft.app.user.id ).all() %}

...