function search_api_combined_facetapi_facet_info_alter in Search API Combined Fields 7
Implements hook_facetapi_facet_info_alter to chance the field and type of the combined facets to match the selected imitation
Parameters
array $facet_info:
array $searcher_info:
File
- ./
search_api_combined.module, line 23
Code
function search_api_combined_facetapi_facet_info_alter(array &$facet_info, array $searcher_info) {
$processor_info = search_api_get_processors();
$index = search_api_index_load($searcher_info['instance']);
$options = empty($index->options) ? array() : $index->options;
$callbacks = empty($options['data_alter_callbacks']) ? array() : $options['data_alter_callbacks'];
if (TRUE === isset($callbacks['search_api_alter_add_combined']['settings']['fields']) && 1 == $callbacks['search_api_alter_add_combined']['status']) {
foreach ($callbacks['search_api_alter_add_combined']['settings']['fields'] as $key => $combined) {
if (FALSE === empty($combined['imitate']) && TRUE === isset($facet_info[$combined['imitate']])) {
$facet_info[$key]['field type'] = $facet_info[$combined['imitate']]['field type'];
$facet_info[$key]['map options']['field'] = array_merge($facet_info[$key]['map options']['field'], $facet_info[$combined['imitate']]['map options']['field']);
}
// Carry over callback functions from facets being imitated
foreach (array(
'values callback',
'hierarchy callback',
'map callback',
'min callback',
'max callback',
) as $callback) {
if (isset($facet_info[$combined['imitate']]) && $facet_info[$key][$callback] != $facet_info[$combined['imitate']][$callback]) {
$facet_info[$key][$callback] = $facet_info[$combined['imitate']][$callback];
}
}
}
}
}