Усы PHP Поместите шаблон в шаблон

Я пытаюсь использовать PHP-реализацию Mustache для встраивания некоторого html-контента в такой шаблон:

[mytemplate begin]
   [html content]
[mytemplate end]

Мой html-контент находится в html-файле, и когда я пытаюсь его отобразить, у меня возникает ошибка:

echo $template->render(array('content' => file_get_contents('content.html')));

Вот ошибка:

Фатальная ошибка: достигнут максимальный уровень вложенности функций «100», отмена! в C:\wamp\www\resume\application\mustache\src\Mustache\Engine.php в строке 257

Как я могу вставить его как html-контент?

файл section.mustache (я удалил большую часть html-кода, осталось только самое необходимое)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>            
    </head>
    <body>
        <!-- CONTENT -->
        <div class="container">
            {{> section}}
        </div>
    </body>
</html>

И файл content.html (учтите, что есть два других <section> с таким же количеством кода)

<div class="section">
    <!--   Icon Section   -->
    <div class="row">
        <div class="col s12 m8 offset-m2 l8 offset-l2">
            <section id="sports" class="section scrollspy">
                <h1>Sports</h1>
                <div class="card">
                    <div class="card-image waves-effect waves-block waves-light">
                        <img src="media/images/climbing.jpg">
                    </div>
                    <div class="card-content">
                        <span class="card-title activator grey-text text-darken-4">Escalade<i class="mdi-navigation-more-vert right"></i></span>
                    </div>
                    <div class="card-reveal z-depth-3">
                        <span class="card-title grey-text text-darken-4"><h4>Escalade</h4><i class="mdi-navigation-close right"></i></span>
                        <p class="flow-text">Here is some more information about this product that is only revealed once clicked on. </p>
                    </div>
                </div>
                <div class="card">
                    <div class="card-image waves-effect waves-block waves-light">
                        <img src="media/images/snowboard.jpg">
                    </div>
                    <div class="card-content">
                        <span class="card-title activator grey-text text-darken-4">Snowboard<i class="mdi-navigation-more-vert right"></i></span>
                    </div>
                    <div class="card-reveal">
                        <span class="card-title grey-text text-darken-4"><h4>Snowboard</h4><i class="mdi-navigation-close right"></i></span>
                        <p class="flow-text">Here is some more information about this product that is only revealed once clicked on.</p>
                    </div>
                </div>
            </section>
        </div>
        <div class="col hide-on-small-only s12 m2 l1">
            <div style="height: 1px;">
                <ul class="section table-of-contents pinned" style="top: 0px;">
                    <li><a href="#sports" class="">Sports</a></li>
                   </ul>
            </div>
        </div>
    </div>
</div>

person Carvallegro    schedule 18.01.2015    source источник
comment
Не могли бы вы поделиться как шаблоном усов, так и content.html?   -  person Aleksei Matiushkin    schedule 18.01.2015
comment
Конечно, только что сделал это. Это примечание полный код, я просто положил основное   -  person Carvallegro    schedule 18.01.2015


Ответы (1)


Вы немного запутались в именах. Усатый собирается угадать, какой шаблон должен быть включен по его названию. Тем не менее,

{{> section}}

включает section.mustache. Поскольку он появляется в вашем section.mustache, движок пытается рекурсивно вставить его в себя. Что, по-видимому, приводит к бесконечному циклу, который завершается на уровне вложенности 100 с полученной вами ошибкой.

Вы должны переименовать свой content.html в content.mustache и включить контент:

{{> content}}

Надеюсь, поможет.

person Aleksei Matiushkin    schedule 18.01.2015