For more information about this repository, visit the project page at https://www.drupal.org/project/twig_tweak
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.4 KiB
67 lines
1.4 KiB
<?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". |
|
*/
|
|
|