twig_tweak_test.module in Twig Tweak 3.x
Same filename and directory in other branches
Primary module hooks for Twig Tweak test module.
File
tests/twig_tweak_test/twig_tweak_test.moduleView source
<?php
/**
* @file
* Primary module hooks for Twig Tweak test module.
*/
use Drupal\block\BlockInterface;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Access\AccessResultInterface;
use Drupal\file\FileInterface;
use Drupal\node\Entity\Node;
use Drupal\node\NodeInterface;
use Twig\TwigFilter;
use Twig\TwigFunction;
use Twig\TwigTest;
/**
* Implements hook_page_bottom().
*/
function twig_tweak_test_page_bottom() : void {
Drupal::service('messenger')
->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';
});
}
Functions
Name | Description |
---|---|
template_preprocess_twig_tweak_test | Prepares variables for twig-tweak-test template. |
twig_tweak_test_block_access | Implements hook_block_access(). |
twig_tweak_test_file_access | Implements hook_file_access(). |
twig_tweak_test_node_access | Implements hook_node_access(). |
twig_tweak_test_page_bottom | Implements hook_page_bottom(). |
twig_tweak_test_theme | Implements hook_theme(). |
twig_tweak_test_twig_tweak_filters_alter | Implements hook_twig_tweak_filters_alter(). |
twig_tweak_test_twig_tweak_functions_alter | Implements hook_twig_tweak_functions_alter(). |
twig_tweak_test_twig_tweak_tests_alter | Implements hook_twig_tweak_tests_alter(). |