Что за хитрость в том, чтобы 2 отдельных регистрации пользователя formin Drupal использовали разные шаблоны?
У меня есть форма регистрации пользователя по умолчанию, которая не может быть изменена. Однако мой босс хочет вторую регистрационную форму, которая выложена не так, как первая. Я новичок в Drupal, поэтому некоторые объяснения были бы великолепны.
заранее спасибо
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 и настраивает вывод.
Позвольте мне сэкономить ваше время, так как я только что решил это на нескольких сайтах. Проверьте формы входа здесь:
Это основная форма входа пользователя. Я переопределяю это, говоря Drupal, чтобы использовать пользовательский файл tpl для загрузки этой страницы, и в TPL я добавил дополнительные элементы и добавил в style.css.
Здесь написано, как это сделать:
http://www.lullabot.com/articles/hacking-phptemplate
На полпути показано, как работать с template.php, чтобы определить новые страницы TPL для конкретных путей.
То, что вы хотите сделать, это сказать, когда загружен 'user' или 'user / register', используйте файл tpl (вы можете назвать его). Затем вы можете работать с функциями препроцессора и добавлять на страницу, например изменять слова в верхней части или удалять определенные элементы формы. Преимущество заключается в том, что вы можете добавить все, что вы хотите, в форму регистрации пользователя через основной модуль Profile или другие модули, и они все равно будут представлены здесь.
Таким образом, это сэкономит вам много времени, вместо того, чтобы пытаться заново изобретать процесс входа пользователя в систему с помощью вашего собственного модуля (я тоже это пробовал).