Jika Anda ingin melakukan ini dalam sebuah modul (disarankan sebagai kebalikan dari menambahkan kode php ke blok, yang kemudian tidak ada dalam kontrol versi), maka Anda dapat melakukan ini:
(dalam hal ini, semua kode ini akan masuk dalam modul khusus bernama 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;
}
Jika Anda ingin mengganti tema pemblokiran ini dalam suatu tema, Anda akan melakukan ini (dalam file template.php dari tema Anda):
/**
* Theme the userwelcome block.
*/
function THEMENAME_userwelcome_welcome_block(&$variables) {
// Return the output of the block here.
}
Perhatikan bahwa karena ini adalah modul khusus, Anda juga dapat langsung memperbarui fungsi tema di modul secara langsung.
Jika Anda tidak ingin menggunakan modul khusus, Anda dapat membuat blok khusus dengan kode php dan menambahkan ini:
global $user;
// Only for logged in users.
if ($user->uid) {
print 'Welcome ' . theme('username', array('account' => $user));
}