Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal:替换&x27;登录';至';注销';在菜单上_Php_Drupal_Menu - Fatal编程技术网

Php Drupal:替换&x27;登录';至';注销';在菜单上

Php Drupal:替换&x27;登录';至';注销';在菜单上,php,drupal,menu,Php,Drupal,Menu,我现在面临一个问题, 我正在使用Drupal 7,我不知道如何在主菜单中添加/替换链接。如果用户登录或未登录,我希望更改链接的标签 就是它,它用和显示我的菜单 $menu=menu_tree_output(menu_tree_all_data('main-menu')); print drupal_render($main_menu); 所以我试着在菜单上再添加一个链接。(但它不起作用) 我希望我的问题很清楚, 感谢您的帮助。无需通过代码完成此操作……只需使用UI将“登录”和“注销”链接添加到

我现在面临一个问题, 我正在使用Drupal 7,我不知道如何在主菜单中添加/替换链接。如果用户登录或未登录,我希望更改链接的标签

就是它,它用
  • 显示我的菜单

    $menu=menu_tree_output(menu_tree_all_data('main-menu'));
    print drupal_render($main_menu);
    
    所以我试着在菜单上再添加一个链接。(但它不起作用)

    我希望我的问题很清楚,
    感谢您的帮助。

    无需通过代码完成此操作……只需使用UI将“登录”和“注销”链接添加到主菜单中,并使用适当的路径(用户/登录,用户/注销),Drupal的权限系统将处理其余部分


    由于经过身份验证的用户无权访问/user/login,而匿名用户无权访问/user/logout,因此您想要的效果将自然发生。

    我也这样做了,但使用了JQuery和css: 检查主体是否具有“登录”类,然后我使用:

    $('ul.dropmenu').append('<li class="loggedInOverride">' + '<a href="/logout">' + 'Log out' + '</a>' + '</li>');
    
    $('ul.dropmenu').append('
  • '++'
  • ');

    至少对我来说容易多了。这里的主要原因是我有一个内部部分的自定义菜单,它不是“主要”链接导航。因此,这个想法可能也适用于主要或次要链接。

    谢谢您的回复。如果我想在登录后进行“登录”和“我的帐户”?有什么办法吗?根据我的经验,您需要模块来实现这一点……您可以设置一个路径,指向
    user/[current\u user:uid]
    或类似的内容。不幸的是,
    /user
    可供身份验证和未经身份验证的用户访问,因此您不能仅使用oneHum,这就是为什么我尝试在php中执行此操作,因为我的drupal上安装了足够/太多的模块。如果没有这个模块,我是否有可能或者应该找到另一个解决方案呢?当然有可能,但是在Drupal中覆盖菜单链接真的很痛苦。无论您想以何种方式执行,您都将实现与菜单令牌完全相同的逻辑,因此可能值得快速查看其中的代码,看看您是否可以提取所需内容,而不必费心安装整个模块。谢谢您的帮助。现在有点清楚了。如果我找到解决方案,我会发布;)拜伊
    $('ul.dropmenu').append('<li class="loggedInOverride">' + '<a href="/logout">' + 'Log out' + '</a>' + '</li>');