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