user_menu

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

modules/user/user.module, строка 703

Версии
5
user_menu($may_cache)
6
user_menu()

Реализация hook_menu().

Код

<?php
function user_menu($may_cache) {
  global $user;

  $items = array();

  $admin_access = user_access('administer users');
  $access_access = user_access('administer access control');
  $view_access = user_access('access user profiles');

  if ($may_cache) {
    $items[] = array('path' => 'user', 'title' => t('User account'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_login'),
      'access' => !$user->uid, 'type' => MENU_CALLBACK);

    $items[] = array('path' => 'user/autocomplete', 'title' => t('User autocomplete'),
      'callback' => 'user_autocomplete', 'access' => $view_access, 'type' => MENU_CALLBACK);

    // Registration and login pages.
    $items[] = array('path' => 'user/login', 'title' => t('Log in'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_login'),
      'access' => !$user->uid, 'type' => MENU_DEFAULT_LOCAL_TASK);
    $items[] = array('path' => 'user/register', 'title' => t('Create new account'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_register'), 'access' => !$user->uid && variable_get('user_register', 1), 'type' => MENU_LOCAL_TASK);
    $items[] = array('path' => 'user/password', 'title' => t('Request new password'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_pass'), 'access' => !$user->uid, 'type' => MENU_LOCAL_TASK);
    $items[] = array('path' => 'user/reset', 'title' => t('Reset password'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_pass_reset'), 'access' => TRUE, 'type' => MENU_CALLBACK);
    $items[] = array('path' => 'user/help', 'title' => t('Help'),
      'callback' => 'user_help_page', 'type' => MENU_CALLBACK);

    // Admin user pages
    $items[] = array('path' => 'admin/user',
      'title' => t('User management'),
      'description' => t('Manage your site\'s users, groups and access to site features.'),
      'position' => 'left',
      'callback' => 'system_admin_menu_block_page',
      'access' => user_access('administer site configuration'),
    );
    $items[] = array('path' => 'admin/user/user', 'title' => t('Users'),
      'description' => t('List, add, and edit users.'),
      'callback' => 'user_admin', 'callback arguments' => array('list'), 'access' => $admin_access);
    $items[] = array('path' => 'admin/user/user/list', 'title' => t('List'),
      'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10);
    $items[] = array('path' => 'admin/user/user/create', 'title' => t('Add user'),
      'callback' => 'user_admin', 'callback arguments' => array('create'), 'access' => $admin_access,
      'type' => MENU_LOCAL_TASK);
    $items[] = array('path' => 'admin/user/settings', 'title' => t('User settings'),
      'description' => t('Configure default behavior of users, including registration requirements, e-mails, and user pictures.'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_admin_settings'));

    // Admin access pages
    $items[] = array('path' => 'admin/user/access', 'title' => t('Access control'),
      'description' => t('Determine access to features by selecting permissions for roles.'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_admin_perm'), 'access' => $access_access);
    $items[] = array('path' => 'admin/user/roles', 'title' => t('Roles'),
      'description' => t('List, edit, or add user roles.'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_admin_new_role'), 'access' => $access_access,
      'type' => MENU_NORMAL_ITEM);
    $items[] = array('path' => 'admin/user/roles/edit', 'title' => t('Edit role'),
       'callback' => 'drupal_get_form', 'callback arguments' => array('user_admin_role'), 'access' => $access_access,
      'type' => MENU_CALLBACK);
    $items[] = array('path' => 'admin/user/rules', 'title' => t('Access rules'),
      'description' => t('List and create rules to disallow usernames, e-mail addresses, and IP addresses.'),
      'callback' => 'user_admin_access', 'access' => $access_access);
    $items[] = array('path' => 'admin/user/rules/list', 'title' => t('List'),
      'access' => $access_access, 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10);
    $items[] = array('path' => 'admin/user/rules/add', 'title' => t('Add rule'),
      'callback' => 'user_admin_access_add', 'access' => $access_access,
      'type' => MENU_LOCAL_TASK);
    $items[] = array('path' => 'admin/user/rules/check', 'title' => t('Check rules'),
      'callback' => 'user_admin_access_check', 'access' => $access_access,
      'type' => MENU_LOCAL_TASK);
    $items[] = array('path' => 'admin/user/rules/edit', 'title' => t('Edit rule'),
      'callback' => 'user_admin_access_edit', 'access' => $access_access,
      'type' => MENU_CALLBACK);
    $items[] = array('path' => 'admin/user/rules/delete', 'title' => t('Delete rule'),
      'callback' => 'drupal_get_form', 'callback arguments' => array('user_admin_access_delete_confirm'),
      'access' => $access_access, 'type' => MENU_CALLBACK);

    if (module_exists('search')) {
      $items[] = array('path' => 'admin/user/search', 'title' => t('Search users'),
        'description' => t('Search users by name.'),
        'callback' => 'user_admin', 'callback arguments' => array('search'), 'access' => $admin_access,
        'type' => MENU_NORMAL_ITEM);
    }

    // Your personal page
    if ($user->uid) {
      $items[] = array('path' => 'user/'. $user->uid, 'title' => t('My account'),
        'callback' => 'user_view', 'callback arguments' => array(arg(1)), 'access' => TRUE,
        'type' => MENU_DYNAMIC_ITEM);
    }

    $items[] = array('path' => 'logout', 'title' => t('Log out'),
      'access' => $user->uid,
      'callback' => 'user_logout',
      'weight' => 10);
  }
  else {
    // Add the CSS for this module. We put this in !$may_cache so it is only
    // added once per request.
    drupal_add_css(drupal_get_path('module', 'user') .'/user.css', 'module');
    if ($_GET['q'] == 'user' && $user->uid) {
      // We want to make the current user's profile accessible without knowing
      // their uid, so just linking to /user is enough.
      drupal_goto('user/'. $user->uid);
    }

    if (arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0) {
      $account = user_load(array('uid' => arg(1)));

      if ($user !== FALSE) {
        // Always let a user view their own account
        $view_access |= $user->uid == arg(1);
        // Only admins can view blocked accounts
        $view_access &= $account->status || $admin_access;

        $items[] = array('path' => 'user/'. arg(1), 'title' => t('User'),
          'type' => MENU_CALLBACK, 'callback' => 'user_view',
          'callback arguments' => array(arg(1)), 'access' => $view_access);

        $items[] = array('path' => 'user/'. arg(1) .'/view', 'title' => t('View'),
          'access' => $view_access, 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10);

        $items[] = array('path' => 'user/'. arg(1) .'/edit', 'title' => t('Edit'),
          'callback' => 'drupal_get_form', 'callback arguments' => array('user_edit'),
          'access' => $admin_access || $user->uid == arg(1), 'type' => MENU_LOCAL_TASK);
        $items[] = array('path' => 'user/'. arg(1) .'/delete', 'title' => t('Delete'),
          'callback' => 'user_edit', 'access' => $admin_access,
          'type' => MENU_CALLBACK);

        if (arg(2) == 'edit') {
          if (($categories = _user_categories($account)) && (count($categories) > 1)) {
            foreach ($categories as $key => $category) {
              $items[] = array(
                'path' => 'user/'. arg(1) .'/edit/'. $category['name'],
                'title' => $category['title'],
                'type' => $category['name'] == 'account' ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
                'weight' => $category['weight'],
                'access' => ($admin_access || $user->uid == arg(1)));
            }
          }
        }
      }
    }
  }

  return $items;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

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