Темплэйт для логина

Главные вкладки

Аватар пользователя dbzer0 dbzer0 12 февраля 2007 в 5:17

Всем привет.

Вот хотелось бы изменить немного отображения блока с логином и пассвордом. И подумалось: ведь есть темплейт для бокса, для комментов, для поиска, а есть ли темплейт для него? Если есть, то хотелось бы увидеть пример.

Заранее спасибо за ответ Smile

Комментарии

Аватар пользователя Toologic Toologic 12 февраля 2007 в 10:52

Можно сделать так
1. в template.php своей темы добавляешь переопределение функции

function phptemplate_user_login($form) {
// Например убрать дексрипшн у полей имя, пароль
  $form['pass']['#description'] = '';
  $form['name']['#description'] = '';
  //Свое название кнопки:
  $form['submit']['#value'] = 'Заходи';
  return _phptemplate_callback('user_login', array('form' => $form));
}

Далее в каталоге своей темы (theme/имя_шаблона/) создаешь файл с именем user_login.php, который может содержать, например:

<div id="user_login">
<?php
    print_r(drupal_render($form['name']));
    print_r(drupal_render($form['pass']));
    print_r(drupal_render($form));
?>
</div>

Примечание: вызов drupal_render() - для drupal5, для 4х - form_render()
или полностью переписанный (дополненный) код функции theme_user_login

И наконец в style.css можно определить:

#user_login *{
  display: inline;  // для вывода  всех элементов формы в одну строку
}

Все вышеописанное найдено на drupal.org. Если там покопаться - найдется всё! Но времени отнимает оч. много

Успехов...

Еще дополнение:
Есть маленький скрипт, который выдает полный список функций theme_*():

<?php
 print '<ol>';
  $functions = get_defined_functions();
  foreach($functions['user'] as $function) {
   if(substr($function,0,6)== 'theme_')
    print "<li>$function</li>";
  }
  print '</ol>';
?>

И которые можно переопределить вышеописанным образом. Правда есть и другие пути...
На самом деле чем больше внедряюсь в код drupal тем более он мне нравится. Сделать можно все что угодно. Были бы желание и знания php.
Первого у меня не занимать - вот со вторым промашка вышла

Мой сайт на drupal - www.travelweekly.ru

Аватар пользователя koyra koyra (не проверено) 3 марта 2007 в 23:40

скажите пожалуйста где расположен файл template.php ??
использую drupal 4.7. Или этот файл создается? Если да то где он должен быть?

Аватар пользователя dRiveR dRiveR 13 февраля 2007 в 15:08

Только маленькая поправочка, файл темплейта должен называться не user_login.php, а user_login.tpl.php. (исправлено)

Аватар пользователя RISK RISK 4 марта 2007 в 0:42

Если не так кардинально, то можно использовать файл style.css в папке темы.
Например «изменить немного отображения блока с логином и пассвордом» можно добавив строчки:

#user-login-form {
  font: 170% "Times";
  color: green;
  font-weight: bold;
  text-decoration: blink;
  background-color: red;
   line-height: 130%;
  padding: 0 0 .2em 1.5em;
  border: 1em solid black;
  border-top: 1em solid yellow;
  border-bottom: 1em solid yellow;
}