【问题标题】:Drupal 5 Search not working on 404 pagesDrupal 5 搜索在 404 页面上不起作用
【发布时间】:2010-03-17 17:30:27
【问题描述】:

我的 page.tpl.php 页面中有一个<?php print $search_box; ?>。在存在的页面上,搜索有效,但在 404 页面上,搜索无效。

我在 drupal.org 上看到了一些针对 D6.15 的错误/补丁线程,但它们似乎都没有根据线程工作,并且它们与 D5.x 并不真正相关

我有一个理论,因为<?php print $search_box; ?> 创建了一个对自身有操作的表单(一个不存在的页面),它会得到 404。

有人反对吗?如果是这样,您是如何解决的?

我的一个理论是以某种方式进入表单并始终使 action="/"(首页)始终存在。

如果这是一个好主意,如何利用 FormAPI 并覆盖操作?是预处理函数吗?

【问题讨论】:

    标签: php drupal search preprocessor drupal-5


    【解决方案1】:
    1. form alter 中,您可以使用drupal_get_headers() 检查显示的页面是否为404。
    2. 如果是 404,您可以在您的表单中更改设置搜索表单中的 $form['#action'] 属性以修复首页或您希望将用户重定向到的任何其他页面。

    我没有对此进行测试,但它应该可以工作。

    【讨论】:

    • 这让我走上了正确的道路。 preprocess_page 无权访问 $form,但如果 drupal_get_headers 是 404,我可以搜索替换操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多