Drupal: отображение узлов, связанных с профилем, когда поле cck этих узлов имеет идентификатор узла профиля этого пользователя - PullRequest
1 голос
/ 14 октября 2011

Мне нужно показать все узлы определенного типа узла, связанные с узлом профиля каждого пользователя, внутри определенной страницы. Вот что у меня есть:

  • Пользователи с их идентификаторами пользователей (пример uid A)
  • Узел профиля для каждого пользователя (пример nodeid B)
  • Несколько узлов reg с полем cck, которое содержит идентификатор узла профиля (например, поле cck C)

Мне нужно показать внутри страницы все узлы reg, которые имеют внутри этого поля cck B идентификатор узла A. Для каждого пользователя. Поэтому я захожу на страницу usersregnodes / uidA users и вижу все regnodes, связанные с этим пользователем, потому что в их поле cck C они получили nodeididB, который является nodeid профиля этого пользователя.

Я борюсь с отношениями и аргументами. Пока что я думаю, что я должен создать отношения Node: Content Profile. Фильтр должен иметь тип узла reg. И аргумент должен быть идентификатором пользователя (?). Я не могу заставить это работать, потому что все комбинации, попытки и ошибки, которые я пробовал, приводят к пустым результатам.

Буду очень признателен за вашу помощь! СПАСИБО! Rosamunda

1 Ответ

1 голос
/ 29 декабря 2011

Вы можете использовать представление, чтобы сделать это. Хитрость заключается в том, чтобы изменить проверку аргумента.

Если я правильно понял, вам нужно передать uid в качестве аргумента для представления, но получить узлы, которые ссылаются на nid профилей контента этого конкретного UID .

Для этого вам нужно построить представление и задать аргумент с помощью специального валидатора.

Построить представление следующим образом:

  1. Это вид узла;
  2. Установите аргумент. Выберите поле ссылки на узел, содержащее nid для вашего аргумента;
  3. На экране конфигурации аргумента ищите «Опции валидатора»;
  4. Выберите «Код PHP» вместо «Базовая проверка»;
  5. Используйте следующий код (не используйте открывающие и закрывающие теги php):

    $prev_arg = $handler->argument;
    $handler->argument = content_profile_load('content_type_name', $prev_arg)->nid;
    return $handler->argument;
    

Таким образом, вы сможете изменить значение аргумента из uid в nid профиля содержимого и получить результаты просмотра, отфильтрованные по nid.

...