Вывод значения extended поля

Добрый день!
Необходима подсказка или помощь!

Если сниппет, который выводит список пользователей. У этих пользователей есть extended поле cover. Вывод идет по этому запросу, но extended поле никак не выводится.
Я пока не сильно силен в этом, пытаюсь разобраться, поэтому надеюсь на вашу помощь.

$sql = 'SELECT * FROM `modx_user_attributes` INNER JOIN `modx_member_groups` ON modx_member_groups.member = modx_user_attributes.id INNER JOIN `modx_users` ON modx_users.id = modx_user_attributes.id INNER JOIN `modx_ec_threads` ON  modx_user_attributes.id = modx_ec_threads.name WHERE modx_users.active = 1 AND modx_member_groups.user_group = 2 AND modx_member_groups.role = 1 '.$type.$state.$country.$city.$studio.$name.' ORDER BY modx_ec_threads.rating_wilson DESC LIMIT '.$limit ;

$query = new xPDOCriteria($modx, $sql);

if ($query->prepare() && $query->stmt->execute()){
$res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
 
//  print_r($res);
foreach ($res as $value) {
    $extended_json = $value['extended'];
    $extended = json_decode($extended_json, true);
    $output .= $modx->getChunk('TESTfulllistUsersCOVER1',array(
        'photo'=>$value['photo'],
        'internalKey'=>$value['internalKey'],
        'username'=>$value['username'],
        'id'=>$value['id'],
        'country'=>$value['country'],
        'city'=>$value['city'],
        'fullname'=>$value['fullname'],
        'state'=>$value['state'],
        'extended.cover'=>$extended['cover']
        )
    );
Андрей
13 марта 2021, 16:25
modx.pro
103
0

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

elec3c
13 марта 2021, 17:08
0
Добрый день. Вроде я правильно понял задачу.
1 Попробуйте вывести список пользователей через сниппет pdoUsers пакета pdoTools
docs.modx.pro/komponentyi/pdotools/snippetyi/pdousers

2 Если хотите написать свое решение попробуйте так
$users = $modx->getCollection('modUser');
foreach ($users as $user) {
    $profile = $user->getOne('Profile');
    $extended = $profile->get('extended');
    
     $output .= $modx->getChunk('TESTfulllistUsersCOVER1',array(
        'photo'=>$profile->get('photo'),
        'internalKey'=>$profile->get('internalKey'),
        'username'=>$user->get('username'),
        'id'=>$user->get('id'),
        'country'=>$profile->get('country'),
        'city'=>$profile->get('city'),
        'fullname'=>$profile->get('fullname'),
        'state'=>$profile->get('state'),
        'extended.cover'=>$extended['cover']
        )
    );

}
Подробнее можно почитать тут ilyaut.ru/xpdo/xpdo-for-dummies-part-2/
    Андрей
    13 марта 2021, 18:09
    0
    pdoTools не подошли, потому что мне нужно было сортировать пользователей по значению рейтинга easycomm, но если я в вывод pdoUsers добавлял innerjoin (значения рейтинга то в другой таблице), то начинались жутчайшие тормоза

    с вашим вариантом не сработало.
    У меняпроблема с выводом значения именно extended поля. Скрипт его будто бы не видит. Ни в JSON ни в каком-то еще виде
    elec3c
    13 марта 2021, 20:14
    0
    А на этапе где у вас вывод закоментирован этот параметр виден?
      Андрей
      14 марта 2021, 13:57
      0
      неа, показывает просто как контейнер extended, а не как json
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4