Дефисы в именах плагинов Grav CMS

 

 Grav CMSTwigсниппет

Обращение к свойствам плагина Grav CMS с именем myplugin в шаблоне Twig, может быть реализовано следующий образом:

{% if config.plugins.myplugin.enabled %}
<p>Плагин <strong>myplugin</strong> активирован</p>
{% endif %}

В приведённом примере осуществляется проверка статуса активации плагина myplugin: если плагин активирован, то есть его свойcтво enabled содержит значение true, выводится фрагмент HTML-кода.

Однако при обращении к свойствам плагина, содержащего в имени дефисы, например, my-plugin, возникают сложности, связанные с тем, что дефисы интерпретируются Twig в качестве математических операторов вычитания. Именно поэтому имена переменных Twig не должны их содержать. Прочитать об этом подробнее можно здесь.

Для решения возникшей проблемы необходимо перейти от использования dot notation, показанного в первом примере, к subscript syntax:

{% if config.plugins['my-plugin'].enabled %}
<p>Плагин <strong>my-plugin</strong> активирован</p>
{% endif %}

Аналогично следует действовать при обращении к любым другим индексам массивов, содержащих символы дефисов. С целью снижения вероятности возникновения проблем, можно рекомендовать избегать использования таких имён, заменяя дефисы символами подчёркивания.