簡體   English   中英

Drupal - 搜索顯示 preg_match 錯誤

[英]Drupal - Search showing preg_match error

我在 Drupal 中構建的網站之一中正在進行自定義搜索。 當“在每個頁面上重建主題注冊表”時,搜索工作得非常好。 在主題配置頁面上選中復選框。 但是,當我取消選中它(用於生產)時,搜索不再起作用,同一頁面只是在點擊搜索按鈕時重新加載。 在查看最近的日志條目時,我發現了錯誤:preg_match() 期望參數 2 是字符串,數組在第 671 行的 /var/www/devel_sites/SITENAME/docroot/modules/search/search.module 中給出。

有人知道為什么我的搜索將取決於主題注冊表以及如何解決這個問題嗎? 我有一個用於搜索的自定義模塊,部分功能在 template.php 中。

任何提示表示贊賞,謝謝。

如果不發布代碼(因為代碼是自定義的),我認為沒有人可以滿意地回答您的問題。 但是,如果您不介意修改模塊代碼,只需在第 671 行之前執行一個is_array條件,如果是,則內implode這些術語(或檢查它並刪除任何垃圾。)將該字符串傳遞到第 671 行。

我(終於)能夠解決這個問題,我將在下面發布解決方案,以防其他人面臨同樣的問題。

我首先將所有功能邏輯從 template.php 移動到我的自定義模塊(無論如何我都應該這樣做,這似乎是個問題)但它沒有解決它。 我不得不挖掘我的自定義模塊代碼,這就是我發現問題所在。 我正在使用以下內容來獲取輸入的關鍵字:

$form_state['values']['processed_keys']

事實證明,當 Rebuild Theme 注冊表選項被關閉時,上面的數組值被主題注冊表覆蓋並被一個空數組替換,因此導致搜索模塊的第 671 行出現錯誤,該模塊期望字符串為第二個參數,而不是數組。 用下面的替換上面的為我解決了它:

$form['basic']['inline']['processed_keys']['#post']['keys']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM