Вставляет содержимое внутри тега в определенное место - слот, или 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>
Обсуждение