Drupal 6 - 自定义登录表单的错误消息仍为空

时间:2011-04-15 17:07:54

标签: php drupal drupal-6

我正在为我的Drupal 6管理员使用garland的主题。我添加了一个名为: 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 个答案:

答案 0 :(得分:2)

用户登录表单已加载到$ content变量中。

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

我有一个类似的页面覆盖,所以我只是删除你的方法并确认错误不显示(用户字段确实突出显示红色)。我打印$ content时会显示错误。

我的猜测是它与在同一页面请求中检索到的相同表格中的2个有关。

答案 1 :(得分:1)

页面模板应该有一个预处理的消息变量:

<?php print $messages; ?>

(来自here

drupal_get_messages()在页面模板中为空,因为它已在预处理中调用,以构建$ messages变量。调用该函数时,将清除消息会话变量。

您是否将它放入您的页面模板中?