You are here

function hs_taxonomy_views_hierarchical_select_config_info in Hierarchical Select 6.3

Same name and namespace in other branches
  1. 5.3 modules/hs_taxonomy_views.module \hs_taxonomy_views_hierarchical_select_config_info()

Implementation of hook_hierarchical_select_config_info().

File

modules/hs_taxonomy_views.module, line 574
Implementation of the Hierarchical Select API for the Taxonomy module's Views exposed filters.

Code

function hs_taxonomy_views_hierarchical_select_config_info() {
  $config_info = array();
  $views = views_get_all_views();
  foreach ($views as $view) {
    foreach (array_keys($view->display) as $display_id) {
      if (isset($view->display[$display_id]->display_options['filters']) && count($view->display[$display_id]->display_options['filters'])) {
        foreach ($view->display[$display_id]->display_options['filters'] as $filter) {
          if (isset($filter['type']) && $filter['type'] == 'hierarchical_select' && (isset($filter['table']) && $filter['table'] == 'term_node' && isset($filter['field']) && $filter['field'] == 'tid' || isset($filter['table']) && $filter['table'] == 'node' && isset($filter['field']) && $filter['field'] == 'term_node_tid_depth')) {
            $vocabulary = taxonomy_vocabulary_load($filter['vid']);
            $filter_label = !empty($filter['expose']['label']) ? $filter['expose']['label'] : t('Taxonomy: Term');
            $config_id = "taxonomy-views-{$view->name}-{$display_id}-{$filter['id']}";
            $config_info[$config_id] = array(
              'config_id' => $config_id,
              'hierarchy type' => t('Taxonomy'),
              'hierarchy' => t($vocabulary->name),
              'entity type' => t('Node'),
              'entity' => '',
              'context type' => t('Views (exposed) filter'),
              'context' => t('"!view-name" view, "!display-name" display, "!filter-label" filter', array(
                '!view-name' => $view->name,
                '!display-name' => $display_id,
                '!filter-label' => $filter_label,
              )),
              'edit link' => _hs_taxonomy_views_config_path($view->name, $display_id, $filter['id']),
            );
          }
        }
      }
    }
  }
  return $config_info;
}