Si vous voulez le faire dans un module (recommandé plutôt que d'ajouter du code php à un bloc, qui ne serait alors pas en contrôle de version), vous pouvez le faire:
(dans ce cas, tout ce code irait dans un module personnalisé nommé 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;
}
Si vous vouliez alors remplacer le thème de ce bloc dans un thème, vous le feriez (dans votre fichier template.php de votre thème):
/**
* Theme the userwelcome block.
*/
function THEMENAME_userwelcome_welcome_block(&$variables) {
// Return the output of the block here.
}
Notez que comme il s'agit d'un module personnalisé, vous pouvez également mettre à jour directement la fonction de thème dans le module.
Si vous ne souhaitez pas utiliser un module personnalisé, vous pouvez créer un bloc personnalisé avec du code php et ajouter ceci:
global $user;
// Only for logged in users.
if ($user->uid) {
print 'Welcome ' . theme('username', array('account' => $user));
}