Commit f63727d1 authored by Dries's avatar Dries

- Patch #479966 by Berdir: document and fix hook_user_categories.

parent ef323565
......@@ -244,13 +244,6 @@ function profile_user_validate(&$edit, &$user, $category = NULL) {
return profile_validate_profile($edit, $category);
}
/**
* Implement hook_user_categories().
*/
function profile_user_categories($edit, $user, $category = NULL) {
return profile_categories();
}
/**
* Implement hook_user_cancel().
*/
......@@ -495,8 +488,10 @@ function profile_validate_profile($edit, $category) {
return $edit;
}
function profile_categories() {
/**
* Implement hook_user_categories().
*/
function profile_user_categories() {
$result = db_query("SELECT DISTINCT(category) FROM {profile_field}");
$data = array();
foreach ($result as $category) {
......
......@@ -251,6 +251,19 @@ function hook_user_operations() {
return $operations;
}
/**
* Retrieve a list of all user setting/information categories.
*/
function hook_user_categories() {
return array(array(
'name' => 'account',
'title' => t('Account settings'),
'weight' => 1,
));
}
/**
* @} End of "addtogroup hooks".
*/
......@@ -998,10 +998,14 @@ function user_user_submit(&$edit, &$account, $category = NULL) {
}
/**
* Implement hook_user_categories.
* Implement hook_user_categories().
*/
function user_user_categories($edit, $account, $category = NULL) {
return array(array('name' => 'account', 'title' => t('Account settings'), 'weight' => 1));
function user_user_categories() {
return array(array(
'name' => 'account',
'title' => t('Account settings'),
'weight' => 1,
));
}
function user_login_block() {
......@@ -1437,8 +1441,7 @@ function user_menu() {
'load arguments' => array('%map', '%index'),
);
$empty_account = new stdClass();
if (($categories = _user_categories($empty_account)) && (count($categories) > 1)) {
if (($categories = _user_categories()) && (count($categories) > 1)) {
foreach ($categories as $key => $category) {
// 'account' is already handled by the MENU_DEFAULT_LOCAL_TASK.
if ($category['name'] != 'account') {
......@@ -1489,8 +1492,7 @@ function user_category_load($uid, &$map, $index) {
// Check that the requested category exists.
$valid = FALSE;
if (!isset($user_categories)) {
$empty_account = new stdClass();
$user_categories = _user_categories($empty_account);
$user_categories = _user_categories();
}
foreach ($user_categories as $category) {
if ($category['name'] == $category_path) {
......@@ -2414,15 +2416,8 @@ function user_help($path, $arg) {
/**
* Retrieve a list of all user setting/information categories and sort them by weight.
*/
function _user_categories($account) {
$categories = array();
foreach (module_implements('user_categories') as $module) {
if ($data = module_invoke($module, 'user_categories', NULL, $account, '')) {
$categories = array_merge($data, $categories);
}
}
function _user_categories() {
$categories = module_invoke_all('user_categories');
usort($categories, '_user_sort');
return $categories;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment