[Решено] Fenom и вызов полей пользователя
В документации есть пример вызова текущего пользователя через {$_modx->user}
Но как вызвать произвольного пользователя, по id?
Есть ли для этого быстрые феномовские штучки, или прийдётся писать сниппет, и уже его запускать через феном?
UPD.
Решение: написать свой сниппет-модификатор (для более удобного перехода с MODX-модификатора).
Сниппет-модификатор user_info
Например переход с [[*author:userinfo=`fullname`]] будет выглядеть так:
Но как вызвать произвольного пользователя, по id?
Есть ли для этого быстрые феномовские штучки, или прийдётся писать сниппет, и уже его запускать через феном?
UPD.
Решение: написать свой сниппет-модификатор (для более удобного перехода с MODX-модификатора).
Сниппет-модификатор user_info
<?php
$output = '';
$profile = $modx->getObject('modUserProfile', ['internalKey' => $input]);
if($profile) {
if (strpos($options,'extended.') === false) {
$output = $profile->$options;
} else {
$ext = explode(".", $options);
$profile = $profile->get('extended');
if(isset($profile[$ext[1]])) {
$output = $profile[$ext[1]];
}
}
}
return $output;Вызывать его так:{$_modx->runSnippet('!user_info', ['input' => 2,'options' => 'extended.skype'])}где в options вбивается поле пользователя или extended-поле через точку. Поле input соответственно это ID пользователя.Например переход с [[*author:userinfo=`fullname`]] будет выглядеть так:
{$_modx->runSnippet('!user_info', ['input' => $_modx->resource.author, 'options' => 'fullname'])} Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. Включил MODX в Fenom (pdotools_fenom_modx)
2. Вызвал следующим образом:
Возможно есть и более удобный способ.
Но при включении {$modx}, любой пользователь админки, имеющий доступ к чанкам, получает доступ ко всем методам MODX и может создавать\удалять что угодно в системе.
Использовать это можно только, если ты один, или всецело доверяешь своим пользователям.
Я написал переходный сниппет-модификатор, подходит и для extended-полей.
Вполне себе рабочее решение как мне кажется:
Вызываю его так:
где в options вбивается поле пользователя или extended-поле через точку.
Спасибо тебе, Гвоздь, и Василию за примеры и пинки в нужном направлении!
Примеры вызова
Во втором случае вернется
sizes — это контейнер в дополнительных полях профиля пользователя, в котором лежит атрибут weight.