facetapi_bonus.module in Facet API Bonus 7
Supply additional plugins/funtionality for facetapi
File
facetapi_bonus.moduleView source
<?php
/**
* @file
*
* Supply additional plugins/funtionality for facetapi
*/
// Integration with Page Title module.
module_load_include('inc', 'facetapi_bonus', 'facetapi_bonus.page_title');
/**
* Implements hook_facetapi_facet_info_alter().
*/
function facetapi_bonus_facetapi_facet_info_alter(&$facet_info, $searcher_info) {
foreach ($facet_info as &$facet) {
$facet['dependency plugins'][] = 'facet';
}
}
/**
* Implements hook_facetapi_dependencies().
*/
function facetapi_bonus_facetapi_dependencies() {
return array(
'facet' => array(
'handler' => array(
'label' => t('Another facet'),
'class' => 'FacetapiDependencyFacet',
),
),
);
}
/**
* Implements hook_facetapi_filters().
*/
function facetapi_bonus_facetapi_filters() {
return array(
'exclude_items' => array(
'handler' => array(
'label' => t('Exclude specified items'),
'class' => 'FacetapiFilterExcludeItems',
),
),
'rewrite_items' => array(
'handler' => array(
'label' => t('Rewrite facet items via callback function'),
'class' => 'FacetapiFilterRewriteItems',
),
),
'narrow_results' => array(
'handler' => array(
'label' => t('Do not display items that do not narrow results'),
'class' => 'FacetapiFilterNarrowResults',
),
),
'show_if_minimum_items' => array(
'handler' => array(
'label' => t('Do not show facet with only X items'),
'class' => 'FacetapiFilterShowIfMinimumItems',
),
),
'deepest_level_items' => array(
'handler' => array(
'label' => t('Show only deepest level items'),
'class' => 'FacetapiFilterShowDeepestLevelItems',
),
),
'filter_depth' => array(
'handler' => array(
'label' => t('Show items from a specific depth'),
'class' => 'FacetapiFilterShowItemsFromSpecificDepth',
),
),
'hide_if_selected' => array(
'handler' => array(
'label' => t('Do not show facet with already selected items'),
'class' => 'FacetapiFilterHideIfSelected',
),
),
);
}
/**
* Implements hook_facetapi_sort_info().
*/
function facetapi_bonus_facetapi_sort_info() {
$sorts['natural'] = array(
'label' => t('Display value (natural)'),
'callback' => 'facetapi_sort_natural',
'description' => t('Sort by the value displayed to the user in natural order.'),
);
return $sorts;
}
/**
* Implements hook_facetapi_widgets().
*/
function facetapi_bonus_facetapi_widgets() {
return array(
'facetapi_bonus' => array(
'handler' => array(
'label' => t('Select'),
'class' => 'FacetapiBonusSelect',
'query types' => array(
'term',
'date',
),
),
),
);
}
/**
* Implements hook_current_search_items().
*/
function facetapi_bonus_current_search_items() {
return array(
'reset_filters' => array(
'handler' => array(
'label' => t('Reset filters link'),
'class' => 'FacetapiBonusCurrentSearchResetFiltersLink',
),
),
);
}
/**
* Sorts by display value in natural order.
*/
function facetapi_sort_natural(array $a, array $b) {
$a_value = isset($a['#markup']) ? $a['#markup'] : '';
$b_value = isset($b['#markup']) ? $b['#markup'] : '';
return strnatcmp($a_value, $b_value);
}
/**
* Implements hook_forms().
*
* Set callbacks for select facet forms.
*/
function facetapi_bonus_forms($form_id, $args) {
$forms = array();
// Map all form IDs starting with facetapi_bonus_select_ to our callback.
if (strpos($form_id, 'facetapi_bonus_select_') === 0) {
$forms[$form_id] = array(
'callback' => 'facetapi_bonus_select',
);
}
return $forms;
}
/**
* Implements hook_theme().
*/
function facetapi_bonus_theme() {
return array(
'facetapi_bonus_select_option' => array(
'title' => NULL,
'count' => NULL,
),
);
}
/**
* Theme function for selectbox widget option.
*/
function theme_facetapi_bonus_select_option($element) {
return $element['title'] . ' (' . $element['count'] . ')';
}
Functions
Name![]() |
Description |
---|---|
facetapi_bonus_current_search_items | Implements hook_current_search_items(). |
facetapi_bonus_facetapi_dependencies | Implements hook_facetapi_dependencies(). |
facetapi_bonus_facetapi_facet_info_alter | Implements hook_facetapi_facet_info_alter(). |
facetapi_bonus_facetapi_filters | Implements hook_facetapi_filters(). |
facetapi_bonus_facetapi_sort_info | Implements hook_facetapi_sort_info(). |
facetapi_bonus_facetapi_widgets | Implements hook_facetapi_widgets(). |
facetapi_bonus_forms | Implements hook_forms(). |
facetapi_bonus_theme | Implements hook_theme(). |
facetapi_sort_natural | Sorts by display value in natural order. |
theme_facetapi_bonus_select_option | Theme function for selectbox widget option. |