Drupal 5 Поиск не работает на 404 страницах - PullRequest
1 голос
/ 17 марта 2010

У меня есть <?php print $search_box; ?> на моей странице page.tpl.php. На существующих страницах поиск работает, а на 404 страницах - нет.

Я видел несколько веток с ошибками / патчами на drupal.org для D6.15, но ни один из них, похоже, не работал в соответствии с темой, и они не имели никакого отношения к D5.x

У меня есть теория, что, поскольку <?php print $search_box; ?> создает форму с действием для себя (несуществующей страницей), он получит 404.

Кто-нибудь сталкивался с этим? Если да, то как ты это исправил?

Одна из моих теорий заключалась в том, чтобы каким-то образом подключиться к форме и всегда выполнить действие = "/" (первая страница), которое всегда будет существовать.

Если это хорошая идея, как можно подключиться к FormAPI и перезаписать действие? Это функция предварительной обработки?

1 Ответ

2 голосов
/ 18 марта 2010
  1. В форме измените , вы можете использовать drupal_get_headers(), чтобы проверить, является ли отображаемая страница 404.
  2. Если это 404, вы можете в своей форме изменить значение атрибута $form['#action'] в форме поиска, чтобы указать первую или любую другую страницу, на которую вы хотите перенаправить пользователя.

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

...