【问题标题】:Display text for users with certain roles为具有特定角色的用户显示文本
【发布时间】:2017-03-06 12:32:27
【问题描述】:

我在自定义页面--front.tpl.php 文件中有一段文本。我想将它包装在一个 php if 语句中,以便它只显示给我的两个站点角色。我有以下内容,但它只显示“客户”角色,而我也想显示“顾问”角色。

<?php if (in_array('client', $GLOBALS['user']->roles)):?>

客户资料

【问题讨论】:

    标签: php drupal drupal-7


    【解决方案1】:

    in_array 函数应该接受多个搜索参数,如果它们作为数组传递。所以应该是这样的:

    <?php if (in_array(array('client','consultants'), $GLOBALS['user']->roles)):?>
    

    但如果这不起作用(并且应该),您可以随时使用 or 声明:

    <?php if (in_array('client', $GLOBALS['user']->roles) || in_array('consultants', $GLOBALS['user']->roles)):?>
    

    更新:似乎in_array() 不能接受第一个(针)参数的数组。在堆栈溢出时查看此线程:

    Checking to see if one array's elements are in another array in PHP

    所以array_intersect() 函数应该是您正在寻找的。​​p>

    【讨论】:

    • 您好米兰,感谢您的回复。不幸的是,第一个选项不起作用。我尝试了第二个,它似乎很棘手。如果我需要为大量用户角色显示文本,它可能会变得很长。
    • 更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2014-08-31
    相关资源
    最近更新 更多