hook_user

Versions
4.6
hook_user($op, &$edit, &$user, $category = NULL)
4.7 – 6
hook_user($op, &$edit, &$account, $category = NULL)

Act on user account actions.

This hook allows modules to react when operations are performed on user accounts.

Parameters

$op What kind of action is being performed. Possible values (in alphabetical order):

  • "after_update": The user object has been updated and changed. Use this if (probably along with 'insert') if you want to reuse some information from the user object.
  • "categories": A set of user information categories is requested.
  • "delete": The user account is being deleted. The module should remove its custom additions to the user object from the database.
  • "form": The user account edit form is about to be displayed. The module should present the form elements it wishes to inject into the form.
  • "insert": The user account is being added. The module should save its custom additions to the user object into the database and set the saved fields to NULL in $edit.
  • "load": The user account is being loaded. The module may respond to this and insert additional information into the user object.
  • "login": The user just logged in.
  • "logout": The user just logged out.
  • "register": The user account registration form is about to be displayed. The module should present the form elements it wishes to inject into the form.
  • "submit": Modify the account before it gets saved.
  • "update": The user account is being changed. The module should save its custom additions to the user object into the database and set the saved fields to NULL in $edit.
  • "validate": The user account is about to be modified. The module should validate its custom additions to the user object, registering errors as necessary.
  • "view": The user's account information is being displayed. The module should format its custom additions for display, and add them to the $account->content array.

&$edit The array of form values submitted by the user.

&$account The user object on which the operation is being performed.

$category The active category of user information being edited.

Return value

This varies depending on the operation.

  • "categories": A linear array of associative arrays. These arrays have keys:

    • "name": The internal name of the category.
    • "title": The human-readable, localized name of the category.
    • "weight": An integer specifying the category's sort ordering.
  • "delete": None.
  • "form", "register": A $form array containing the form elements to display.
  • "insert": None.
  • "load": None.
  • "login": None.
  • "logout": None.
  • "submit": None.
  • "update": None.
  • "validate": None.
  • "view": None.

Related topics

Code

developer/hooks/core.php, line 2094

<?php
function hook_user($op, &$edit, &$account, $category = NULL) {
  if ($op == 'form' && $category == 'account') {
    $form['comment_settings'] = array(
      '#type' => 'fieldset',
      '#title' => t('Comment settings'),
      '#collapsible' => TRUE,
      '#weight' => 4);
    $form['comment_settings']['signature'] = array(
      '#type' => 'textarea',
      '#title' => t('Signature'),
      '#default_value' => $edit['signature'],
      '#description' => t('Your signature will be publicly displayed at the end of your comments.'));
    return $form;
  }
}
?>

The hook has been replaced from a set of hooks, in Drupal 7

kiamlaluno - Wed, 2010-01-13 21:08

Drupal 7 doesn't use anymore hook_user(), but it uses a set of new hooks; see Converting 6.x modules to 7.x for more details.

Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.