2010-01-12 111 views
1

我想显示自定义页面作为我的搜索结果页面通过重复使用内置的搜索模块的主题功能和预处理器相同。Drupal主题()的问题

有了一个空的Drupal缓存本精美的作品。我简单地打电话

theme('search_results', $results, 'node'); 

带正确popuated结果数组,我回来格式化标记。 太好了。

但是,当缓存不清晰时,搜索模块不可用,因此theme()调用无处可用,并返回空字符串。

我试过drupal_load('module','search'),它使模块文件可用,但不初始化它的hook_theme。

回答

0

具有以下固定它:

function_exists('search_theme') or drupal_load('module','search'); 
function_exists('template_preprocess_search_results') or module_load_include('inc','search','search.pages'); 

我不喜欢,虽然它。

+0

都drupal_load和module_load_include可以运行超过一次,所以你不需要function_exists更多。还要确保你在你的模块中用搜索定义了一个依赖项。 – 2010-01-13 14:24:26