В чем хитрость иметь 2 отдельных регистрационных формы пользователя в Drupal с использованием разных шаблонов?

У меня есть форма регистрации пользователя по умолчанию, которую нельзя изменить. Однако мой босс хочет, чтобы вторая регистрационная форма была оформлена иначе, чем первая. Я новичок в Drupal, поэтому некоторые объяснения были бы замечательными.

заранее спасибо


person user363036    schedule 11.06.2010    source источник
comment
Как вы думаете, вы могли бы получить макет, который вы хотели получить для альтернативной формы, используя только CSS? Или вам нужно будет внести фундаментальные изменения?   -  person Andrew    schedule 11.06.2010


Ответы (2)


Если вы создаете пользовательский модуль, вы можете определить путь для второго пункта меню, используя hook_menu().

function user_menu() {
  $items['user/custom_register'] = array(
   'title' => 'Create new account',
   'page callback' => 'drupal_get_form',
   'page arguments' => array('user_register'),
   'access callback' => 'user_register_access',
   'type' => MENU_LOCAL_TASK,
   'file' => 'user.pages.inc',
   );
   return $items;
 }

Конечно, это не будет отличаться от вашей существующей формы, просто это будет другой путь.

Чтобы настроить форму, у вас есть несколько вариантов, вы можете использовать hook_form_alter() и проверить путь. Или вы можете изменить аргумент page arguments выше на что-то, что вызывает user_register и настраивает вывод.

person Jeremy French    schedule 11.06.2010

Позвольте мне сэкономить ваше время, так как я только что решил это на нескольких сайтах. Ознакомьтесь с формами входа здесь:

Это основная форма входа пользователя. Я переопределяю это, говоря Drupal использовать собственный файл tpl для загрузки этой страницы, а в TPL я добавляю дополнительные элементы и добавляю их в style.css.

О том, как это сделать, написано здесь:

http://www.lullabot.com/articles/hacking-phptemplate

На полпути показано, как работать с template.php для определения новых tpl-страниц для определенных путей.

Что вы хотите сделать, так это сказать, что когда загружается «пользователь» или «пользователь/регистр», используйте файл tpl (вы можете назвать его). Затем вы можете работать с функциями препроцессора и добавлять на страницу, например, изменять слова наверху или удалять определенные элементы формы. Преимущество заключается в том, что вы можете добавить все, что хотите, в форму регистрации пользователя через основной модуль «Профиль» или другие модули, и они по-прежнему будут представлены здесь.

Таким образом, вы сэкономите много времени вместо того, чтобы пытаться заново изобретать процесс входа пользователя в систему с помощью собственного модуля (я тоже пробовал это).

person Kevin    schedule 11.06.2010