Как вывести поля пользователя по условию?

Добрый день.
Делаю каталог фирм. При регистрации все данные фирмы записываются в поля пользователя (имя, телефон, адрес, а также дополнительные поля — там реквизиты фирмы).

Для фирмы я сделал контейнер типа Коллекция, внутри страница фирмы (с коротким описанием фирмы, пару фото — все из поля content). Как на этой же странице вывести данные из полей пользователя, если название фирмы в заголовке совпало с названием поля Фирма у пользователя.

Намудрил или есть более рациональное решение?
Anton
29 апреля 2017, 11:47
modx.pro
1 285
0

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

Anton
29 апреля 2017, 16:45
0
Для решения этой задачи использовал pdoUser для вывода всех пользователей.
Затем сделал сниппет для сбора данных с полей пользователя bedrijfsProfiel:
<?php
// получаем шаблон
$tpl = $modx->getOption('tpl',$scriptProperties,'bedrijfsProfielTpl');
// получаем значение переменной "user" из _GET
$userId = intval($_GET["bedrijf"]);
if($userId == 0){return "Bedrijf niet gevonden!";}
// формируем запрос для загрузки информации из БД
$user = $modx->getObject('modUser',array('active' => true, 'id' => $userId ));
if($user == null){return "Bedrijf niet gevonden!";}
$profile = $user->getOne('Profile');
// копируем данные в массив.
$data = array();
$data['user'] = $user->toArray();
$data['profile'] = $profile->toArray();
// выводим результат
return $modx->getChunk($tpl,$data);
И делаем чанк-шаблон для вывода этих данных bedrijfsProfielTpl:
Логин: <strong>[[+user.username]]</strong><br />
Имя: <strong>[[+profile.fullname]]</strong><br />
Последний вход: <strong>[[+thislogin:date]]</strong><br />
Город: <strong>[[+profile.city]]</strong><br />
Сайт: <strong>[[+profile.website:default='не указан']]</strong>
Создаем ресурс с выводом данных, название, допустим, Профиль (страница разрешена только для зарегистрированных пользователей). Там вызываем [[!bedrijfsProfiel? &tpl=`bedrijfsProfielTpl`]]

Теперь посмотреть данные о фирме (пользователе) можно по ссылке [[++ste_url]]/profile.html?bedrijf=[[+id], где id — это айди нужного пользователя.
    Anton
    29 апреля 2017, 16:49
    0
    Теперь вопрос: как сделать ресурс на каждого пользователя (пока можно вручную) и вывести его, если id пользователя совпало с TV «id пользователя» у ресурса?

    Наверно я это и хотел спросить вначале :)
      Anton
      29 апреля 2017, 17:00
      0
      [[!pdoResouerces?
      &parents=`[[*id]]`
      &tvFilters=`???`
      &where=`???`
      ]]

      Как-то так?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3