您在這裡

user_roles

ddtet's 的頭像
ddtet 在 2007-05-14 (週一) 13:59 發表

定義

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;
}
?>

Drupal版本: