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