Личный кабинет для клиента ModX Revo как реализовать?

Добрый день.

Есть ModX Revo 2.8.8 с подключенным компонентом Login. Есть регистрация, залогинивание и личный кабинет пользователя. В ЛК стандартные данные email, имя и телефон (которые можно менять).

Задача, как сделать персональную страницу для каждого пользователя? Т.е. чтобы на этой странице пользователь мог добавлять — например список запросов, выбрать тариф, добавить проект (сайт) и т.д.

Как проще и как правильнее реализовать это? Чтобы страничка и эти данные были только под конкретного пользователя?
aziomav@likemovie.net
21 февраля 2025, 12:54
modx.pro
173
0

Комментарии: 7

Артур Шевченко
21 февраля 2025, 13:06
0
как сделать персональную страницу для каждого пользователя?
Если для всех пользователей должны быть доступны одинаковые функции, то страница должна быть одна и задача сводится не к генерации индивидуальных страниц, в к загрузке персональных данных для авторизованного пользователя.
Для вывода данных пользователя в Modx есть модификатор user. В pdoTools есть сниппет pdoUsers. Можно написать свой сниппет.
Так же очевидно, что кроме стандартных полей требуется хранить ещё какие-то данные пользователя. Для создания полей под эти данные имеет смысл использовать компонент ExtraFields версии не старше 2.0.3.
Когда организуешь место для хранения, нужно будет организовать отправку данных на сервер и обработку ответов. Для этого удобнее всего использовать компонент SendIt.

В целом этих трёх компонентов достаточно для создания личного кабинета любой сложности.
    aziomav@likemovie.net
    21 февраля 2025, 13:15
    0
    Функции одинаковые у всех. У каждого клиента должна быть возможность добавить сайт, список запросов и выбрать тариф. По сути все, это информация должны сохранятся, редактироваться и удаляться через интерфейс.

    Лучше это через компоненты все сделать?
    Просто не очень понятно как данные и где будут храниться под пользователя. Часть данных храниться в modx_user_attributes. Но это наверное не очень правильно туда лишние данные сохранять.
      Артур Шевченко
      21 февраля 2025, 13:56
      0
      Часть данных храниться в modx_user_attributes. Но это наверное не очень правильно туда лишние данные сохранять.
      А что в этом неправильного? Атрибуты пользователя могут быть каким угодно.

      Лучше это через компоненты все сделать?
      Да, так как компоненты имеют документацию и тот, кто после тебя будет работать с сайтом сможет к ней обратиться и быстрее понять как и что работает.
        aziomav@likemovie.net
        21 февраля 2025, 14:23
        0
        На счет компонентов понятно.

        А как можно реализовать будет возможность добавления неограниченного кол-во сайтов для клиента. Т.е. клиент захочет добавить из ЛК не 1, а 5 скажем сайтов или больше и запросы к каждому. Я так понимаю поля в профиле, например через тот же ExtraFields добавляются мной вручную. Не очень понятно как такой момент обыграть
          Артур Шевченко
          21 февраля 2025, 14:27
          0
          Ты максимально абстрактно описываешь функционал. Что значит «добавить сайт»? Что за «запросы»? Что с этими данными будут делать в последствии: показ, фильтрация, отправка?

          От ответов на эти вопросы зависит то, как лучше организовать хранение.
            aziomav@likemovie.net
            21 февраля 2025, 14:37
            0
            Мы с вами не так близко знакомы, поэтому лучше на Вы все же обращаться)

            Клиент добавляет адрес сайта, может добавить сколько угодно их. Это банально поля.
            Сайт 1
            Сайт 2 и т.д.
            К каждому сайту может добавить запросы 1 поле в textarea например.

            Ничего фильтровать не надо. У него будет страничка где будет список сайтов добавлен и запросов.

            По простому если: сайт 1, сайт 2, сайт 3. И поля запросы 1, запросы 2, запросы 3. Он может их редактировать — менять значения, удалять.

            Ничего фильтровать не надо, просто добавить данные, отредактировать или удалить. Чтобы они были на личной странице клиента.
              Артур Шевченко
              21 февраля 2025, 14:51
              0
              Ну если всё по-простому, то можно сохранять эти данные в extended и ExtraFields не нужен.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7