Отображение аватара пользователя на панели пользователя


Есть ли альтернатива, чтобы в окне входа, которое превращается в панель пользователя по умолчанию (Моя учетная запись, Администрирование и т.д.), отображалось изображение профиля пользователя над именем пользователя?

Author: Jan Tomka, 2011-05-29

2 answers

На самом деле существует два отдельных блока: Вход пользователя , который отображается только анонимным пользователям, и Навигация , которая отображается только после входа пользователя в систему. Вы заинтересованы в изменении последнего.

К сожалению, поблизости нет hook_block_alter(), который вы могли бы использовать для изменения блока из пользовательского модуля. Однако вы можете сделать это из своей темы непосредственно перед отображением блока.

Просто вставьте следующую функцию в свою ТЕМУ template.php и это должно сработать. Пожалуйста, обратите внимание, что это добавляет изображение пользователя в верхнюю часть содержимого блока, просто ниже имени пользователя.

function YOURTHEME_preprocess_block(&$vars) {
  $block =& $vars['block'];
  if ($block->module == 'user' && $block->delta == 1) {
    // Navigation block.
    $block->content = theme('user_picture', $vars['user']) . $block->content;
  }
}

Если вы хотите, чтобы это было выше имени пользователя, просто замените $block->content на $block->subject.

Или, что еще лучше, просто создайте еще один блок, поместите его над Навигацией , сделайте его видимым только для роли authenticated user, установите заголовок тела на <none> и Тело блока на:

<?php
global $user;    
print theme('user_picture', $user);
?>

Убедитесь, что включен PHP сначала отфильтруйте модуль и используйте PHP-код фильтр для ввода Тела блока.

 4
Author: Jan Tomka, 2011-07-26 23:55:07

Вы могли бы использовать представления, которые предоставили бы вам более гибкий вариант, поскольку вы можете добавлять любые поля от пользователя с помощью пользовательского интерфейса представлений. Вам нужно будет:

  1. Создайте представление, отображающее пользователей
  2. Добавьте контекстный фильтр для Uid.
  3. Установите настройки контекстного фильтра "Когда значение фильтра ОТСУТСТВУЕТ в URL", чтобы "Указать аргумент по умолчанию - Идентификатор пользователя от вошедшего в систему пользователя".
  4. Добавьте необходимые поля, в вашем случае Изображение пользователя и Имя.
  5. Добавьте отображение блока и отобразите блок там, где вы хотите/
 3
Author: ipwa, 2011-07-27 04:06:48