8eaa704a188bbb52deecab2c74c26b14267cbcf7
[yaffs-website] / web / core / modules / views / tests / modules / views_test_data / views_test_data.views_execution.inc
1 <?php
2
3 /**
4  * @file
5  * Provides views data and hooks for views_test_data module.
6  */
7
8 use Drupal\field\FieldStorageConfigInterface;
9 use Drupal\views\Plugin\views\cache\CachePluginBase;
10 use Drupal\views\ViewExecutable;
11
12 /**
13  * Implements hook_views_query_substitutions().
14  */
15 function views_test_data_views_query_substitutions(ViewExecutable $view) {
16   \Drupal::state()->set('views_hook_test_views_query_substitutions', TRUE);
17 }
18
19 /**
20  * Implements hook_views_form_substitutions().
21  */
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>'];
25   return [
26     '<!--will-be-escaped-->' => '<em>escaped</em>',
27     '<!--will-be-not-escaped-->' => \Drupal::service('renderer')->renderPlain($render),
28   ];
29 }
30
31 /**
32  * Implements hook_field_views_data().
33  */
34 function views_test_data_field_views_data(FieldStorageConfigInterface $field_storage) {
35   \Drupal::state()->set('views_hook_test_field_views_data', TRUE);
36 }
37
38 /**
39  * Implements hook_field_views_data_alter().
40  */
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);
43 }
44
45 /**
46  * Implements hook_views_pre_render().
47  *
48  * @see \Drupal\views\Tests\Plugin\CacheTest
49  * @see \Drupal\views\Tests\Plugin\RenderTest
50  */
51 function views_test_data_views_pre_render(ViewExecutable $view) {
52   \Drupal::state()->set('views_hook_test_views_pre_render', TRUE);
53
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;
60   }
61
62 }
63
64 /**
65  * #lazy_builder callback; for testing purposes only.
66  */
67 function views_test_data_placeholders() {
68   // No-op.
69   return [];
70 }
71
72 /**
73  * Implements hook_views_post_render().
74  */
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'][] = [];
80     }
81   }
82 }
83
84 /**
85  * Implements hook_views_pre_build().
86  */
87 function views_test_data_views_pre_build(ViewExecutable $view) {
88   \Drupal::state()->set('views_hook_test_views_pre_build', TRUE);
89 }
90
91 /**
92  * Implements hook_views_post_build().
93  */
94 function views_test_data_views_post_build(ViewExecutable $view) {
95   \Drupal::state()->set('views_hook_test_views_post_build', TRUE);
96
97   if (isset($view) && ($view->storage->id() == 'test_page_display')) {
98     if ($view->current_display == 'page_1') {
99       $view->build_info['denied'] = TRUE;
100     }
101     elseif ($view->current_display == 'page_2') {
102       $view->build_info['fail'] = TRUE;
103     }
104   }
105 }
106
107 /**
108  * Implements hook_views_pre_view().
109  */
110 function views_test_data_views_pre_view(ViewExecutable $view) {
111   \Drupal::state()->set('views_hook_test_views_pre_view', TRUE);
112 }
113
114 /**
115  * Implements hook_views_pre_execute().
116  */
117 function views_test_data_views_pre_execute(ViewExecutable $view) {
118   \Drupal::state()->set('views_hook_test_views_pre_execute', TRUE);
119 }
120
121 /**
122  * Implements hook_views_post_execute().
123  */
124 function views_test_data_views_post_execute(ViewExecutable $view) {
125   \Drupal::state()->set('views_hook_test_views_post_execute', TRUE);
126 }
127
128 /**
129  * Implements hook_views_query_alter().
130  */
131 function views_test_data_views_query_alter(ViewExecutable $view) {
132   \Drupal::state()->set('views_hook_test_views_query_alter', TRUE);
133 }