Wenn Sie dies in einem Modul tun möchten (im Gegensatz zum Hinzufügen von PHP-Code zu einem Block, der sich dann nicht in der Versionskontrolle befindet), können Sie dies tun:
(In diesem Fall würde der gesamte Code in einem benutzerdefinierten Modul namens userwelcome gespeichert.)
/**
* @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;
}
Wenn Sie dann das Themeing dieses Blocks in einem Theme überschreiben möchten, würden Sie dies tun (in Ihrer template.php-Datei Ihres Theme):
/**
* Theme the userwelcome block.
*/
function THEMENAME_userwelcome_welcome_block(&$variables) {
// Return the output of the block here.
}
Beachten Sie, dass Sie, da dies ein benutzerdefiniertes Modul ist, die Themenfunktion auch direkt im Modul aktualisieren können.
Wenn Sie kein benutzerdefiniertes Modul verwenden möchten, können Sie einen benutzerdefinierten Block mit PHP-Code erstellen und Folgendes hinzufügen:
global $user;
// Only for logged in users.
if ($user->uid) {
print 'Welcome ' . theme('username', array('account' => $user));
}