Вывод ресурсов для определенного пользователя

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

Идея: вывод ресурсов — статьи (коллекции) при входе определенного пользователя
Что хочется реализовать: пользователь на сайта заходит на страницу авторизации, авторизуется (вероятно плагина modstore.pro/packages/users/easyauth) и видит контент, который предполагается для него.

Соотвественно вопрос реальный ли это способ реализации? Может подскажите какой-то другой?
Если нормальный:
1. Как сделать привязку коллекций к пользователю (руками в консоли)
2. Как правильно прописать выборку pdoResources (как указать выборку для авторизованного пользователя, например, по логину)

Нюансы (верно ли?):
1. Коллекция — Имя пользователя или логин
2. Пользователи заводятся в ручную и привязываются в ручную к коллекции (неким образом)

Может я изобретаю велосипед?
Dmitry L.
23 марта 2017, 23:31
modx.pro
1 182
0

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

Максим Кузнецов
25 марта 2017, 11:25
+2
Возможно, коллекция — не лучший инструмент для данной задачи, на случай, если статьи могут пересекаться для разных пользователей.

На мой взгляд, лучше реализовать задачу таким образом:
— у вас есть единый раздел с тикетами «Статьи»
— на главной страницы с помощью MIGX вы реализуете таблицу вида:
айди_пользователя | привязанные_для_него_айди_статей

Далее, в шаблоне, где вы хотите отображать статьи для пользователя:

{if $_modx->user.id > 0}
	{set $migx_tv = $_modx->resource.migx_tv_name | fromJSON}
	//не помню точно, по какому полю формируется ключ в MIGX, возможно, получение статей для конкретного пользователя будет выглядеть чуть иначе
	{set $user_articles = $migx_tv[$_modx->user.id]}
	
	{$_modx->runSnippet('!pdoResources', [
		'resources' => $user_articles,
		...
	])}
{else}
    //форма авторизации
{/if}
    Максим Кузнецов
    25 марта 2017, 11:39
    +2
    upd: забыл добавить проверку на пустоту $user_articles:
    {set $user_articles = $migx_tv[$_modx->user.id]  ?: -1}
      Dmitry L.
      27 марта 2017, 00:50
      +1
      Спасибо за подробный ответ.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3