Содержание

Тег {{wrap}}

Описание

Вставляет содержимое внутри тега в определенное место - слот, или placeholder, другого шаблона и делает из этих двух шаблонов единый. Данный процесс называется обворачивание или враппинг. Место вставки указывается атрибутом into (или in), путь до другого шаблона указывается при помощи атрибута with.

Место вставки в другом шаблоне помечается при помощи тега {{slot}}.

wrap также поддерживает множественное и вложенное обворачивание, когда части текущего шаблона могут быть вставлены в различные места базового шаблона, который в свою очередь может быть обвернут в еще один шаблон и т.д. Для этого используется комбинация {{wrap}} и нескольких тегов {{into}}

Возможности компилятора MACRO и частности, комбинация тегов {{wrap}} и {{into}} по композиции шаблонов очень велики, поэтому мы рекомендуем вам ознакомиться с разделом "Композиция шаблонов: включение, переиспользование и обворачивание шаблонов".

Обратите внимание на то, что если вы пользуетесь механизмом поиска шаблонов Limb, тогда нужно использовать относительные пути до файлов, то есть include/page.html вместо /include/page.html

Синтаксис

{{wrap with='/path/to/file' [into='slot']}}
 ...Content to wrap...
{{/wrap}}

Область применения

В любом месте MACRO шаблона.

Атрибуты

Содержимое

Любое.

Пример использования

Простой пример

Допустим у нас есть шаблон /news.phtml

{{wrap with="page.phtml" into="content"}}
 
<h1>About</h1>
Some text
 
{{/wrap}}

А также есть базовый шаблон всех страниц page.phtml:

<html>
<body>
{{slot id='content'/}}
</body>
</html>

В результе компилироваться будет приблизительно такой шаблон:

<html>
<body>
 
<h1>About</h1>
Some text
 
</body>
</html>

Пример множественного обворачивания

{{wrap with="page.phtml"}}
 
{{into slot='first'}}
<h1>About</h1>
{{/into}}
 
{{into slot='second'}}
Some Text
{{/into}}
 
{{/wrap}}

А также есть базовый шаблон всех страниц page.phtml:

<html>
<body>
{{slot id='first'/}}
[...]
{{slot id='second'/}}
</body>
</html>

В результе компилироваться будет приблизительно такой шаблон:

<html>
<body>
 
<h1>About</h1>
[...]
Some Text
 
</body>
</html>

Дополнительные примеры