function apachesolr_multisitesearch_rebuild_facets in Apache Solr Multisite Search 6        
                          
                  
                        Same name and namespace in other branches
- 6.2 apachesolr_multisitesearch.admin.inc \apachesolr_multisitesearch_rebuild_facets()
 
 
1 call to apachesolr_multisitesearch_rebuild_facets()
  - apachesolr_multisitesearch_apachesolr_multisitesearch_facets in ./apachesolr_multisitesearch.module
 
  - Implementation of hook_apachesolr_multisitesearch_facets().
 
 
File
 
   - ./apachesolr_multisitesearch.admin.inc, line 273
 
  - Provides a multi-site search admin pages and functionality
 
Code
function apachesolr_multisitesearch_rebuild_facets() {
  $facets = array();
  $facets['type'] = array(
    'info' => t('Apache Solr Multisite Search: Filter by content type'),
    'facet_field' => 'type',
  );
  $facets['sname'] = array(
    'info' => t('Apache Solr Multisite Search: Filter by author'),
    'facet_field' => 'sname',
  );
  $facets['changed'] = array(
    'info' => t('Apache Solr Multisite Search: Filter by updated date'),
    'facet_field' => 'changed',
  );
  $facets['created'] = array(
    'info' => t('Apache Solr Multisite Search: Filter by post date'),
    'facet_field' => 'created',
  );
  $facets['hash'] = array(
    'info' => t('Apache Solr Multisite Search: Filter by site'),
    'facet_field' => 'hash',
  );
  $this_site_hash = apachesolr_site_hash();
  
  if (module_exists('taxonomy')) {
    module_load_include('inc', 'apachesolr', 'apachesolr.index');
    $data = variable_get('apachesolr_multisitesearch_metadata', array());
    $taxo = array();
    foreach ($data as $hash => $site) {
      if ($hash == $this_site_hash) {
        continue;
      }
      foreach ($site['sm_multisite_meta_taxonomy'] as $name) {
        $delta = 'sm_vid_' . $name;
        $taxo[$delta]['name'] = $name;
        $taxo[$delta]['sites'][] = $site['ss_multisite_meta_sitename'];
      }
    }
    $vocabs = taxonomy_get_vocabularies();
    foreach ($vocabs as $vid => $vocab) {
      
      $delta = 'sm_vid_' . apachesolr_vocab_name($vid);
      $name = $vocab->name;
      if (isset($taxo[$delta])) {
        $name .= t(' (this site and !sites)', array(
          '!sites' => implode(', ', $taxo[$delta]['sites']),
        ));
        unset($taxo[$delta]);
      }
      $facets[$delta] = array(
        'info' => t('Apache Solr Multisite Search: Filter by taxonomy @name', array(
          '@name' => $name,
        )),
        'facet_field' => $delta,
      );
    }
    if (variable_get('apachesolr_multisitesearch_include_remote_taxonomies', TRUE)) {
      
      foreach ($taxo as $delta => $data) {
        $name = $data['name'] . ' (' . implode(', ', $data['sites']) . ')';
        $facets[$delta] = array(
          'info' => t('Apache Solr Multisite Search: Filter by taxonomy @name', array(
            '@name' => $name,
          )),
          'facet_field' => $delta,
        );
      }
    }
  }
  cache_set('apachesolr_multisitesearch:facets', $facets, 'cache_apachesolr');
  return $facets;
}