Drupal Views: отображение последних узлов, созданных пользователем на странице профиля

Мне интересно, как я могу отображать недавно созданные узлы пользователем на странице своего профиля. Я создал новую страницу для пользователя в /user/ %, и я хочу иметь возможность отображать последние узлы, созданные этим пользователем.

Ответы

Ответ 1

ok, ответ включает создание представления drupal, поэтому вам понадобится модуль views, и хотя он прост, ответ длинный. пожалуйста, несите меня через это...:) (я на самом деле делаю это на тестовом сайте, когда я пишу инструкции, чтобы убедиться, что я ничего не пропустил...)

Я предполагаю, что вы знаете, как загрузить и установить модуль views. убедитесь, что вы также включили модуль views-ui.

  • перейти к созданию сайта- > views- > добавить.
  • поместите "recent_posts_by_user" для имени представления, "последние сообщения пользователя" для описания и "node" для типа просмотра. нажмите далее.
  • под типом вида "по умолчанию" в блоке "fields" нажмите знак "+".
  • под "группами" выберите node, затем установите поля "node type", "node title" и "node updated date". нажмите кнопку "Добавить" под списком.
  • в базовом блоке настроек (слева), нажмите "10" для "элементов для отображения" и измените на "5" или сколько угодно элементов на странице и нажмите "Обновить"
  • в разделе "Использовать пейджер", нажмите "Нет" и "Полный пейджер" или "мини-пейджер" и снова нажмите "Обновить".
  • под стиль, нажмите "unformatted" и измените его на "table", чтобы все поля сортировались, затем выберите "обновленную дату" как "сортировку по умолчанию", затем в "порядке сортировки по умолчанию" выберите "нисходящий". нажмите обновление.
  • нажмите "сохранить", чтобы сохранить достигнутый прогресс.

отображается по умолчанию. УРА! позволяет добавить блок

  • теперь в раскрывающемся списке, который говорит "страница", выберите "блок" и нажмите "добавить дисплей".
  • нажмите "аргументы" (название блока в центре экрана)
  • нажмите "переопределить" и "обновить"
  • нажмите знак "+" справа от "аргументов"
  • в раскрывающемся списке "группы" выберите "пользователь" и выберите "идентификатор пользователя". нажмите "добавить"
  • в разделе "Действие для принятия, если аргумент отсутствует", выберите последний параметр "предоставить аргумент по умолчанию", выберите "идентификатор пользователя из URL-адреса" и отметьте "Также найдите node и используйте автора node
  • под "валидатор", выберите "пользователь" и "Разрешить как числовые идентификаторы UID, так и имена строк" ​​
  • в разделе "Действие, которое следует предпринять, если аргумент не проверяется" выберите "скрыть вид/страницу не найден" (404) "
  • нажмите "обновить", затем "сохранить"

теперь создается представление, позволяющее убедиться, что оно отображается на правильных страницах.

  • перейдите на сайт building- > block, найдите блок "последние сообщения пользователя" и нажмите "настроить"
  • прокрутите до конца и выберите "Показать только на перечисленных страницах". и введите "users/*" в текстовую область "страницы"
  • нажмите "сохранить блок"
  • теперь снова добавьте блок "последние сообщения пользователя" и установите его в область "нижний контент" (или любой другой регион, доступный вашей теме).
  • нажмите "сохранить блоки"

СДЕЛАНО! Не ракетоведение, но длительный процесс... drupal 6 просмотров намного лучше, чем drupal 5!:)

теперь перейдите на страницу пользователя http://site/users/username и посмотрите, как там отображается таблица!

ударил меня, если у вас все еще есть вопросы о представлениях.

пользоваться

Ответ 2

Вставьте аргумент Views, который использует идентификатор пользователя из аргумента URL. Это будет arg (1). Это должно фильтровать контент, созданный профилем, на который вы смотрите. Это может работать для блока или области содержимого.

Ответ 3

Я просто предпочитаю, чтобы вы перешли в Views → Sort Criteria и добавили Node: обновленную дату и отметили ее как нисходящую, так как она показывает степень детализации за это время.

Кроме того, вы можете также получить последний node не только стиль таблицы, но и все.