8e1f69e792282fbfa0d421a66811d12e75422de4
[yaffs-website] / web / core / modules / system / tests / modules / twig_theme_test / src / TwigThemeTestController.php
1 <?php
2
3 namespace Drupal\twig_theme_test;
4
5 use Drupal\Core\Template\Attribute;
6 use Drupal\Core\Url;
7
8 /**
9  * Controller routines for Twig theme test routes.
10  */
11 class TwigThemeTestController {
12
13   /**
14    * Menu callback for testing PHP variables in a Twig template.
15    */
16   public function phpVariablesRender() {
17     return ['#markup' => \Drupal::theme()->render('twig_theme_test_php_variables', [])];
18   }
19
20   /**
21    * Menu callback for testing translation blocks in a Twig template.
22    */
23   public function transBlockRender() {
24     return [
25       '#theme' => 'twig_theme_test_trans',
26     ];
27   }
28
29   /**
30    * Controller for testing the twig placeholder filter outside of {% trans %}
31    */
32   public function placeholderOutsideTransRender() {
33     return [
34       '#theme' => 'twig_theme_test_placeholder_outside_trans',
35       '#var' => '<script>alert(123);</script>',
36     ];
37   }
38
39   /**
40    * Renders for testing url_generator functions in a Twig template.
41    */
42   public function urlGeneratorRender() {
43     return [
44       '#theme' => 'twig_theme_test_url_generator',
45     ];
46   }
47
48   /**
49    * Renders for testing link_generator functions in a Twig template.
50    */
51   public function linkGeneratorRender() {
52     return [
53       '#theme' => 'twig_theme_test_link_generator',
54       '#test_url' => new Url('user.register', [], ['absolute' => TRUE]),
55       '#test_url_attribute' => new Url('user.register', [], ['attributes' => ['foo' => 'bar']]),
56       // Explicitly creating an Attribute object to avoid false positives when
57       // testing Attribute object merging with the twig link() function.
58       '#attributes' => new Attribute(['class' => ['llama', 'kitten', 'panda']]),
59     ];
60   }
61
62   /**
63    * Renders a URL to a string.
64    */
65   public function urlToStringRender() {
66     return [
67       '#theme' => 'twig_theme_test_url_to_string',
68       '#test_url' => Url::fromRoute('user.register'),
69     ];
70   }
71
72   /**
73    * Renders for testing file_url functions in a Twig template.
74    */
75   public function fileUrlRender() {
76     return [
77       '#theme' => 'twig_theme_test_file_url',
78     ];
79   }
80
81   /**
82    * Renders for testing attach_library functions in a Twig template.
83    */
84   public function attachLibraryRender() {
85     return [
86       '#theme' => 'twig_theme_test_attach_library',
87     ];
88   }
89
90   /**
91    * Menu callback for testing the Twig registry loader.
92    */
93   public function registryLoaderRender() {
94     return ['#theme' => 'twig_registry_loader_test'];
95   }
96
97   /**
98    * Controller for testing a renderable inside a template.
99    */
100   public function renderable() {
101     return [
102       '#theme' => 'twig_theme_test_renderable',
103       '#renderable' => new ExampleRenderable()
104     ];
105   }
106
107 }