Как правильно реализовать каталог фирм на MODX?
Здравствуйте.
Я делаю каталог фирм.
Как сделать так, чтобы после регистрации 1 пользователь мог добавить только 1 фирму в каталог (контейнер Каталог), а также 5 товаров в раздел Товары (тоже контейнер)?
Сейчас сделано следующее: сделал регистрацию пользователя, если залогинен, то показать Добавить фирму. Там FormIt, с помощью хука добавленный ресурс попадает в раздел На модерации.
Но сейчас пользователь может добавлять неограниченное количество ресурсов.
Как лучше построить такой проект каталог фирм?
1. FormIt + formit2resource + ограничение количества документов на пользователя.
2. UserProfile
3. Tickets
4. Office (платное дополнение)
5. Еще что-то?
Я делаю каталог фирм.
Как сделать так, чтобы после регистрации 1 пользователь мог добавить только 1 фирму в каталог (контейнер Каталог), а также 5 товаров в раздел Товары (тоже контейнер)?
Сейчас сделано следующее: сделал регистрацию пользователя, если залогинен, то показать Добавить фирму. Там FormIt, с помощью хука добавленный ресурс попадает в раздел На модерации.
Но сейчас пользователь может добавлять неограниченное количество ресурсов.
Как лучше построить такой проект каталог фирм?
1. FormIt + formit2resource + ограничение количества документов на пользователя.
2. UserProfile
3. Tickets
4. Office (платное дополнение)
5. Еще что-то?
Комментарии: 7
Проверять поле createdby у ресурса — туда пишется ID создателя.
Соответственно, пробежаться по созданным ресурсам, получить их ID, если будет созданный текущим юзером, то форму не выводить.
То же и с товарами. Если их больше 5, вывести сообщение вместо формы.
Соответственно, пробежаться по созданным ресурсам, получить их ID, если будет созданный текущим юзером, то форму не выводить.
То же и с товарами. Если их больше 5, вывести сообщение вместо формы.
Ограничить достаточно просто. Один из вариантов — у пользователя есть поле extended. В него писать id фирмы, которую он добавил. И проверять, если есть уже id, то не выводить форму.
Проверять с помощью IF?
Можно и без него обойтись. Например, сниппетом. Тут важное условие, записать id фирмы пользователю.
Павел предложил вариант проще — проверять по полю createdby ресурса. Главное отличить фирмы от товаров. В этом могут помочь разные шаблоны, т.е. отличать по ним.
Так что вариантов несколько. Они все правильные. Что проще, то и делайте.
Павел предложил вариант проще — проверять по полю createdby ресурса. Главное отличить фирмы от товаров. В этом могут помочь разные шаблоны, т.е. отличать по ним.
Так что вариантов несколько. Они все правильные. Что проще, то и делайте.
То есть выбор «FormIt + formit2resource + ограничение количества документов на пользователя» правильное решение?
Да, верное. Если Вы используете formit2resource отсюда, то у Вас все эти компании в ресурсах.
Соответственно, Вы можете проверять существование созданного пользователем ресурса хоть через getResources:
Соответственно, Вы можете проверять существование созданного пользователем ресурса хоть через getResources:
[[getResources?
....
&where=`{"ctreatedby":"[[!+modx.user.id]]"}`
&toPlaceholder=`list`
&totalVar=`count`
&showUnpublished=`1`
]]
[[+count:gt=`0`:then=`вывод формы`:else=`Текст про невозможность создания`]]
Вот спасибо Вам!
Вопрос, думаю, закрыт.
Вопрос, думаю, закрыт.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.