2010-03-17 1 views
1

У меня есть <?php print $search_box; ?> на моей странице page.tpl.php. На существующих страницах поиск работает, но на 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, вы можете в форме Alter установить атрибут $form['#action'] в поисковой форме Fx на главной странице или на любой другой странице, на которую вы хотите перенаправить пользователя.

Я не проверял это, но он должен работать.

+0

Это привело меня к правильному пути. preprocess_page не имел доступа к $ form, но я смог выполнить поиск, заменив действие, если drupal_get_headers - это 404 – easement

 Смежные вопросы

  • Нет связанных вопросов^_^