Изменить размер окна входа пользователя / пароля - PullRequest
2 голосов
/ 14 ноября 2009

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

Я надеюсь, что это решение CSS. Вы можете увидеть сайт из первых рук на Innovatefort завтра [точка] org и мой скриншот firebug http://www.jonrwilson.com/user-login-form.png (у меня недостаточно очков репутации, чтобы прикрепить изображение или две гиперссылки).

Спасибо!

прочитайте это тоже! Это альтернативный ответ!

Ответы [ 3 ]

6 голосов
/ 14 ноября 2009

Хорошо ... вы собираетесь ввести одну из самых захватывающих и сложных функций Drupal: API формы или - для краткости - FAPI. Сначала немного теории, а потом решение! :)

Все формы в Drupal создаются функцией drupal_get_form(), которая принимает массив в качестве параметра. Каждое поле в массиве является в основном полем вашей формы, и у каждого поля есть ряд свойств, каждое из которых определяет дополнительные характеристики поля, например, его значение по умолчанию, если оно является обязательным или необязательным, и - да - в случае текстовых полей ... насколько они должны быть большими! Вы можете найти подробное объяснение структуры массивов форм здесь на сайте drupal .

Прелесть API формы в том, что функция, которая визуализирует форму, вызывает несколько хуков в различные моменты в процессе ее построения, поэтому вы можете реализовать эти хуки для того, чтобы «изменить» форму перед ее финализацией и отправкой в браузер.

Наиболее распространенными крючками для изменения формы являются hook_form_alter() и hook_form_FORM_ID_alter(). Первый выполняется для любой формы, обрабатываемой движком drupal, последний - только для конкретной формы с именем «FORM_ID». Я не буду вдаваться в подробности внутренней работы API формы, но здесь вы можете прочитать подробнее .

Что касается вашего конкретного случая, я предполагаю, что вы используете стандартную «пользовательскую блокировку», поставляемую с Drupal. В этом случае я предлагаю вам реализовать hook_form_FORM_ID_alter() в форме, подобной этой:

mymodule_form_user_login_block_alter(&$form, $form_state) {
  $form['pass']['#size'] = 43;
}

Надеюсь, это поможет! :)

0 голосов
/ 21 апреля 2011

Вот способ создать тему для формы входа пользователя в drupal 6 с функцией предварительной обработки в файле шаблона, а не в модуле.

в template.php вставьте этот код:

function yourThemename_preprocess_user_login(&$variables) {
  $variables['form']['name']['#size'] = 15;
  $variables['form']['pass']['#size'] = 15;
  $variables['rendered'] = drupal_render($variables['form']);
}

создайте новый файл user-login.tpl.php (если его там еще нет) и просто вставьте его:

<?php print $rendered; // this variable is defined in the preprocess function user_login and print the login form ?>

Не забудьте очистить кэш темы или системный кеш в настройках производительности.

0 голосов
/ 14 ноября 2009

Я думаю, что в этом случае вам нужно перейти к вашему html (или tpl), а не к css файлу, чтобы отредактировать его.

Одним быстрым способом является поиск соответствующей строки (т. Е. size="43" name="name" и т. Д.), Чтобы найти правильную деталь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...