Всем привет!
На днях вошел в ступор с такой задачей:
Нужно в профиле пользователя вывести последние (к примеру 10) сообщения в блоге именно этого пользователя.
Стандартный модуль blog реализует это на странице blogs/%user
Пробовал через Views в Relationships различные настройки, в т.ч. Содержимое: Автор - но это ничего не дало.
Возможно кто подскажет вменяемое описание возможностей Relationships? А то я уже упоролся методом тыка его ковырять.
Или просто подскажите как вывести вышеописанное
Комментарии
Тип представления профиль. И там добавить родственную связь с материалом пользователя. И аргумент юзер ид естественно.
Не совсем понятно про "добавить родственную связь с материалом пользователя"
Профиль собрал на Panels, соответственно Views вывожу в блоке.
Contextual filters - Пользователь: Uid
Relationships - ???
«$view = new view();
$view->name = 'user_post';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'user_post';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'user_post';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'ещё';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Применить';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Сбросить';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Сортировать по';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'По возрастанию';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'По убыванию';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Элементов на страницу';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Все -';
$handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Пропустить';
$handler->display->display_options['pager']['options']['tags']['first'] = '« первая';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ предыдущая';
$handler->display->display_options['pager']['options']['tags']['next'] = 'следующая ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'последняя »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
/* Поле: Содержимое: Заголовок */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Критерий сортировки: Содержимое: Дата публикации */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Контекстный фильтр: Содержимое: UID Автора */
$handler->display->display_options['arguments']['uid']['id'] = 'uid';
$handler->display->display_options['arguments']['uid']['table'] = 'node';
$handler->display->display_options['arguments']['uid']['field'] = 'uid';
$handler->display->display_options['arguments']['uid']['default_action'] = 'default';
$handler->display->display_options['arguments']['uid']['exception']['title'] = 'Все';
$handler->display->display_options['arguments']['uid']['default_argument_type'] = 'user';
$handler->display->display_options['arguments']['uid']['default_argument_options']['user'] = FALSE;
$handler->display->display_options['arguments']['uid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['uid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['uid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['uid']['specify_validation'] = TRUE;
$handler->display->display_options['arguments']['uid']['validate']['type'] = 'user';
$handler->display->display_options['arguments']['uid']['validate_options']['type'] = 'either';
$handler->display->display_options['arguments']['uid']['validate']['fail'] = 'empty';
/* Критерий фильтра: Содержимое: Опубликовано */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Критерий фильтра: Содержимое: Тип */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'post' => 'post',
);
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'user-post';
$translatables['user_post'] = array(
t('Master'),
t('user_post'),
t('ещё'),
t('Применить'),
t('Сбросить'),
t('Сортировать по'),
t('По возрастанию'),
t('По убыванию'),
t('Элементов на страницу'),
t('- Все -'),
t('Пропустить'),
t('« первая'),
t('‹ предыдущая'),
t('следующая ›'),
t('последняя »'),
t('Все'),
t('Page'),
);
»
ввод кода поломался
Содержимое: UID Автора - нет такого. Есть "Пользователь - UID". Но в целом нифига не понял![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
а у меня есть. Это аргумент, если что
сделайте импорт вьюшки
Пишет следующее: Contextual filter handler node.uid is not available
На сколько я помню это в 6-ке Аргумент, а в 7-ке Контекст.
Вобщем получилось искомое, но не уверен что способ оптимальный...
Настроил так:
Relationships
Содержимое: Автор
Filter criteria
(author) Пользователь: Current (Да)
это будут материалы залогиненного пользователя
Да, вы правы. При первом просмотре не заметил этого.
Для меня вопрос еще остается открытый. Подскажите как все-таки вывести на странице пользователя все его материалы?
фильтр - материал тип: что у вас там в записях
поля - заголовок, дата, чо ещё по мелочи
аргумент - uid из url
путь - users/uid/posts
меню - вкладка
Я знаю что с опытом приходит привычка выражать мысли кратко, и улавливать суть из отрывков кратких обозначений
Очевидно я не достиг этой степени просветления, поэтому эти два пункта не понял в принципе
пожалуйста, выражайтесь точней ![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
пожалуйста, покопайтесь немного во вьюхе
та просто там все.
Делаете фильтр по блогу, а в аргументах ищите "Пользователь - UID"->Тип аргумента по умолчанию: ID пользователя из URL
Все.
У вас в Drupal 7 может быть по другому написано или сформулировано, но суть не менятеся.
а можно ли вывести ноду в профиле используя panels без views?