facet api:文本框过滤器

时间:2018-04-16 11:42:54

标签: drupal drupal-7

我正在寻找一种方法来为Drupal7中的facet api搜索添加文本框过滤器。我的网站有三种内容类型(A,B,C),用于搜索。

我看到我可以在管理员中激活一些过滤器 - >配置 - >搜索和元数据 - >搜索API(编辑一个然后过滤器标签),但我看不到其中一个文本。 facet api中是否有过滤器的文本字段?

目前,我使用Facet API和Drupal搜索,但问题是如果我过滤内容A并在搜索某些内容后(" Andrew"例如)它会重置过滤器并搜索所有内容。我想过滤,如果我搜索某些内容,请搜索已过滤的内容,而不是搜索新内容。

我在Google上搜索过,但我找不到解决方案。这里报告了同样的问题,有一个时间解决方案,但我想知道是否有更好的解决方案:

1 个答案:

答案 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 
}