Twig публикует пустые модули на странице

Я работаю с Twig в Craft и пытаюсь включить модуль, который я сделал, я добавил весь контент в модули в CMS и сохранил его, они отображаются на странице правильно, но тонна пустых тегов абзаца показать также, кто-нибудь знает, почему это?

Шаги, которые я предпринял:

У меня есть файл ветки под названием «Abilities.twig», внутри способностей у меня есть следующий код:

<p>{{ module.Abilities }}</p>

В Index.twig у меня есть следующее:

{% for module in entry.modals %}
    {% include '_modals/Abilities' %}
{% endfor %}

Пример ниже того, как они отображаются на странице

<p>This is the first example of an ability</p>
<p>This is the second example of an ability</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

В CMS отображаются только два верхних примера модулей, пустых сохраненных модулей нет.

Если кто-то может помочь, был бы признателен


person Josh    schedule 15.07.2019    source источник


Ответы (2)


Если вы не хотите иметь «лишние» <p>, вам нужно убедиться, что содержимое не пусто.

{% if module.Abilities | trim != '' %}
    <p>{{ module.Abilities }}</p>
{% endif %}
person DarkBee    schedule 15.07.2019
comment
Я только что попробовал это с блоком, и это не работает - отлично работает для полей внутри блоков, но у меня есть examples.twig, тогда у меня есть 2 поля внутри, так что вы можете добавить больше в CMS без необходимости что-либо кодировать, я предполагая, что это не работает, потому что я поместил module.examples, я предполагаю, что мне нужно ссылаться на блок, а не на 2 поля внутри него, поэтому я поместил block.examples, но это также вызвало ошибку, вы знаете, как правильно ссылаться блок для заявления выше? если я сделаю это без вышеуказанного утверждения, я снова получу пустые компоненты... что-то не так с CMS? - person Josh; 16.07.2019
comment
Вам нужно будет добавить if вокруг любого поля, которое вы добавляете. Если вы не хотите добавлять дополнительные if's вокруг каждого поля, я предлагаю разместить <p> внутри вашего контента. - person DarkBee; 16.07.2019
comment
Спасибо, что сработало, не сработало, потому что я завернул оба поля в один оператор if, есть ли причина, по которой это нужно сделать? почему в CMS больше модулей, чем контента? Я полагаю, он должен автоматически останавливать отображение пустых модулей, верно? - person Josh; 17.07.2019

Вы можете добавить оператор if в свой цикл

{% for module in entry.modals if module != null %}
    {% include '_modals/Abilities' %}
{% endfor %}
person Youssef Saoubou    schedule 15.07.2019