Drupal 6 - сообщение об ошибке для пользовательской формы входа остается пустым - PullRequest
0 голосов
/ 15 апреля 2011

Я использую тему гирлянды для моего администратора Drupal 6. Я добавил шаблон с именем page-user-login.tpl.php , к которому я могу получить доступ с mywebiste.com / user / login . Внутри шаблона я просто добавил:

<html ...>
<head>
  <?php print $head ?>
  <?php print $styles ?>
</head>
<body>
  <?php
    print drupal_get_form('user_login_block');
    print $messages;
  ?>
</body>
</html>

Форма входа отображается и работает правильно для существующих пользователей.

Однако, если пользователь не существует, сообщения не отображаются на странице. Я пытался использовать "theme_status_messages" и "drupal_get_messages", но они всегда пусты. Что я должен сделать, чтобы получить ответное сообщение об ошибке?

PS: я создаю пользовательскую страницу входа, потому что она требует совершенно другого дизайна, чем все остальные страницы.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Форма входа пользователя уже загружена в переменную $ content.

<?php print $content; // instead of print drupal_get_form(... ?>

У меня было похожее переопределение страницы, поэтому я просто добавил ваш метод, и подтвержденные ошибки не отображаются (поле пользователя отображаетвыделите красным хотя).Хотя при выводе $ content все равно отображаются ошибки.

Я предполагаю, что это связано с тем, что в одной и той же странице запрашивается 2 одинаковых формы.

1 голос
/ 15 апреля 2011

Шаблоны страниц должны иметь предварительно обработанную переменную для сообщений:

<?php print $messages; ?>

(из здесь )

drupal_get_messages () пуст в шаблоне страницы, потому что он былуже вызван на препроцесс, чтобы построить переменную $ messages.Когда эта функция вызывается, переменная сеанса сообщений очищается.

Вы помещаете это в свой шаблон страницы где-нибудь?

...