Issue #2658956 by Daniel_Rempe, Lendude, mikeker, catch, Jeff Cardwell, tstoeckler, hctom, dawehner, alexpott: Taxonomy vocabulary data not available as views fields
parent
252f7ffcf2
commit
4dc2f4aea8
|
@ -66,7 +66,7 @@ class TermViewsData extends EntityViewsData {
|
||||||
];
|
];
|
||||||
|
|
||||||
$data['taxonomy_term_field_data']['vid']['help'] = $this->t('Filter the results of "Taxonomy: Term" to a particular vocabulary.');
|
$data['taxonomy_term_field_data']['vid']['help'] = $this->t('Filter the results of "Taxonomy: Term" to a particular vocabulary.');
|
||||||
unset($data['taxonomy_term_field_data']['vid']['field']);
|
$data['taxonomy_term_field_data']['vid']['field']['help'] = t('The vocabulary name.');
|
||||||
$data['taxonomy_term_field_data']['vid']['argument']['id'] = 'vocabulary_vid';
|
$data['taxonomy_term_field_data']['vid']['argument']['id'] = 'vocabulary_vid';
|
||||||
unset($data['taxonomy_term_field_data']['vid']['sort']);
|
unset($data['taxonomy_term_field_data']['vid']['sort']);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,163 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- taxonomy
|
||||||
|
- user
|
||||||
|
id: test_taxonomy_vid_field
|
||||||
|
label: test_taxonomy_vid_field
|
||||||
|
module: views
|
||||||
|
description: ''
|
||||||
|
tag: ''
|
||||||
|
base_table: taxonomy_term_field_data
|
||||||
|
base_field: tid
|
||||||
|
core: 8.x
|
||||||
|
display:
|
||||||
|
default:
|
||||||
|
display_plugin: default
|
||||||
|
id: default
|
||||||
|
display_title: Master
|
||||||
|
position: 0
|
||||||
|
display_options:
|
||||||
|
access:
|
||||||
|
type: perm
|
||||||
|
options:
|
||||||
|
perm: 'access content'
|
||||||
|
cache:
|
||||||
|
type: tag
|
||||||
|
options: { }
|
||||||
|
query:
|
||||||
|
type: views_query
|
||||||
|
options:
|
||||||
|
disable_sql_rewrite: false
|
||||||
|
distinct: false
|
||||||
|
replica: false
|
||||||
|
query_comment: ''
|
||||||
|
query_tags: { }
|
||||||
|
exposed_form:
|
||||||
|
type: basic
|
||||||
|
options:
|
||||||
|
submit_button: Apply
|
||||||
|
reset_button: false
|
||||||
|
reset_button_label: Reset
|
||||||
|
exposed_sorts_label: 'Sort by'
|
||||||
|
expose_sort_order: true
|
||||||
|
sort_asc_label: Asc
|
||||||
|
sort_desc_label: Desc
|
||||||
|
pager:
|
||||||
|
type: full
|
||||||
|
options:
|
||||||
|
items_per_page: 10
|
||||||
|
offset: 0
|
||||||
|
id: 0
|
||||||
|
total_pages: null
|
||||||
|
expose:
|
||||||
|
items_per_page: false
|
||||||
|
items_per_page_label: 'Items per page'
|
||||||
|
items_per_page_options: '5, 10, 25, 50'
|
||||||
|
items_per_page_options_all: false
|
||||||
|
items_per_page_options_all_label: '- All -'
|
||||||
|
offset: false
|
||||||
|
offset_label: Offset
|
||||||
|
tags:
|
||||||
|
previous: '‹ Previous'
|
||||||
|
next: 'Next ›'
|
||||||
|
first: '« First'
|
||||||
|
last: 'Last »'
|
||||||
|
quantity: 9
|
||||||
|
style:
|
||||||
|
type: default
|
||||||
|
options:
|
||||||
|
grouping: { }
|
||||||
|
row_class: ''
|
||||||
|
default_row_class: true
|
||||||
|
uses_fields: false
|
||||||
|
row:
|
||||||
|
type: fields
|
||||||
|
options:
|
||||||
|
inline: { }
|
||||||
|
separator: ''
|
||||||
|
hide_empty: false
|
||||||
|
default_field_elements: true
|
||||||
|
fields:
|
||||||
|
vid:
|
||||||
|
id: vid
|
||||||
|
table: taxonomy_term_field_data
|
||||||
|
field: vid
|
||||||
|
relationship: none
|
||||||
|
group_type: group
|
||||||
|
admin_label: ''
|
||||||
|
label: ''
|
||||||
|
exclude: false
|
||||||
|
alter:
|
||||||
|
alter_text: false
|
||||||
|
text: ''
|
||||||
|
make_link: false
|
||||||
|
path: ''
|
||||||
|
absolute: false
|
||||||
|
external: false
|
||||||
|
replace_spaces: false
|
||||||
|
path_case: none
|
||||||
|
trim_whitespace: false
|
||||||
|
alt: ''
|
||||||
|
rel: ''
|
||||||
|
link_class: ''
|
||||||
|
prefix: ''
|
||||||
|
suffix: ''
|
||||||
|
target: ''
|
||||||
|
nl2br: false
|
||||||
|
max_length: 0
|
||||||
|
word_boundary: true
|
||||||
|
ellipsis: true
|
||||||
|
more_link: false
|
||||||
|
more_link_text: ''
|
||||||
|
more_link_path: ''
|
||||||
|
strip_tags: false
|
||||||
|
trim: false
|
||||||
|
preserve_tags: ''
|
||||||
|
html: false
|
||||||
|
element_type: ''
|
||||||
|
element_class: ''
|
||||||
|
element_label_type: ''
|
||||||
|
element_label_class: ''
|
||||||
|
element_label_colon: false
|
||||||
|
element_wrapper_type: ''
|
||||||
|
element_wrapper_class: ''
|
||||||
|
element_default_classes: true
|
||||||
|
empty: ''
|
||||||
|
hide_empty: false
|
||||||
|
empty_zero: false
|
||||||
|
hide_alter_empty: true
|
||||||
|
click_sort_column: target_id
|
||||||
|
type: entity_reference_label
|
||||||
|
settings:
|
||||||
|
link: false
|
||||||
|
group_column: target_id
|
||||||
|
group_columns: { }
|
||||||
|
group_rows: true
|
||||||
|
delta_limit: 0
|
||||||
|
delta_offset: 0
|
||||||
|
delta_reversed: false
|
||||||
|
delta_first_last: false
|
||||||
|
multi_type: separator
|
||||||
|
separator: ', '
|
||||||
|
field_api_classes: false
|
||||||
|
entity_type: taxonomy_term
|
||||||
|
entity_field: vid
|
||||||
|
plugin_id: field
|
||||||
|
filters: { }
|
||||||
|
sorts: { }
|
||||||
|
header: { }
|
||||||
|
footer: { }
|
||||||
|
empty: { }
|
||||||
|
relationships: { }
|
||||||
|
arguments: { }
|
||||||
|
display_extenders: { }
|
||||||
|
cache_metadata:
|
||||||
|
max-age: -1
|
||||||
|
contexts:
|
||||||
|
- 'languages:language_content'
|
||||||
|
- 'languages:language_interface'
|
||||||
|
- url.query_args
|
||||||
|
- user.permissions
|
||||||
|
tags: { }
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\taxonomy\Kernel\Views;
|
||||||
|
|
||||||
|
use Drupal\Core\Render\RenderContext;
|
||||||
|
use Drupal\Tests\taxonomy\Functional\TaxonomyTestTrait;
|
||||||
|
use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
|
||||||
|
use Drupal\user\Entity\User;
|
||||||
|
use Drupal\views\Tests\ViewTestData;
|
||||||
|
use Drupal\views\Views;
|
||||||
|
use Drupal\taxonomy\Entity\Vocabulary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the taxonomy term VID field handler.
|
||||||
|
*
|
||||||
|
* @group taxonomy
|
||||||
|
*/
|
||||||
|
class TaxonomyFieldVidTest extends ViewsKernelTestBase {
|
||||||
|
|
||||||
|
use TaxonomyTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modules to enable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public static $modules = ['taxonomy', 'taxonomy_test_views', 'text', 'filter'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Views used by this test.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public static $testViews = ['test_taxonomy_vid_field'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A taxonomy term to use in this test.
|
||||||
|
*
|
||||||
|
* @var \Drupal\taxonomy\Entity\Term
|
||||||
|
*/
|
||||||
|
protected $term1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An admin user.
|
||||||
|
*
|
||||||
|
* @var \Drupal\user\Entity\User;
|
||||||
|
*/
|
||||||
|
protected $adminUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp($import_test_views = TRUE) {
|
||||||
|
parent::setUp($import_test_views);
|
||||||
|
|
||||||
|
$this->installEntitySchema('taxonomy_term');
|
||||||
|
$this->installEntitySchema('user');
|
||||||
|
$this->installConfig(['filter']);
|
||||||
|
|
||||||
|
/** @var \Drupal\taxonomy\Entity\Vocabulary $vocabulary */
|
||||||
|
$vocabulary = $this->createVocabulary();
|
||||||
|
$this->term1 = $this->createTerm($vocabulary);
|
||||||
|
|
||||||
|
// Create user 1 and set is as the logged in user, so that the logged in
|
||||||
|
// user has the correct permissions to view the vocabulary name.
|
||||||
|
$this->adminUser = User::create(['name' => $this->randomString()]);
|
||||||
|
$this->adminUser->save();
|
||||||
|
$this->container->get('current_user')->setAccount($this->adminUser);
|
||||||
|
|
||||||
|
ViewTestData::createTestViews(get_class($this), ['taxonomy_test_views']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the field handling for the Vocabulary ID.
|
||||||
|
*/
|
||||||
|
public function testViewsHandlerVidField() {
|
||||||
|
/** @var \Drupal\Core\Render\RendererInterface $renderer */
|
||||||
|
$renderer = \Drupal::service('renderer');
|
||||||
|
|
||||||
|
$view = Views::getView('test_taxonomy_vid_field');
|
||||||
|
$this->executeView($view);
|
||||||
|
|
||||||
|
$actual = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
|
||||||
|
return $view->field['vid']->advancedRender($view->result[0]);
|
||||||
|
});
|
||||||
|
$vocabulary = Vocabulary::load($this->term1->bundle());
|
||||||
|
$expected = $vocabulary->get('name');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue