Я использую 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, я получаю только приведенный выше код.
Кажется, что я упускаю что-то довольно простое здесь, но был бы признателен за помощь. Благодарю.
Вы путаете файлы 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
Не стесняйтесь присоединиться чат если у вас все еще проблемы.
Других решений пока нет …