Как вывести пользователей, создававших определенный тип материала?

Главные вкладки

Аватар пользователя VasyOK VasyOK 21 октября 2011 в 15:03

Привет всем!

Напомните мне кто-нибудь: как вывести пользоваетлей, создававших материал определенного типа?

Когда вьюху типа пользователь создаешь - там вроде нет фильтра по материалам. Решение в голове вертится вспомнить не могу.

Комментарии

Аватар пользователя Plazik Plazik 21 октября 2011 в 15:37

"VasyOK" wrote:
Когда вьюху типа пользователь создаешь - там вроде нет фильтра по материалам.

Все там есть Smile
Все выводы делаются через Views.

Аватар пользователя VasyOK VasyOK 21 октября 2011 в 18:33

Plazik, погимаешь, ответ "Все там есть"он не совсем академический.

Слишком подробные инеструкции мне не надо, можешь вкратце напомнить как такое сделать?

Если я создаяю вьюху типа Пользователь, то там в фильтрах всего 2 группы: Пользователь и Файл

Аватар пользователя VasyOK VasyOK 21 октября 2011 в 19:24

Да, но тогда каждый пользователь выводится столько раз, сколько раз он создал материал. А нужно чтобы выводился один раз.

Аватар пользователя VasyOK VasyOK 21 октября 2011 в 21:48

Если так сделать, то получается

Вася

  • Вася
  • Вася

Петя

  • Петя
  • Петя
  • Петя

Коля

  • Коля

И как выводить группироваку и не выводить поле? Если поставить исключить поле из вывода на поле Пользователь, тогда вообще ничего не выводит.

Аватар пользователя goodboy goodboy 22 октября 2011 в 10:19

В шаблоне вьюва отрегулировать вывод (или же просто указать в CSS выводить только h4 для определенного класса).

Или вообще, вывести сниппетом:

<?php

$types = array('article','page');

$results = db_query("SELECT u.uid, u.name FROM {node} n JOIN {users} u USING (uid) WHERE n.status=1 AND type IN (" . db_placeholders($types, 'varchar') .  ") GROUP BY u.uid ORDER BY u.name", $types);
$items = array();
while ( $data = db_fetch_object($results) ) {
  $account = user_load( array( 'uid' => $data->uid ) );
  if ( $account ) {
      $items[] = theme('user_picture', $account) . theme('username', $account);
  }
}
if ( count($items) ) {
  print theme('item_list', $items);
}

?>

Аватар пользователя Plazik Plazik 22 октября 2011 в 12:27

"VasyOK" wrote:

Да, но тогда каждый пользователь выводится столько раз, сколько раз он создал материал. А нужно чтобы выводился один раз.


Тогда надо вручную информацию из бд доставать.

Аватар пользователя goodboy goodboy 22 октября 2011 в 17:14

Создать блок или страницу, выбрать формат PHP, вставить.

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

Аватар пользователя VasyOK VasyOK 22 октября 2011 в 17:22

Вставить в блок или страницу - это не проблема, но хотелось бы дейставительно использовать views.

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