Проблемы наследования шаблонов веток - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь настроить чистую структуру для моей установки Craft CMS, но возникают проблемы с некоторыми очень базовыми c ветками и хорошим способом структурирования моих вещей.

См. Эту суть - почему бы моему Navbar не показываться в этом примере?

Еще лучше, я хотел бы структурировать свой сайт следующим образом - но он ничего не показывает? - еще одна суть

Неужели я как-то неправильно совмещаю шаблон расширения / блока? Это кажется очень основополагающим c и, таким образом, это очень расстраивает. Буду признателен за любую помощь.

1 Ответ

1 голос
/ 22 марта 2020

В первой строке, в index.twig, вы правильно расширили base.twig. Однако вы не указываете содержимое блока navbar, поэтому по умолчанию в блоке используется пустое содержимое, установленное в base.twig.

. Вы можете изменить base.twig, чтобы включить navbar.twig, используя include функция :

...
  <div id="content">
    {% include "navbar.twig" %}
    {% block content %}{% endblock %}
  </div>
...

Вы также не должны расширять base.twig в navbar.twig для предотвращения бесконечной рекурсии (base включает navbar, что расширяет base, который включает navbar, ...).

Если вы хотите, чтобы панель навигации была перезаписываемой в index.twig и других файлах, вы можете сохранить блок navbar в base.twig и установить его содержимое по умолчанию включает navbar.twig:

...
  <div id="content">
    {% block content %}
      {% include "navbar.twig" %}
    {% endblock %}
    {% block content %}{% endblock %}
  </div>
...

Затем, в index.twig, если вы опустите {% block navbar %}{% endblock %}, панель навигации будет использовать содержимое из navbar.twig. Или вы также можете переопределить содержимое блока navbar:

{% extends "base" %}

{% block navbar %}
  <h2>Overridden navbar</h2>
{% endblock %}

{% block content %}
  <h2>Main content</h2>
{% endblock %}

Во втором гисте, в index.twig, вы можете изменить {% block head %}{% endblock %} на {% include "head.twig" %} и так далее. В head.twig и других файлах вы не должны снова расширять index.twig для предотвращения бесконечных рекурсий.

Я рекомендую взглянуть на документацию Twig о теге extends , чтобы узнать, как блоки и шаблоны на самом деле работают. В ваших двух списках блоки и шаблоны используются неправильно.

...