if ($teaser) в шаблоне user-profile.tpl.php

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

Аватар пользователя Ekaterina23 Ekaterina23 16 июля 2014 в 18:15

как настроить вывод тизера профиля пользователя в шаблоне user-profile.tpl.php

в шаблоне node.tpl.php работает конструкция if ($teaser), какую конструкцию для профиля использовать?

Комментарии

Аватар пользователя drupby drupby 16 июля 2014 в 21:05

во-первых код

$entity_info = entity_get_info('user');
debug(array_keys($entity_info['view modes']));

выводит все view modes для сущности user

а во-вторых где нужно выводить урезанный вывод пользовательского профиля?

в-третьих view mode в шаблоне юзера в $elements['#view_mode']

в-четвертых если уж так нужен тизер для юзера, то нужно для начала добавить в сущность такой view_mode

/**
 * Implements hook_entity_info_alter
 */

function MYMODULE(MYTHEME)_entity_info_alter(&$entity_info) {
  $entity_info['user']['view modes']['teaser'] = array(
      'label' => t('Teaser'),
      'custom settings' => TRUE,
  );
}

потом добавить шаблон(suggestions) для тизера

/**
 * Implements hook_preprocess_user_profile()
 */

function MYMODULE(MYTHEME)_preprocess_user_profile(&$vars) {
  if ($vars['elements']['#view_mode'] == 'teaser') {
    $vars['theme_hook_suggestions'][] = 'user_profile__teaser';
  }
}

ну и потом создать шаблон для тизера юзера user-profile--teaser.tpl.php

Аватар пользователя whiesam whiesam 16 июля 2014 в 22:17

"Ekaterina23" wrote:
не проще, у меня profile2 включен, и вьюшкой не все, что надо получается вывести.

Да ну??? Я кучу сайтов делал с profile2, и вьюшка вытаскивает АБСОЛЮТНО ВСЁ из профайла))) Вы про отношения и перезапись полей то во вьюсе не забывайте)

Аватар пользователя Ekaterina23 Ekaterina23 16 июля 2014 в 23:40

и чего раскричались.

я думала что в друпале уже прописан тизер и его можно спокойно брать и для профиля. для ноды то удобно, просто if ($teaser), и сложно поверить, что для профиля такого не предусмотрено.

Аватар пользователя Ekaterina23 Ekaterina23 16 июля 2014 в 23:45

"drupby" wrote:
а во-вторых где нужно выводить урезанный вывод пользовательского профиля?
на странице со списком пользователей. я еще хотела красиво все это оформить, а не просто поля или таблицу. а то получается сама страница профиля оформлена, а предпросмотр нет.

Аватар пользователя drupby drupby 17 июля 2014 в 0:02

"Ekaterina23" wrote:
на странице со списком пользователей.

так чего вьюс не использовать?
"Ekaterina23" wrote:
я еще хотела красиво все это оформить, а не просто поля или таблицу.

так чего вьюс не темизировать?

Аватар пользователя whiesam whiesam 17 июля 2014 в 2:54

"Ekaterina23" wrote:
на странице со списком пользователей. я еще хотела красиво все это оформить, а не просто поля или таблицу. а то получается сама страница профиля оформлена, а предпросмотр нет.

А кто Вам мешает поставить во вьюсе "Неотформатированный список" и мутить как угодно?

Аватар пользователя Ekaterina23 Ekaterina23 17 июля 2014 в 11:15

"whiesam" wrote:
А кто Вам мешает поставить во вьюсе "Неотформатированный список" и мутить как угодно?
я для материалов так сделала и темизировала шаблон для тизера.
а вот для профиля никак не получается сделать красиво.

Аватар пользователя whiesam whiesam 17 июля 2014 в 15:53

"Ekaterina23" wrote:
а вот для профиля никак не получается сделать красиво.

Читайте то, чтоя писал выше. Можно перезаписывать результаты поля. То есть добавлять верстку.

Аватар пользователя Ekaterina23 Ekaterina23 19 июля 2014 в 17:52

"whiesam" wrote:
Читайте то, чтоя писал выше. Можно перезаписывать результаты поля. То есть добавлять верстку.
таким методом страница выводится очень долго, даже если на ней всего 10 профилей.

Аватар пользователя whiesam whiesam 19 июля 2014 в 22:10

"Ekaterina23" wrote:
таким методом страница выводится очень долго, даже если на ней всего 10 профилей.

Включите кеш во вьюсе. А не нравиться работа вьюса: или меняйте хостинг или пишите запросы в БД напрямую.