addMessage('Hello world!'); } /** * Implements hook_theme(). */ function twig_tweak_test_theme(): array { return ['twig_tweak_test' => ['variables' => []]]; } /** * Prepares variables for twig-tweak-test template. */ function template_preprocess_twig_tweak_test(array &$vars): void { $vars['node'] = Node::load(1); } /** * Implements hook_block_access(). * * @see \Drupal\Tests\twig_tweak\Kernel\RegionViewBuilderTest */ function twig_tweak_test_block_access(BlockInterface $block): AccessResultInterface { $result = AccessResult::forbiddenIf($block->id() == 'private_block'); $result->cachePerUser(); $result->addCacheTags(['tag_for_' . $block->id()]); $result->setCacheMaxAge(123); return $result; } /** * Implements hook_node_access(). * * @see \Drupal\Tests\twig_tweak\Kernel\EntityViewBuilderTest */ function twig_tweak_test_node_access(NodeInterface $node): AccessResultInterface { $result = AccessResult::forbiddenIf($node->getTitle() == 'Private node'); $result->addCacheTags(['tag_from_' . __FUNCTION__]); $result->cachePerUser(); $result->setCacheMaxAge(50); return $result; } /** * Implements hook_file_access(). * * @see \Drupal\Tests\twig_tweak\Kernel\ImageViewBuilderTest */ function twig_tweak_test_file_access(FileInterface $file): AccessResultInterface { $is_public = parse_url($file->getFileUri(), PHP_URL_SCHEME) == 'public'; $result = AccessResult::allowedIf($is_public); $result->cachePerUser(); $result->addCacheTags(['tag_for_' . $file->getFileUri()]); $result->setCacheMaxAge(70); return $result; } /** * Implements hook_twig_tweak_functions_alter(). */ function twig_tweak_test_twig_tweak_functions_alter(array &$functions) { $functions[] = new TwigFunction('foo', function (string $value): string { return "-=$value=-"; }); } /** * Implements hook_twig_tweak_filters_alter(). */ function twig_tweak_test_twig_tweak_filters_alter(array &$filters) { $filters[] = new TwigFilter('bar', function (string $input): string { return str_replace('foo', 'bar', $input); }); } /** * Implements hook_twig_tweak_tests_alter(). */ function twig_tweak_test_twig_tweak_tests_alter(array &$tests) { $tests[] = new TwigTest('ok', function ($input): bool { return $input == 'ok'; }); }