Nếu bạn muốn làm điều này trong một mô-đun (được khuyến nghị thay vì thêm mã php vào một khối, sau đó sẽ không nằm trong kiểm soát phiên bản), thì bạn có thể làm điều này:
(trong trường hợp này, tất cả mã này sẽ có trong một mô-đun tùy chỉnh có tên userwelcome.)
/**
* @file
* Adds a block that welcomes users when they log in.
*/
/**
* Implements hook_theme().
*/
function userwelcome_theme($existing, $type, $theme, $path) {
return array(
'userwelcome_welcome_block' => array(
'variables' => array('user' => NULL),
),
);
}
/**
* Implements hook_block_info().
*/
function userwelcome_block_info() {
// This example comes from node.module.
$blocks['welcome'] = array(
'info' => t('User welcome'),
'cache' => DRUPAL_CACHE_PER_USER,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function userwelcome_block_view($delta = '') {
global $user;
$block = array();
switch ($delta) {
case 'welcome':
// Don't show for anonymous users.
if ($user->uid) {
$block['subject'] = '';
$block['content'] = array(
'#theme' => 'userwelcome_welcome_block',
'#user' => $user,
);
}
break;
}
return $block;
}
/**
* Theme the user welcome block for a given user.
*/
function theme_userwelcome_welcome_block($variables) {
$user = $variables['user'];
$output = t('Welcome !username', array('!username' => theme('username', array('account' => $user))));
return $output;
}
Nếu sau đó bạn muốn ghi đè lên chủ đề của khối này trong một chủ đề, bạn sẽ thực hiện việc này (trong tệp template.php của chủ đề của bạn):
/**
* Theme the userwelcome block.
*/
function THEMENAME_userwelcome_welcome_block(&$variables) {
// Return the output of the block here.
}
Lưu ý rằng vì đây là mô-đun tùy chỉnh, bạn cũng có thể cập nhật trực tiếp chủ đề funciton trong mô-đun.
Nếu bạn không muốn sử dụng một mô-đun tùy chỉnh, bạn có thể tạo một khối tùy chỉnh bằng mã php và thêm phần này:
global $user;
// Only for logged in users.
if ($user->uid) {
print 'Welcome ' . theme('username', array('account' => $user));
}