Переопределение пользовательских страниц с помощью представления
Можно ли переопределить пользовательскую страницу представлением? Я хотел бы переопределить страницу пользователя, чтобы показать все узлы, созданные этим пользователем.
4 answers
Представления не являются подходящим инструментом для использования здесь, так как представления предназначены для отображения содержимого.
Что вы, вероятно, хотите, так это использовать панели для управления страницей пользователя и отображения на ней чего-либо, например представления.
Я нашел ответ на этот вопрос!
В представлениях в разделе отношения выберите Содержимое: Автор
Затем в разделе Контекстные фильтры выберите Идентификатор автора контента Используйте следующие настройки для UID автора контента:
- Взаимосвязь: Узлы
- ЕСЛИ ЗНАЧЕНИЕ ФИЛЬТРА НЕДОСТУПНО: Укажите
- Значение по умолчанию / Идентификатор пользователя из URL-АДРЕСА, ЕСЛИ ДОСТУПНО ЗНАЧЕНИЕ ФИЛЬТРА ИЛИ ПРЕДОСТАВЛЯЕТСЯ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ: Укажите Критерии проверки /Валидатор: Пользователь / Разрешать как числовые идентификаторы, так и строковые имена пользователей
Затем просто создайте блок и отобразите его на странице пользователя (перейдите в настройки блока и укажите путь к users/*
Я надеюсь, что это кому-то поможет!
Возможно, это не ответ, но попробуйте этот модуль http://drupal.org/sandbox/AshishThakur/1511158
Есть способ заменить содержимое страницы пользователя страницей просмотров (проверено)
function MODULE_menu_alter(&$items){
$views_router = menu_get_item('path/to/my/views');
if( $views_router ){
$items['user/%user']['page callback'] = $views_router['page_callback'];
$items['user/%user']['page arguments'] = $views_router['page_arguments'];
$items['user/%user']['access callback'] = $views_router['access_callback'];
$items['user/%user']['access arguments'] = unserialize($views_router['access_arguments']);
}
}
Очистите кэш и проверьте настройки специальных возможностей представлений.
Посетите страницу пользователя для получения эффективных результатов.