我正在寻找一种方法来为Drupal7中的facet api搜索添加文本框过滤器。我的网站有三种内容类型(A,B,C),用于搜索。
我看到我可以在管理员中激活一些过滤器 - >配置 - >搜索和元数据 - >搜索API(编辑一个然后过滤器标签),但我看不到其中一个文本。 facet api中是否有过滤器的文本字段?
目前,我使用Facet API和Drupal搜索,但问题是如果我过滤内容A并在搜索某些内容后(" Andrew"例如)它会重置过滤器并搜索所有内容。我想过滤,如果我搜索某些内容,请搜索已过滤的内容,而不是搜索新内容。
我在Google上搜索过,但我找不到解决方案。这里报告了同样的问题,有一个时间解决方案,但我想知道是否有更好的解决方案:
答案 0 :(得分:0)
也许您可以处理网址,从参数重建网址以自动检查方面:
/**
* Implements hook_facetapi_searcher_info().
*
* @see hook_facetapi_searcher_info_alter()
*/
function MYMODULE_facetapi_searcher_info_alter(array &$searcher_info)
{
foreach ($searcher_info as $key => $value) {
if ($value['url processor'] == 'pretty_paths') {
$searcher_info[$key]['url processor'] = 'mymodule_urlprocessor';
}
}
}
/**
* Implements hook_facetapi_url_processors().
*
* @see hook_facetapi_url_processors()
*/
function MYMODULE_facetapi_url_processors()
{
return array(
'mymodule_urlprocessor' => array(
'handler' => array(
'label' => t('My URL processor'),
'class' => 'FacetapiUrlProcessorMyModule',
),
),
);
}
class FacetapiUrlProcessorMyModule extends FacetapiUrlProcessorPrettyPaths {
// overrides methods to construct url
}