Как добавить текст в форму регистрации пользователя?


Я использовал модуль Переопределения строк , чтобы изменить несколько текстовых полей в форме user/register. Я нашел этот подход простым и эффективным.

Однако я хочу вставить текст под заголовком "Учетная запись пользователя", но над полем "Электронная почта". Просто немного общей информации о регистрации. К сожалению, в настоящее время там нет текста, поэтому я не могу использовать "Переопределения строк". Есть ли простой способ добавить текст? Я не хочу создавать вся пользовательская форма регистрации и изобретение колеса, я просто хочу добавить немного текста в существующую форму.

 4
Author: Patrick Kenny, 2012-05-01

4 answers

Если вы не хотите писать свой собственный пользовательский модуль, вы можете использовать модуль Группа полей. Включите модуль и на вкладке Manage fields для пользователей добавьте Fieldset, а затем задайте для описания любой текст/HTML, который вам нравится. После этого просто перетащите его в то место, где вы хотите, чтобы он появился.

 2
Author: Patrick Kenny, 2012-05-01 04:57:27

Вы можете использовать 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;  
    }  
  }

Ссылка на API формы

Также вы можете попробовать 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,
  );
}
 9
Author: niksmac, 2013-03-07 03:19:36

'#тип'=> 'элемент' не будет использовать атрибут #значение, его следует изменить на #разметка

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){...

 2
Author: Dan D, 2013-03-06 23:24:33

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

 0
Author: yorkshirepudding, 2013-03-17 16:22:54