2011-01-19 2 views

ответ

0

Как ни странно думать об этом прямо сейчас, это может быть немного сложно. У вас есть два возможных решения от верхней части головы.

1 - Создать новый вид товара Узел. Очевидно, что ваш стиль строки будет установлен на Поля. Под которым Поля, чтобы тянуть выбрать Пользователь группу, а затем отметьте Пользователь: Имя checkbox. Установите Элементы для отображения на для неограниченного количества результатов.

При предварительном просмотре вы должны получить тонну результатов, которые ищут что-то вроде:

Имя: John Doe

Имя: Мэри Джейн

Имя: John Doe

Имя: Anonymous

Что вы видите, являются авторами всех узлов, размещенных в вашей системе. Будет дублирование, поскольку пользователь в вашей системе может быть автором нескольких узлов. К сожалению, вы не можете просто отметить галочкой Distinct:Да вариант, поскольку это относится только к узлам, а не к пользователям.

Как бороться с дублирующимися результатами имени пользователя tho? Пользовательская тема вашего представления, создав пользовательский шаблон под Тема: информация. Внутри шаблона напишите некоторый PHP-код, который перехватывает результаты строки из запроса View перед его отображением и отображает только отдельные имена пользователей из результатов. Вам нужно будет написать логику, чтобы определить, было ли добавлено имя пользователя.

Так же просто, как создать новый настраиваемый массив, добавив каждый результат строки (имя пользователя) в массив, но сначала проверив, будет ли он уже существовать в вашем настраиваемом массиве, - если он делает, то бросает его и переходит к следующему пользователю имя. В конце вы получите массив, заполненный разными именами пользователей, которые разместили на вашем сайте.

voila! Оно работает. Это не изящно, но это определенно будет работать, если будет построено таким образом.

2 - Или, может быть, вы можете заставить этот модуль работать над тем же самым делом менее сложным образом: http://drupal.org/project/views_customfield, но я никогда не использовал его, поэтому я не могу прокомментировать его.

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

+0

Эй, спасибо большое, но я решил то же самое с помощью другого модуля. Есть поле просмотра, называемое view_custom_field..потребило запрос в tat 4 wt i need..n помогло ..newys thnx много 4 ur hlp .. –

0

Мое решение было:

  • Создать представление людей
  • Добавить в UID поле (и любые другие поля, которые вы хотите)
  • Создать файл theme.tpl.php для Row Style
  • Выполняйте вызов БД в каждом цикле через строку для поиска узлов, созданных с помощью предоставленного UID.

Вот что у меня есть в моих semanticviews-View-полей-VIEWNAME.tpl.php

<?php 
    //Query the Drupal DB for nodes associated to the supplied UID 
    $existing_nid = db_query("SELECT nid FROM {node} WHERE (type = :ctype) AND uid = :uid", array("ctype" => "CONTENT_TYPE", "uid" => $fields['uid']->content))->fetchField(); 

    //If the supplied UID created content of the supplied type, then show their name 
    if ($existing_nid != FALSE) { 
    echo "Name:" . $fields['name']->content; 
    } 
?> 

Таким образом, только UID-х, которые контент, связанный с ним в БД будет распечатан , а те, которые этого не делают, не будут.

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

Смежные вопросы