Answers:
在块或添加块的定制模块中,添加以下代码:
if (user_is_logged_in() == TRUE) {
global $user;
print "Welcome " . $user->name;
}
else {
print "Please log in.";
}
如果要在模块中执行此操作(建议将其添加到代码块中,而不是将php代码添加到代码块中,则建议不要这样做),则可以执行以下操作:
(在这种情况下,所有这些代码都将放入名为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;
}
如果您随后想要在主题中覆盖此块的主题,则可以执行此操作(在主题的template.php文件中):
/**
* Theme the userwelcome block.
*/
function THEMENAME_userwelcome_welcome_block(&$variables) {
// Return the output of the block here.
}
请注意,由于这是一个自定义模块,因此您也可以直接在模块中直接更新主题功能。
如果您不想使用自定义模块,则可以使用php代码创建一个自定义块并添加以下代码:
global $user;
// Only for logged in users.
if ($user->uid) {
print 'Welcome ' . theme('username', array('account' => $user));
}
theme_userwelcome
,则应将功能theme_userwelcome_welcome_block
放置在主题中而不是userwelcome
模块中。大概userwelcome_theme
应该实际调用函数userwelcome_theme_theme
(用2个主题词代替主题名称hook
)并放在主题中theme_userwelcome
。运作userwelcome_block_view
并userwelcome_block_info
保留在userwelcome
。
使用视图模块。创建新视图>显示用户>块显示。添加上下文过滤器>提供默认参数>来自登录用户的用户ID。配置字段(您可以重写结果)以包括所需的任何文本/令牌或用户个人资料字段。保存并将块添加到区域。
完成一个模块,没有代码。
-lunk_rat