【问题标题】:facet api: textbox filterfacet api:文本框过滤器
【发布时间】:2018-04-16 11:42:54
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: drupal drupal-7


    【解决方案1】:

    也许您可以处理 url,从参数重构 url 以自动检查方面:

    /**
     * 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 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2014-06-09
      • 1970-01-01
      相关资源
      最近更新 更多