Что за хитрость в том, чтобы 2 отдельных пользователя регистрировались на formin Drupal с использованием разных шаблонов? - PullRequest
3 голосов
/ 11 июня 2010

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

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

Ответы [ 2 ]

1 голос
/ 11 июня 2010

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

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

Здесь написано, как это сделать:

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

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

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

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

1 голос
/ 11 июня 2010

Если вы создаете пользовательский модуль, вы можете определить путь для второго элемента меню, используя 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 и настраивает вывод.

...