如何将新选项卡添加到用户配置文件。我想添加例如管理员和用户本身(而不是其他人)可以看到的新用户选项卡。
3 回答
嗨朋友谢谢你帮助我....我在代码下完成了
function downloaded_menu(){
$items['user/%user/downloaded'] = array(
'title' => 'Downloaded',
'page callback' => 'downloaded_content_page',
'access arguments' => array('access content'),
'type' => MENU_LOCAL_TASK,
'weight' => 10,
);
return $items;
}
您可以通过视图模块实现这一点,而无需进行自定义编码。
设置一个新的视图页面,路径为 'user/%' 设置上下文过滤器为 'user:uid'
将您的页面内容设置为“用户”或“字段”或您想要呈现的任何内容。这会将标准的 drupal 页面“劫持”为视图渲染。
现在,您可以通过添加视图页面并将路径设置为“user/%/path_of_your_tab”来添加任意数量的附加选项卡。将每个选项卡的菜单项设置为“菜单选项卡”和“用户菜单”
然后,您可以在视图中为每个选项卡设置访问权限。
如果您想创建自己的模块,代码将如下所示:
<?php
// Define callback for tab.
function user_tab_menu(){
return array(
'user/%/new_tab' => array(
'title' => 'New tab',
'page callback' => 'user_tab_page',
'page arguments' => array(1),
'access callback' => 'user_tab_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
),
);
}
// Show the page
function user_tab_page($uid){
return 'New tab';
}
// Check if user has permission, or views its own page
function user_tab_access($uid){
return ($uid == $GLOBALS['user']->uid) || user_access('view user tabs');
}
// Define permission for administrators
function user_tab_perm(){
return array(
'view user tabs' => array(
'title' => t('View user tabs'),
'description' => t('View user tabs'),
),
);
}