【问题标题】:How to sort a views result based on user roles weight?如何根据用户角色权重对视图结果进行排序?
【发布时间】:2014-04-28 20:40:54
【问题描述】:

有没有办法根据用户角色的权重对视图结果进行升序/降序排序。我们尝试使用 php 代码作为排序标准。我们返回了用户角色的权重作为输出,但顺序并没有像预期的那样发生变化。

【问题讨论】:

标签: sorting drupal view drupal-7


【解决方案1】:

下面的 php 函数.....实际上我只是把它做成了一个函数,因为它更整洁,我需要在多个视图中使用它,但你可以直接在你的视图中使用这段代码。理想情况下,这可能应该在一个模块中。

function get_role_weight($userId){

  $users = user_load($userId);
  $userRole = $users->roles;
  $arr = Array();

  foreach($userRole as $row){
    $roleID = user_role_load_by_name($row)->rid;
    $role = user_role_load($roleID);
    $arr[] = $role->weight;
  }

  sort($arr);

  return $arr[0];
}

它是如何完成的

  1. 在您的字段列表中添加一个新的“Global:PHP”字段
  2. 从显示中排除这个新字段 - 我们不想显示它,只是稍后用于订购
  3. 将此代码放在“值代码:”字段中:return get_role_weight($data->uid);

  4. 将以下代码放入“输出代码:”字段<?php print $value; ?>

  5. 1234563

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多