Drupal HTML идентификатор пользователя - PullRequest
1 голос
/ 21 мая 2010

Я использую Drupal 6.16: мне кажется, у меня довольно простой вопрос.Как я могу получить текущий идентификатор пользователя и поместить его во вкладку меню.Я хотел бы, чтобы пользователь вошел в систему и захотел изменить свое имя, адрес электронной почты и т. Д., Чтобы перейти на вкладку меню.Я представляю, что это будет выглядеть примерно так: http://domain.com/user/{userid}/edit

Заранее спасибо!msindle

1 Ответ

2 голосов
/ 21 мая 2010

Это сложнее, чем вы думаете, потому что пункты меню кэшируются. Не существует простого способа создания динамических пунктов меню с идентификатором пользователя.

Что вы можете сделать - это написать собственный модуль и имитировать поведение пути пользователя. С помощью реализации hook_menu вы создаете пункт меню с путем 'user / edit' (точно так же как user_menu () создает $items['user']). Затем вы создаете обратный вызов меню user_edit_page(), аналогичный user_page () , который получает идентификатор текущего пользователя и возвращает страницу редактирования пользователя:

function user_edit_page() {
  global $user;
  if ($user->uid) {
    menu_set_active_item('user/'. $user->uid .'/edit');
    return menu_execute_active_handler();
  }
  else {
    return drupal_get_form('user_login');
  }
}
...