#octobercms #twig-extension
Вопрос:
Это хорошо работает в моей функции registerMarkupTags.
'functions' => [
'isNumeric' => function($value) { return is_numeric($value); }
Чтобы я мог писать:
{% if isNumeric(result) %}
Я хочу сделать это тестом, например
{% if result is numeric %}
Комментарии:
1. Привет, вы можете проверить относительную помощь здесь : tutorialmeta.com/october-cms/… , я также добавлю ответ
Ответ №1:
Вы можете добавить пользовательское расширение для twig
Источник: https://tutorialmeta.com/october-cms/october-cms-extend-custom-twig-markup
Добавьте приведенный ниже код в свой
plugin.php
файл
// other imports
use TwigExtensionAbstractExtension as TwigExtension;
// our extension class
// you can declare here inside plugin.php file or in your `pluginclasses` file
// for simplicity we have declared it here
class MyTwigExtension extends TwigExtension {
public function getTests() {
return [
new TwigTwigTest('numeric', function ($value) {
return is_numeric($value);
})
];
}
}
class Plugin extends PluginBase {
public function boot() {
Event::listen('cms.page.beforeDisplay',
function ($controller, $url, $page) {
$controller->getTwig()->addExtension(new MyTwigExtension);
}
);
}
// other code
}
Теперь из вашей разметки
{% if 12 is numeric %}
yes numeric.
{% else %}
not a numeric.
{% endif %}
если у вас есть какие-либо сомнения, пожалуйста, прокомментируйте.