Chi
5 years ago
6 changed files with 158 additions and 1 deletions
@ -0,0 +1,67 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @file |
||||
* Hooks specific to the Twig Tweak module. |
||||
*/ |
||||
|
||||
use Drupal\Component\Utility\Unicode; |
||||
use Drupal\node\NodeInterface; |
||||
use Twig\TwigFunction; |
||||
use Twig\TwigTest; |
||||
|
||||
/** |
||||
* @addtogroup hooks |
||||
* @{ |
||||
*/ |
||||
|
||||
/** |
||||
* Alters Twig Tweak functions. |
||||
* |
||||
* @param \Twig\TwigFunction[] $functions |
||||
* Twig functions to alter. |
||||
*/ |
||||
function hook_twig_tweak_functions_alter(array &$functions): void { |
||||
// A simple way to implement lazy loaded global variables. |
||||
$functions[] = new TwigFunction('var', function (string $name) { |
||||
$value = NULL; |
||||
switch ($name) { |
||||
case 'foo': |
||||
$value = 'Foo'; |
||||
break; |
||||
|
||||
case 'bar': |
||||
$value = 'Bar'; |
||||
break; |
||||
} |
||||
return $value; |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* Alters Twig Tweak filters. |
||||
* |
||||
* @param \Twig\TwigFilter[] $filters |
||||
* Twig filters to alter. |
||||
*/ |
||||
function hook_twig_tweak_filters_alter(array &$filters): void { |
||||
$filters[] = new TwigFunction('str_pad', 'str_pad'); |
||||
$filters[] = new TwigFunction('ucfirst', [Unicode::class, 'ucfirst']); |
||||
$filters[] = new TwigFunction('lcfirst', [Unicode::class, 'lcfirst']); |
||||
} |
||||
|
||||
/** |
||||
* Alters Twig Tweak tests. |
||||
* |
||||
* @param \Twig\TwigTest[] $tests |
||||
* Twig tests to alter. |
||||
*/ |
||||
function hook_twig_tweak_tests_alter(array &$tests): void { |
||||
$tests[] = new TwigTest('outdated', function (NodeInterface $node): bool { |
||||
return \Drupal::time()->getRequestTime() - $node->getCreatedTime() > 3600 * 24 * 365; |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* @} End of "addtogroup hooks". |
||||
*/ |
Loading…
Reference in new issue