it-swarm-ko.tech

사용자 패널에 사용자 아바타 표시

기본 사용자 패널 (내 계정, 관리자 등)로 바뀌는 로그인 상자에 사용자 이름 위에 사용자의 프로필 사진이 표시되도록하는 대안이 있습니까?

4
Matt Rowles

실제로 익명 사용자에게만 표시되는 사용자 로그인과 사용자가 로그인 한 후에 만 ​​표시되는 탐색의 두 개의 개별 블록이 있습니다. 후자의 블록을 수정하는 데 관심이 있습니다. .

불행히도 사용자 정의 모듈에서 블록을 수정하는 데 사용할 수있는 hook_block_alter()이 없습니다. 그러나 블록이 표시되기 직전에 테마 내에서 그렇게 할 수 있습니다.

다음 함수를 YOURTHEME의 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로 바꾸십시오.

또는 더 좋은 방법은 다른 블록을 만들고 Navigation 위에 배치하고 authenticated user 역할에만 표시되도록 만들고 Body title<none>Block body to :

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

먼저 PHP 필터 모듈을 활성화하고 블록 본문 입력에 PHP 코드 필터를 사용하십시오.

4
Jan Tomka

보기 UI를 사용하여 사용자의 필드를 추가 할 수 있으므로보다 유연한 옵션을 제공하는보기를 사용할 수 있습니다. 다음을 수행해야합니다.

  1. 사용자를 표시하는보기 만들기
  2. Uid에 대한 컨텍스트 필터를 추가하십시오.
  3. 컨텍스트 필터의 '필터 값이 URL에없는 경우'옵션의 구성을 '기본 인수 제공-로그인 한 사용자의 사용자 ID'로 설정합니다.
  4. 사용자 사진 및 이름에 필요한 필드를 추가합니다.
  5. 블록 디스플레이를 추가하고 원하는 곳에 블록을 표시합니다.
3
ipwa