Элементы заголовка / навигационной панели / нижнего колонтитула не импортируются на новую страницу

Я использую UserFrosting и до сих пор мне удалось импортировать все элементы по умолчанию на домашнюю страницу. Однако теперь я добавил вторую страницу, но ничего не произошло, когда скопировал следующий код с домашней страницы:

{% include 'common/components/head.html' %}
<rest of code>
{% include 'common/components/main-nav.html' %}
<rest of code>
{% include 'common/components/footer.html' %}
{% include 'common/components/jumbotron-links.html' %}

Затем я использовал следующий код PHP:

<?php include("../userfrosting/templates/common/components/head.html"); ?>

Кажется, что это работает, но на странице показан только этот код, найденный в файле head.html:

{% for item in includeCSS(page_group|default("common")) %} {% endfor %} {% for item in includeJSTop(page_group|default("common")) %} {% endfor %}

Что, очевидно, не очень полезно!

Когда я сохраняю файл home и page2.php в одной папке (в localhost / userfrosting / templates / common), я получаю сообщение об ошибке 404. Когда я перемещаю файл в каталог домашней страницы UserFrosting по умолчанию (которым не является файл home.html) на самом деле в) в localhost / public, я получаю только приведенный выше код.

Кажется, что я упускаю что-то довольно простое здесь, но был бы признателен за помощь. Благодарю.

1

Решение

Вы путаете файлы PHP и файлы шаблонов. UserFrosting использует шаблон переднего контроллера вместе с прут шаблонный двигатель. Таким образом, вам не нужен отдельный файл PHP для каждой страницы. Вместо этого вы должны создать новый файл шаблона для вашей страницы:

userfrosting / шаблоны / общие / page2.html

{% include 'common/components/head.html' %}
// DO NOT use PHP here - just Twig!  See the Twig documentation: http://twig.sensiolabs.org/doc/templates.html
{% include 'common/components/main-nav.html' %}
// More Twig
{% include 'common/components/jumbotron-links.html' %}
{% include 'common/components/footer.html' %}

Затем вам нужно связать URL с этим шаблоном. Что сделано в контроллер, public/index.phpНапример, вот так:

// Miscellaneous pages
$app->get('/page2/?', function () use ($app) {

$app->render('common/page2.html', [
'page' => [
'author' =>         $app->site->author,
'title' =>          "Page Deuce",
'description' =>    "This is the second page, aight?",
'alerts' =>         $app->alerts->getAndClearMessages()
]
]);
});

Я настоятельно рекомендую пройти урок по добавлению новой страницы: https://learn.userfrosting.com/building-pages

Вы также можете узнать больше о MVC, Slim и Twig здесь: https://learn.userfrosting.com/basics/overview

Не стесняйтесь присоединиться чат если у вас все еще проблемы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]