Дефисы в именах плагинов Grav CMS
Обращение к свойствам плагина 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 %}
Аналогично следует действовать при обращении к любым другим индексам массивов, содержащих символы дефисов. С целью снижения вероятности возникновения проблем, можно рекомендовать избегать использования таких имён, заменяя дефисы символами подчёркивания.