Представления Drupal: список авторов узлов, где node.type = abc и node.vocabulary_id = 123 - PullRequest
0 голосов
/ 03 февраля 2011

В drupal6 с использованием представлений я хочу (блочный) список авторов (с полями полного профиля) определенного типа узла И таксономии term.id ИЛИ vocabulary.id

Обобщенный запрос:
Просмотры:тип user
Аргумент: идентификатор термина / идентификатор словаря
Фильтры: автор типа узла abc
Поля: все поля профиля / профиля контента

Как мне достичь такого решения?

1 Ответ

1 голос
/ 30 марта 2011

У меня та же проблема. Я обнаружил, что если бы я отфильтровал по node.type = 'blog' и установил поля для полей профиля, которые меня интересовали, я мог бы получить список или авторов, но были бы дубликаты. Установка «Отличить» на «Да» не помогла, потому что выбирались разные узлы, а не отдельные пользователи.

Итак, я создал пользовательский блок для показа этой информации с помощью следующего кода:

<?php
$block['subject'] = t('Bloggers');
    // Get a list of blog authors
    $result = db_query('SELECT DISTINCT u.uid, u.name FROM {node} n INNER JOIN {users} u ON n.uid = u.uid WHERE n.type = \'blog\'');
    $links = array();
    while ($blogger = db_fetch_object($result)) {
      $link = array();
      if (module_exists('profile')) {
        profile_load_profile($blogger);
      }
      if (!empty($blogger->profile_first_name) || !empty($blogger->profile_last_name)) {
        $link['title'] = $blogger->profile_first_name . (empty($blogger->profile_first_name) ? '' : ' ') . $blogger->profile_last_name;
      }
      else {
        $link['title'] = $blogger->name;
      }
      $link['href'] = 'blog/' . $blogger->uid;
      $links[] = $link;
    }
    $block['content'] = theme('links', $links, array('class' => 'flat-links'));
?>

Надеюсь, это поможет.

...