【问题标题】:Custom Menu tabs in Drupal user profile pageDrupal 用户个人资料页面中的自定义菜单选项卡
【发布时间】:2010-11-16 09:51:01
【问题描述】:

我想在用户个人资料页面顶部的 [view] [edit] [files] ... 菜单链接旁边添加一个菜单项。当用户点击它时,它的行为应该和其他人一样,因为它不仅会启动到新页面,而且他们点击的菜单项(我们称之为“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;
}

所以上面的代码 sn-p 添加了按钮——但我不知道如何让它像视图和编辑按钮显示它们的内容一样显示。谢谢!

【问题讨论】:

  • 这对我有用。谢谢

标签: templates drupal menu themes user-profile


【解决方案1】:

您的回调需要返回包含要显示的页面的 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' =&gt; array(1) 行,它将%user 通配符的值作为页面回调的第一个参数传输。


如果它是一个复杂的页面,您可能希望使用模板文件创建一个主题函数,这样您可以将页面的代码存储在一个 .tpl.php 文件中,这样更容易维护(特别是如果您的模块创建许多这样的自定义页面)。

如果您的模块变得流行或其他模块可以预处理页面以添加/修改变量,这也有利于允许主题通过提供自己的 .tpl.php 文件版本来自定义页面输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多