hook_user

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/core.php, строка 1994

Версии
5 – 6
hook_user($op, &$edit, &$account, $category = NULL)

Выполняет действия с учётными записями пользователей.

Этот хук позволяет модулям взаимодействовать, когда выполняются операции с учётными записями пользователей.

Параметры

$op Какие действия осуществляются пользователем (например регистрация). Возможные варианты (в алфавитном порядке):

  • 'after_update': Объект пользователя обновлен и сохранен. 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': Удаление учетной записи пользователя. Модуль должен удалить свою дополнительную информацию о пользователе из базы данных.
  • 'form': Перед отображением формы учетной записи пользователя. Модуль должен представить элементы формы, которые он хотел бы вставить в форму редактирования учетной записи.
  • 'insert': Создается учетная запись пользователя. Модуль должен сохранить свои дополнительные данные в объект пользователя в базе данных и установить сохраненные значения из массива $edit в NULL.
  • 'load': Загружается учетная запись пользователя. Модуль на это может отреагировать и добавить дополнительную информацию в объект пользователя.
  • 'login': Пользователь логинится.
  • 'logout': Пользователь разлогинился.
  • 'register': Перед отображением формы регистрации учетной записи пользователя. Модуль должен представить элементы формы, которые он хотел бы вставить в форму регистрации.
  • 'submit': Событие возникает после редактирования профиля пользователя, но до сохранения изменений.
  • 'update': Изменение учетной записи пользователя. Модуль должен сохранить свои дополнительные данные в объект пользователя в базе данных и установить сохраненные значения из массива $edit в NULL.
  • 'validate': Перед изменением учетной записи пользователя. Модуль должен проверить дополнительную информацию в объекте пользователя, зарегистрировать ошибки при необходимости.
  • 'view': Отображение информации об учетной записи пользователя. Свою дополнительную информацию для отображения модуль должен приводить к формату и добавлять ее в массив $account->content.
&$edit Массив значений полей формы, введенных и переданных пользователем.

&$account Объект пользователя, с которым выполняются операции.

$category Активная категория информации о пользователе, которая редактируется.

Возвращаемое значение

Эти варианты зависят от операции.

  • 'categories': Массив ассоциативных массивов. Массивы содержат ключи:
    • 'name': Внутреннее имя категории.
    • 'title': "Человеческое" локализованное имя этой категории.
    • 'weight': Числовой идентификатор этой категории для сортировки.
    • 'access callback': Name of a menu access callback function to use when editing this category. Defaults to using user_edit_access() if not specified. See hook_menu() for more information on menu access callbacks.
    • 'access arguments': Arguments for the access callback function. Defaults to array(1) if not specified.
  • '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.

Связанные темы

▾ 2 функции вызывают hook_user()

user_delete in modules/user/user.module
Удаляет пользователя.
user_logout in modules/user/user.pages.inc
Menu callback; logs the current user out, and redirects to the home page.

Код

<?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;
  }
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему