Drupal 5 Поиск не работает на 404 страницах

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

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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам