user_roles

定義

user_roles($membersonly = 0, $permission = 0)
modules/user/user.module, 第 1762 行開始

描述

傳回符合條件的「群組(身分)」陣列
(在 Drupal 裡,群組(身分)被叫作"role")

參數

$membersonly: 如果設為 TRUE ,則傳回的時候會排除「訪客群組(身分)」
$permission: 一個字串,如果加到它,則只傳回包含這個權限的群組(身分)回來

傳回值

一個關連陣列,鍵是該群組在資料庫的ID,值是它的名字。

範例

列出現在所有的群組: (假設我事前建立一個叫作 power user 的群組)

print_r(user_roles());

傳回值:
Array
(
    [1] => anonymous user
    [2] => authenticated user
    [3] => power user
)

程式碼

<?php
function user_roles($membersonly = 0, $permission = 0) {
 
$roles = array();

  if (
$permission) {
   
$result = db_query("SELECT r.* FROM {role} r INNER JOIN {permission} p ON r.rid = p.rid WHERE p.perm LIKE '%%%s%%' ORDER BY r.name", $permission);
  }
  else {
   
$result = db_query('SELECT * FROM {role} ORDER BY name');
  }
  while (
$role = db_fetch_object($result)) {
    if (!
$membersonly || ($membersonly && $role->rid != DRUPAL_ANONYMOUS_RID)) {
     
$roles[$role->rid] = $role->name;
    }
  }
  return
$roles;
}
?>