| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | CRAP |  | 0.00% | 0 / 212 | 
| TermViewsData |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 212 | 
| getViewsData |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 212 | |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\taxonomy\TermViewsData. | |
| */ | |
| namespace Drupal\taxonomy; | |
| use Drupal\views\EntityViewsData; | |
| /** | |
| * Provides the views data for the taxonomy entity type. | |
| */ | |
| class TermViewsData extends EntityViewsData { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getViewsData() { | |
| $data = parent::getViewsData(); | |
| $data['taxonomy_term_field_data']['table']['base']['help'] = t('Taxonomy terms are attached to nodes.'); | |
| $data['taxonomy_term_field_data']['table']['base']['access query tag'] = 'term_access'; | |
| $data['taxonomy_term_field_data']['table']['wizard_id'] = 'taxonomy_term'; | |
| $data['taxonomy_term_field_data']['table']['join'] = array( | |
| // This is provided for the many_to_one argument. | |
| 'taxonomy_index' => array( | |
| 'field' => 'tid', | |
| 'left_field' => 'tid', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['tid']['help'] = t('The tid of a taxonomy term.'); | |
| $data['taxonomy_term_field_data']['tid']['argument']['id'] = 'taxonomy'; | |
| $data['taxonomy_term_field_data']['tid']['argument']['name field'] = 'name'; | |
| $data['taxonomy_term_field_data']['tid']['argument']['zero is null'] = TRUE; | |
| $data['taxonomy_term_field_data']['tid']['filter']['id'] = 'taxonomy_index_tid'; | |
| $data['taxonomy_term_field_data']['tid']['filter']['title'] = t('Term'); | |
| $data['taxonomy_term_field_data']['tid']['filter']['help'] = t('Taxonomy term chosen from autocomplete or select widget.'); | |
| $data['taxonomy_term_field_data']['tid']['filter']['hierarchy table'] = 'taxonomy_term_hierarchy'; | |
| $data['taxonomy_term_field_data']['tid']['filter']['numeric'] = TRUE; | |
| $data['taxonomy_term_field_data']['tid_raw'] = array( | |
| 'title' => t('Term ID'), | |
| 'help' => t('The tid of a taxonomy term.'), | |
| 'real field' => 'tid', | |
| 'filter' => array( | |
| 'id' => 'numeric', | |
| 'allow empty' => TRUE, | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['tid_representative'] = array( | |
| 'relationship' => array( | |
| 'title' => t('Representative node'), | |
| 'label' => t('Representative node'), | |
| 'help' => t('Obtains a single representative node for each term, according to a chosen sort criterion.'), | |
| 'id' => 'groupwise_max', | |
| 'relationship field' => 'tid', | |
| 'outer field' => 'taxonomy_term_field_data.tid', | |
| 'argument table' => 'taxonomy_term_field_data', | |
| 'argument field' => 'tid', | |
| 'base' => 'node_field_data', | |
| 'field' => 'nid', | |
| 'relationship' => 'node_field_data:term_node_tid' | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['vid']['help'] = t('Filter the results of "Taxonomy: Term" to a particular vocabulary.'); | |
| unset($data['taxonomy_term_field_data']['vid']['field']); | |
| unset($data['taxonomy_term_field_data']['vid']['argument']); | |
| unset($data['taxonomy_term_field_data']['vid']['sort']); | |
| $data['taxonomy_term_field_data']['name']['field']['id'] = 'term_name'; | |
| $data['taxonomy_term_field_data']['name']['argument']['many to one'] = TRUE; | |
| $data['taxonomy_term_field_data']['name']['argument']['empty field name'] = t('Uncategorized'); | |
| $data['taxonomy_term_field_data']['description__value']['field']['click sortable'] = FALSE; | |
| $data['taxonomy_term_field_data']['changed']['title'] = t('Updated date'); | |
| $data['taxonomy_term_field_data']['changed']['help'] = t('The date the term was last updated.'); | |
| $data['taxonomy_term_field_data']['changed_fulldate'] = array( | |
| 'title' => t('Updated date'), | |
| 'help' => t('Date in the form of CCYYMMDD.'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_fulldate', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['changed_year_month'] = array( | |
| 'title' => t('Updated year + month'), | |
| 'help' => t('Date in the form of YYYYMM.'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_year_month', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['changed_year'] = array( | |
| 'title' => t('Updated year'), | |
| 'help' => t('Date in the form of YYYY.'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_year', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['changed_month'] = array( | |
| 'title' => t('Updated month'), | |
| 'help' => t('Date in the form of MM (01 - 12).'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_month', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['changed_day'] = array( | |
| 'title' => t('Updated day'), | |
| 'help' => t('Date in the form of DD (01 - 31).'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_day', | |
| ), | |
| ); | |
| $data['taxonomy_term_field_data']['changed_week'] = array( | |
| 'title' => t('Updated week'), | |
| 'help' => t('Date in the form of WW (01 - 53).'), | |
| 'argument' => array( | |
| 'field' => 'changed', | |
| 'id' => 'date_week', | |
| ), | |
| ); | |
| $data['taxonomy_index']['table']['group'] = t('Taxonomy term'); | |
| $data['taxonomy_index']['table']['join'] = array( | |
| 'taxonomy_term_field_data' => array( | |
| // links directly to taxonomy_term_field_data via tid | |
| 'left_field' => 'tid', | |
| 'field' => 'tid', | |
| ), | |
| 'node_field_data' => array( | |
| // links directly to node via nid | |
| 'left_field' => 'nid', | |
| 'field' => 'nid', | |
| ), | |
| 'taxonomy_term_hierarchy' => array( | |
| 'left_field' => 'tid', | |
| 'field' => 'tid', | |
| ), | |
| ); | |
| $data['taxonomy_index']['nid'] = array( | |
| 'title' => t('Content with term'), | |
| 'help' => t('Relate all content tagged with a term.'), | |
| 'relationship' => array( | |
| 'id' => 'standard', | |
| 'base' => 'node', | |
| 'base field' => 'nid', | |
| 'label' => t('node'), | |
| 'skip base' => 'node', | |
| ), | |
| ); | |
| // @todo This stuff needs to move to a node field since really it's all | |
| // about nodes. | |
| $data['taxonomy_index']['tid'] = array( | |
| 'group' => t('Content'), | |
| 'title' => t('Has taxonomy term ID'), | |
| 'help' => t('Display content if it has the selected taxonomy terms.'), | |
| 'argument' => array( | |
| 'id' => 'taxonomy_index_tid', | |
| 'name table' => 'taxonomy_term_field_data', | |
| 'name field' => 'name', | |
| 'empty field name' => t('Uncategorized'), | |
| 'numeric' => TRUE, | |
| 'skip base' => 'taxonomy_term_field_data', | |
| ), | |
| 'filter' => array( | |
| 'title' => t('Has taxonomy term'), | |
| 'id' => 'taxonomy_index_tid', | |
| 'hierarchy table' => 'taxonomy_term_hierarchy', | |
| 'numeric' => TRUE, | |
| 'skip base' => 'taxonomy_term_field_data', | |
| 'allow empty' => TRUE, | |
| ), | |
| ); | |
| $data['taxonomy_index']['status'] = [ | |
| 'title' => t('Publish status'), | |
| 'help' => t('Whether or not the content related to a term is published.'), | |
| 'filter' => [ | |
| 'id' => 'boolean', | |
| 'label' => t('Published status'), | |
| 'type' => 'yes-no', | |
| ], | |
| ]; | |
| $data['taxonomy_index']['sticky'] = [ | |
| 'title' => t('Sticky status'), | |
| 'help' => t('Whether or not the content related to a term is sticky.'), | |
| 'filter' => [ | |
| 'id' => 'boolean', | |
| 'label' => t('Sticky status'), | |
| 'type' => 'yes-no', | |
| ], | |
| 'sort' => [ | |
| 'id' => 'standard', | |
| 'help' => t('Whether or not the content related to a term is sticky. To list sticky content first, set this to descending.'), | |
| ], | |
| ]; | |
| $data['taxonomy_index']['created'] = [ | |
| 'title' => t('Post date'), | |
| 'help' => t('The date the content related to a term was posted.'), | |
| 'sort' => [ | |
| 'id' => 'date' | |
| ], | |
| 'filter' => [ | |
| 'id' => 'date', | |
| ], | |
| ]; | |
| $data['taxonomy_term_hierarchy']['table']['group'] = t('Taxonomy term'); | |
| $data['taxonomy_term_hierarchy']['table']['provider'] = 'taxonomy'; | |
| $data['taxonomy_term_hierarchy']['table']['join'] = array( | |
| 'taxonomy_term_hierarchy' => array( | |
| // Link to self through left.parent = right.tid (going down in depth). | |
| 'left_field' => 'tid', | |
| 'field' => 'parent', | |
| ), | |
| 'taxonomy_term_field_data' => array( | |
| // Link directly to taxonomy_term_field_data via tid. | |
| 'left_field' => 'tid', | |
| 'field' => 'tid', | |
| ), | |
| ); | |
| $data['taxonomy_term_hierarchy']['parent'] = array( | |
| 'title' => t('Parent term'), | |
| 'help' => t('The parent term of the term. This can produce duplicate entries if you are using a vocabulary that allows multiple parents.'), | |
| 'relationship' => array( | |
| 'base' => 'taxonomy_term_field_data', | |
| 'field' => 'parent', | |
| 'label' => t('Parent'), | |
| 'id' => 'standard', | |
| ), | |
| 'filter' => array( | |
| 'help' => t('Filter the results of "Taxonomy: Term" by the parent pid.'), | |
| 'id' => 'numeric', | |
| ), | |
| 'argument' => array( | |
| 'help' => t('The parent term of the term.'), | |
| 'id' => 'taxonomy', | |
| ), | |
| ); | |
| return $data; | |
| } | |
| } |