Как правильно реализовать каталог фирм на MODX?

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

Сейчас сделано следующее: сделал регистрацию пользователя, если залогинен, то показать Добавить фирму. Там FormIt, с помощью хука добавленный ресурс попадает в раздел На модерации.
Но сейчас пользователь может добавлять неограниченное количество ресурсов.

Как лучше построить такой проект каталог фирм?

1. FormIt + formit2resource + ограничение количества документов на пользователя.
2. UserProfile
3. Tickets
4. Office (платное дополнение)
5. Еще что-то?
Anton
06 декабря 2015, 14:40
modx.pro
1
1 525
0

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

Павел Романов
06 декабря 2015, 18:09
+2
Проверять поле createdby у ресурса — туда пишется ID создателя.
Соответственно, пробежаться по созданным ресурсам, получить их ID, если будет созданный текущим юзером, то форму не выводить.
То же и с товарами. Если их больше 5, вывести сообщение вместо формы.
    Сергей Шлоков
    06 декабря 2015, 18:11
    +3
    Ограничить достаточно просто. Один из вариантов — у пользователя есть поле extended. В него писать id фирмы, которую он добавил. И проверять, если есть уже id, то не выводить форму.
      Anton
      06 декабря 2015, 18:35
      0
      Проверять с помощью IF?
        Сергей Шлоков
        06 декабря 2015, 18:56
        0
        Можно и без него обойтись. Например, сниппетом. Тут важное условие, записать id фирмы пользователю.
        Павел предложил вариант проще — проверять по полю createdby ресурса. Главное отличить фирмы от товаров. В этом могут помочь разные шаблоны, т.е. отличать по ним.
        Так что вариантов несколько. Они все правильные. Что проще, то и делайте.
      Anton
      06 декабря 2015, 18:40
      0
      То есть выбор «FormIt + formit2resource + ограничение количества документов на пользователя» правильное решение?
        Павел Романов
        06 декабря 2015, 18:54
        1
        +2
        Да, верное. Если Вы используете formit2resource отсюда, то у Вас все эти компании в ресурсах.
        Соответственно, Вы можете проверять существование созданного пользователем ресурса хоть через getResources:
        [[getResources?
        ....
        &where=`{"ctreatedby":"[[!+modx.user.id]]"}`
        &toPlaceholder=`list`
        &totalVar=`count`
        &showUnpublished=`1`
        ]]
        [[+count:gt=`0`:then=`вывод формы`:else=`Текст про невозможность создания`]]
          Anton
          06 декабря 2015, 19:06
          0
          Вот спасибо Вам!

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