ВопросКак изменить системный путь user/register в Drupal?

Здравствуйте! Подскажите каким образом можно изменить системный путь, очень нужно. Через стандартные синонимы не выходит, пишет нет прав доступа, но путь user изменяет к примеру. В гугле по этому вопросу очень мало инфы. Нашел такое решение через свой модуль, но, к сожалению, оно тоже не работает или, может, я неправильно что-то делаю:

function YOURMODULE_menu_alter(&$items) {
$items['user/login']['page callback'] = 'drupal_get_form';
$items['user/login']['page arguments'] = array('user_register');
$items['user/login']['type'] = MENU_LOCAL_TASK;
}

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Ну чтобы продублировать страницу с логином, нужно в любом случае писать свой модуль. Я бы вот так рекомендовал:

function ИМЯМОДУЛЯ_menu_alter(&$items) {
  // newpath - новый урл со страницой логина
  $items['newpath'] = $items['user/login'];
  // И если вам надо закрыть страницу с логином: 
  $items['user/login']['access callback'] = FALSE;
}
18.11.2011 17:31
Аватар пользователя Max
Max написал:

Спасибо за ответ. Сейчас попробовал ваш способ. По адресу newpath выдает Доступ запрещён и по user/login аналогично. (Проверял разлогиненый)

18.11.2011 17:45
Аватар пользователя Spleshka
Spleshka написал:

А, ну да, и не должно работать :) Вот такой вариант рабочий:

function ИМЯМОДУЛЯ_menu_alter(&$items) {
  // newpath - новый урл со страницой логина
  $items['newpath'] = array(
    'title' => 'User account',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('user_login'),
    'access callback' => 'user_is_anonymous',
  );
  // И если вам надо закрыть страницу с логином: 
  $items['user/login']['access callback'] = FALSE;
}
18.11.2011 18:16
Аватар пользователя Max
Max написал:

Благодарю! Как раз то что нужно.

Страницы регистрации и напоминания пароля аналогично сделал. И еще вопрос, после смены пути пропали вкладки Вход | Регистрация | Напоминание пароля - в принципе не критично, но чтобы их, например, вернуть, нужно какой-то параметр добавить?

18.11.2011 18:56
Аватар пользователя Spleshka
Spleshka написал:

там где newpath дописать ещё один ключ 'type' => MENU_DEFAULT_LOCAL_TASK, а в остальных путях 'type' => MENU_LOCAL_TASK.

18.11.2011 21:12
Аватар пользователя Max
Max написал:

Попробовал, к сожалению не проканало.

print_r($items):

[user/login] => Array
        (
            [title] => Log in
            [access callback] => user_is_anonymous
            [type] => 136
            [module] => user
        )
 
    [user/register] => Array
        (
            [title] => Create new account
            [page callback] => drupal_get_form
            [page arguments] => Array
                (
                    [0] => user_register
                )
 
            [access callback] => user_register_access
            [type] => 128
            [file] => user.pages.inc
            [module] => user
        )
 
    [user/password] => Array
        (
            [title] => Request new password
            [page callback] => drupal_get_form
            [page arguments] => Array
                (
                    [0] => user_pass
                )
 
            [access callback] => user_is_anonymous
            [type] => 128
            [file] => user.pages.inc
            [module] => user
        )
18.11.2011 22:19
Аватар пользователя Spleshka
Spleshka написал:

несовсем понял, ты же вывел обычные урлы, не заменённые?

18.11.2011 22:28
Аватар пользователя Max
Max написал:

Сорри, тупанул:

[login] => Array
        (
            [title] => Log in
            [page callback] => drupal_get_form
            [page arguments] => Array
                (
                    [0] => user_login
                )
 
            [access callback] => user_is_anonymous
            [type] => 136
        )
 
    [register] => Array
        (
            [title] => Create new account
            [page callback] => drupal_get_form
            [page arguments] => Array
                (
                    [0] => user_register
                )
 
            [access callback] => user_is_anonymous
            [type] => 128
        )
 
    [password] => Array
        (
            [title] => Request new password
            [page callback] => drupal_get_form
            [page arguments] => Array
                (
                    [0] => user_pass
                )
 
            [access callback] => user_is_anonymous
            [type] => 128
        )
20.11.2011 22:13
Аватар пользователя Spleshka
Spleshka написал:

в данном случае вы табы не сможете сделать. Если бы у них была общая часть урла (как в базовом примере - user/), то тогда это возможно. А в случае с вашими урлами это невозможно.

20.11.2011 23:51

Комментировать