2010-03-17 34 views
1

我在我的page.tpl.php頁面有一個<?php print $search_box; ?>。在存在的頁面上,搜索起作用,但是在404頁上,它沒有。Drupal 5搜索不工作404頁

我看到一些錯誤/補丁在drupal.org線程過的D6.15,但他們都不根據線程工作,他們不是真正相關的D5.x

我有一個理論認爲,因爲<?php print $search_box; ?>創建一個表單與自己的行動(一個不存在的頁面),它會得到404.

有人碰到過這個?如果是這樣,你是如何解決它的?

我的一個理論是以某種方式敲入表單,並始終使動作=「/」(首頁),這將始終存在。

如果這是一個好主意,那麼如何才能進入FormAPI並覆蓋操作?它是一個預處理函數嗎?

回答

2
  1. form alter你可以使用drupal_get_headers()檢查是否正在顯示的頁面是404
  2. 如果是404,你可以在你的形式改變設置$form['#action']屬性在你的搜索形式的外匯首頁或您想要將用戶重定向到的任何其他頁面。

我沒有測試過這個,但它應該工作。

+0

這讓我走上了正確的道路。 preprocess_page無法訪問$ form,但是我能夠搜索替換操作,如果drupal_get_headers是404 – easement 2010-03-19 12:05:27