5 * Provides views data and hooks for views_test_data module.
8 use Drupal\field\FieldStorageConfigInterface;
9 use Drupal\views\Plugin\views\cache\CachePluginBase;
10 use Drupal\views\ViewExecutable;
13 * Implements hook_views_query_substitutions().
15 function views_test_data_views_query_substitutions(ViewExecutable $view) {
16 \Drupal::state()->set('views_hook_test_views_query_substitutions', TRUE);
20 * Implements hook_views_form_substitutions().
22 function views_test_data_views_form_substitutions() {
23 \Drupal::state()->set('views_hook_test_views_form_substitutions', TRUE);
24 $render = ['#markup' => '<em>unescaped</em>'];
26 '<!--will-be-escaped-->' => '<em>escaped</em>',
27 '<!--will-be-not-escaped-->' => \Drupal::service('renderer')->renderPlain($render),
32 * Implements hook_field_views_data().
34 function views_test_data_field_views_data(FieldStorageConfigInterface $field_storage) {
35 \Drupal::state()->set('views_hook_test_field_views_data', TRUE);
39 * Implements hook_field_views_data_alter().
41 function views_test_data_field_views_data_alter(&$data, FieldStorageConfigInterface $field_storage, $module) {
42 \Drupal::state()->set('views_hook_test_field_views_data_alter', TRUE);
46 * Implements hook_views_pre_render().
48 * @see \Drupal\views\Tests\Plugin\CacheTest
49 * @see \Drupal\views\Tests\Plugin\RenderTest
51 function views_test_data_views_pre_render(ViewExecutable $view) {
52 \Drupal::state()->set('views_hook_test_views_pre_render', TRUE);
54 if (isset($view) && ($view->storage->id() == 'test_cache_header_storage')) {
55 $view->element['#attached']['library'][] = 'views_test_data/test';
56 $view->element['#attached']['drupalSettings']['foo'] = 'bar';
57 $view->element['#attached']['placeholders']['non-existing-placeholder-just-for-testing-purposes']['#lazy_builder'] = ['views_test_data_placeholders', ['bar']];
58 $view->element['#cache']['tags'][] = 'views_test_data:1';
59 $view->build_info['pre_render_called'] = TRUE;
65 * #lazy_builder callback; for testing purposes only.
67 function views_test_data_placeholders() {
73 * Implements hook_views_post_render().
75 function views_test_data_views_post_render(ViewExecutable $view, &$output, CachePluginBase $cache) {
76 \Drupal::state()->set('views_hook_test_views_post_render', TRUE);
77 if ($view->storage->id() === 'test_page_display' && $view->current_display === 'empty_row') {
78 for ($i = 0; $i < 5; $i++) {
79 $output['#rows'][0]['#rows'][] = [];
85 * Implements hook_views_pre_build().
87 function views_test_data_views_pre_build(ViewExecutable $view) {
88 \Drupal::state()->set('views_hook_test_views_pre_build', TRUE);
92 * Implements hook_views_post_build().
94 function views_test_data_views_post_build(ViewExecutable $view) {
95 \Drupal::state()->set('views_hook_test_views_post_build', TRUE);
97 if (isset($view) && ($view->storage->id() == 'test_page_display')) {
98 if ($view->current_display == 'page_1') {
99 $view->build_info['denied'] = TRUE;
101 elseif ($view->current_display == 'page_2') {
102 $view->build_info['fail'] = TRUE;
108 * Implements hook_views_pre_view().
110 function views_test_data_views_pre_view(ViewExecutable $view) {
111 \Drupal::state()->set('views_hook_test_views_pre_view', TRUE);
115 * Implements hook_views_pre_execute().
117 function views_test_data_views_pre_execute(ViewExecutable $view) {
118 \Drupal::state()->set('views_hook_test_views_pre_execute', TRUE);
122 * Implements hook_views_post_execute().
124 function views_test_data_views_post_execute(ViewExecutable $view) {
125 \Drupal::state()->set('views_hook_test_views_post_execute', TRUE);
129 * Implements hook_views_query_alter().
131 function views_test_data_views_query_alter(ViewExecutable $view) {
132 \Drupal::state()->set('views_hook_test_views_query_alter', TRUE);