我想在用户个人资料页面顶部的[查看] [编辑] [文件] ...菜单链接旁边添加一个菜单项。当用户点击它时,它应该像其他人一样,因为它不仅仅是启动到新页面,而是他们点击的菜单项(让我们称之为“Funky Button”)变为灰色,用户仍然在用户个人资料区。
我创建了一个如下所示的钩子:
function my_module_funky() {
// TODO: what to do?
}
function my_module_menu() {
$items['user/%user/funky'] = array(
'title' => t('Funky Button'),
'page callback' => 'my_module_funky',
'page arguments' => array(1),
'access callback' => TRUE,
'access arguments' => array('access funky button'),
'type' => MENU_LOCAL_TASK,
);
return $items;
}
所以上面的代码片段添加了按钮 - 但我无法弄清楚如何让它显示,就像视图和编辑按钮显示其内容一样。谢谢!
答案 0 :(得分:0)
您的回调需要返回包含要显示的页面的HTML代码的字符串,例如:
function my_module_funky($user){
drupal_set_title('Funky page');
return 'This is the $user value: <pre>'.var_export($user, true).'</pre>';
}
$user
来自hook_menu实现的第'page arguments' => array(1)
行,它将%user
通配符的值作为页面回调的第一个参数传输。
如果它是一个复杂的页面,您可能希望使用模板文件创建主题函数,这样您就可以将页面的代码存储在.tpl.php文件中,这样可以更容易维护(特别是如果您的模块创建许多这样的自定义页面。)
如果您的模块变得流行或其他模块可以预处理页面以添加/修改变量,那么通过提供自己版本的.tpl.php文件,允许主题自定义页面输出也是有益的。