| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?php
- /**
- * @file
- * Facet API hook implementations.
- */
- /**
- * Implements hook_facetapi_realm_info().
- */
- function facetapi_facetapi_realm_info() {
- $realms = array();
- $realms['block'] = array(
- 'label' => t('Blocks'),
- 'weight' => -10,
- 'sortable' => FALSE,
- 'default widget' => 'facetapi_links',
- 'element type' => 'links',
- 'description' => t(
- 'The <em>Blocks</em> realm displays each facet in a separate <a href="@block-page">block</a>. Users are able to refine their searches in a drill-down fashion.',
- array('@block-page' => url('admin/structure/block', array('query' => array('destination' => current_path()))))
- ),
- );
- return $realms;
- }
- /**
- * Implements hook_facetapi_facet_info().
- */
- function facetapi_facetapi_facet_info($searcher_info) {
- $facets = array();
- if (isset($searcher_info['types']['node']) && $searcher_info['include default facets']) {
- $facets['bundle'] = array(
- 'label' => t('Content type'),
- 'description' => t('Filter by content type.'),
- 'field api bundles' => array('node'),
- 'map callback' => 'facetapi_map_bundle',
- 'values callback' => 'facetapi_callback_type_values',
- 'facet mincount allowed' => TRUE,
- 'dependency plugins' => array('role'),
- );
- $facets['author'] = array(
- 'label' => t('Author'),
- 'description' => t('Filter by author.'),
- 'field' => 'uid',
- 'map callback' => 'facetapi_map_author',
- 'values callback' => 'facetapi_callback_user_values',
- 'facet mincount allowed' => TRUE,
- 'dependency plugins' => array('bundle', 'role'),
- );
- $facets['language'] = array(
- 'label' => t('Language'),
- 'description' => t('Filter by language.'),
- 'field' => 'language',
- 'map callback' => 'facetapi_map_language',
- 'values callback' => 'facetapi_callback_language_values',
- 'facet mincount allowed' => TRUE,
- 'dependency plugins' => array('bundle', 'role'),
- );
- $facets['created'] = array(
- 'label' => t('Post date'),
- 'description' => t('Filter by the date the node was posted.'),
- 'query types' => array('date'),
- 'allowed operators' => array(FACETAPI_OPERATOR_AND => TRUE),
- 'map callback' => 'facetapi_map_date',
- 'min callback' => 'facetapi_get_min_date',
- 'max callback' => 'facetapi_get_max_date',
- 'dependency plugins' => array('bundle', 'role'),
- 'default sorts' => array(
- array('active', SORT_DESC),
- array('indexed', SORT_ASC),
- ),
- );
- $facets['changed'] = array(
- 'label' => t('Updated date'),
- 'description' => t('Filter by the date the node was last modified.'),
- 'query types' => array('date'),
- 'allowed operators' => array(FACETAPI_OPERATOR_AND => TRUE),
- 'map callback' => 'facetapi_map_date',
- 'min callback' => 'facetapi_get_min_date',
- 'max callback' => 'facetapi_get_max_date',
- 'dependency plugins' => array('bundle', 'role'),
- 'default sorts' => array(
- array('active', SORT_DESC),
- array('indexed', SORT_ASC),
- ),
- );
- }
- return $facets;
- }
- /**
- * Implements hook_facetapi_sort_info().
- */
- function facetapi_facetapi_sort_info() {
- $sorts = array();
- $sorts['active'] = array(
- 'label' => t('Facet active'),
- 'callback' => 'facetapi_sort_active',
- 'description' => t('Sort by whether the facet is active or not.'),
- 'weight' => -50,
- );
- $sorts['count'] = array(
- 'label' => t('Count'),
- 'callback' => 'facetapi_sort_count',
- 'description' => t('Sort by the facet count.'),
- 'weight' => -49,
- );
- $sorts['display'] = array(
- 'label' => t('Display value'),
- 'callback' => 'facetapi_sort_display',
- 'description' => t('Sort by the value displayed to the user.'),
- 'weight' => -48,
- );
- $sorts['indexed'] = array(
- 'label' => t('Indexed value'),
- 'callback' => 'facetapi_sort_indexed',
- 'description' => t('Sort by the raw value stored in the index.'),
- 'weight' => -47,
- );
- return $sorts;
- }
- /**
- * Implements hook_facetapi_widgets().
- */
- function facetapi_facetapi_widgets() {
- return array(
- 'facetapi_links' => array(
- 'handler' => array(
- 'label' => t('Links'),
- 'class' => 'FacetapiWidgetLinks',
- 'query types' => array('term', 'date'),
- ),
- ),
- 'facetapi_checkbox_links' => array(
- 'handler' => array(
- 'label' => t('Links with checkboxes'),
- 'class' => 'FacetapiWidgetCheckboxLinks',
- 'query types' => array('term', 'date'),
- ),
- ),
- );
- }
- /**
- * Implements hook_facetapi_filters().
- */
- function facetapi_facetapi_filters() {
- return array(
- 'active_items' => array(
- 'handler' => array(
- 'label' => t('Do not display active items'),
- 'class' => 'FacetapiFilterActiveItems',
- ),
- ),
- 'current_depth' => array(
- 'handler' => array(
- 'label' => t('Only show items in the current level of the hierarchy'),
- 'class' => 'FacetapiFilterCurrentDepth',
- 'requirements' => array('facetapi_requirement_facet_hierarchical' => TRUE),
- ),
- ),
- );
- }
- /**
- * Implements hook_facetapi_dependencies().
- */
- function facetapi_facetapi_dependencies() {
- return array(
- 'bundle' => array(
- 'handler' => array(
- 'label' => t('Bundles'),
- 'class' => 'FacetapiDependencyBundle',
- ),
- ),
- 'role' => array(
- 'handler' => array(
- 'label' => t('Roles'),
- 'class' => 'FacetapiDependencyRole',
- ),
- ),
- );
- }
- /**
- * Implements hook_facetapi_empty_behaviors().
- */
- function facetapi_facetapi_empty_behaviors() {
- return array(
- 'none' => array(
- 'handler' => array(
- 'label' => t('Do not display facet'),
- 'class' => 'FacetapiEmptyBehaviorNone',
- ),
- ),
- 'text' => array(
- 'handler' => array(
- 'label' => t('Display text'),
- 'class' => 'FacetapiEmptyBehaviorText',
- ),
- ),
- );
- }
- /**
- * Implements hook_facetapi_url_processors().
- */
- function facetapi_facetapi_url_processors() {
- return array(
- 'standard' => array(
- 'handler' => array(
- 'label' => t('Standard URL processors'),
- 'class' => 'FacetapiUrlProcessorStandard',
- ),
- ),
- );
- }
|