Темизация формы регистрации и входа Drupal 7

Темизировать формы входа и регистрации можно используя хук hook_form_alter.

Тут я привожу пример переопределения. В примере только нужно заменить моя_тема на название свой темы.

Более подробно о хуке hook_form_alter  можно почитать перейдя по ссылке выше.

function моя_тема_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'user_register_form':
      $form['account']['name']['#title'] = t('Имя пользователя:');
      $form['account']['name']['#description'] = t('');
      $form['account']['mail']['#title'] = t('Ваш Email:');
      $form['account']['mail']['#description'] = t('');
      $form['actions']['submit']['#value'] = t('Register');
    break;
    case 'user_login_form':
    case 'user_login_block':
    case 'user_login':
      $form['name'] = array(
        '#type' => 'textfield',
        '#title' => t('Имя пользователя::'),
        '#description' => t(''),
        '#maxlength' => USERNAME_MAX_LENGTH,
        '#size' => 15,
        '#required' => TRUE,
      );
      $form['pass'] = array(
        '#type' => 'password',
        '#title' => t('Пароль:'),
        '#description' => t(''),
        '#maxlength' => 60,
        '#size' => 15,
        '#required' => TRUE,
      );
      $form['actions']['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Вход')
      );
      $items = array();    // Create Account & Forgotten Password
      $form['links'] = array(
        array('#markup' => theme('item_list', array('items' => $items))),
        '#weight' => 0,
      );            
    break;
  }
}

 

Евгенй 26 мая, 2016

>$form['account']['mail']['#description'] = t('');
непонятно, зачем пустое значение оборачивать в t(),
да и удалять поля правильнее используя unset() - http://www.php.net/manual/ru/function.unset.php

>$form['account']['name']['#title'] = t('Имя пользователя:');
В t() нельзя использовать язык отличный от английского:

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

Оставить комментарий

Похожие материалы