Я использую Drupal 6.16: Я думаю, что у меня есть довольно простой вопрос. Как я могу получить текущий идентификатор пользователя и поместить его во вкладку меню. То, что я хотел бы произойти, - когда пользователь входит в систему и хочет изменить их имя, электронная почта и т.д. для нажатия на вкладку меню. Я отображаю его, выглядел бы примерно так: http://domain.com/user/{идентификатор пользователя} / редактирование
Заранее спасибо! msindle
Это сложнее, чем вы думаете, потому что пункты меню кэшируются. Нет простого способа создать элементы динамического меню с идентификатором пользователя в нем.
Что вы можете сделать, так это написать собственный модуль и имитировать поведение «пользовательского» пути. При реализации 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');
}
}