Как добавить текст в форму регистрации пользователя?
Я использовал модуль Переопределения строк , чтобы изменить несколько текстовых полей в форме user/register
. Я нашел этот подход простым и эффективным.
Однако я хочу вставить текст под заголовком "Учетная запись пользователя", но над полем "Электронная почта". Просто немного общей информации о регистрации. К сожалению, в настоящее время там нет текста, поэтому я не могу использовать "Переопределения строк". Есть ли простой способ добавить текст? Я не хочу создавать вся пользовательская форма регистрации и изобретение колеса, я просто хочу добавить немного текста в существующую форму.
4 answers
Если вы не хотите писать свой собственный пользовательский модуль, вы можете использовать модуль Группа полей. Включите модуль и на вкладке Manage fields
для пользователей добавьте Fieldset
, а затем задайте для описания любой текст/HTML, который вам нравится. После этого просто перетащите его в то место, где вы хотите, чтобы он появился.
Вы можете использовать hook_form_alter
вот так.
function MODULENAME_form_alter(&$form, &$form_state, $form_id){
switch($form_id) {
case 'user_register_form': // the value we stole from the rendered form
$form['cutomtext'] = array(
'#type' => 'item',
'#markup' => '<div > Your text goes here... </div>',
'#weight' => 1, // Adjust so that you can place it whereever
);
break;
}
}
Также вы можете попробовать hook_form_FORM_ID_alter
Использование:
function hook_form_FORM_ID_alter(&$form, &$form_state, $form_id) {
// Modification for the form with the given form ID goes here. For example, if
// FORM_ID is "user_register_form" this code would run only on the user
// registration form.
// Add a checkbox to registration form about agreeing to terms of use.
$form['terms_of_use'] = array(
'#type' => 'checkbox',
'#title' => t("I agree with the website's terms and conditions."),
'#required' => TRUE,
);
}
'#тип'=> 'элемент' не будет использовать атрибут #значение, его следует изменить на #разметка
function MODULENAME_form_alter(&$form, &$form_state, $form_id){
switch($form_id) {
case 'user_register_form': // the value we stole from the rendered form
$form['cutomtext'] = array(
'#type' => 'item',
'#markup' => '<div > Your text goes here... </div>',
'#weight' => 1, // Adjust so that you can place it whereever
);
break;
}
}
Вы также можете разместить его в своей теме template.php файл. В этом случае первая строка изменяется на функцию THEME_form_alter(&$form, &$form_state, $form_id){...
Возможно, немного поздно для операции, так как у него есть другое решение, но для любого, кто найдет эту страницу в Google, гораздо более простой способ - создать новый блок с требуемым текстом и просто настроить его так, чтобы он отображался в верхней части основного раздела или на боковой панели. Это не помещает его между именем пользователя и адресом электронной почты, но требует меньше кода для реализации