cabinet:html5:templating

Шаблонизатор Mikbill

Вводятся ярлыки для общих структур PHP, таких как условные операторы и циклы.

Вы можете создавать операторы if, используя директивы @if, @elseif, @else и @endif. Эти директивы функционируют идентично своим PHP-аналогам:

@if(count($records) === 1)
    {{ "У меня есть одна запись!" }}
@elseif(count($records) > 1)
    {{ "У меня есть несколько записей!" }}
@else
    {{ "У меня нет записей!" }}
@endif

Помимо условных операторов, вводятся простые директивы для работы с циклами в PHP. Каждая из этих директив функционирует идентично своим аналогам в PHP:

@foreach($users as $user)
    <p>Это пользователь {{ $user->id }}</p>
@endforeach

При использовании циклов вы также можете пропустить текущую итерацию или завершить цикл, используя директивы @continue и @break:

@foreach($users as $user)
    @if ($user->type == 1)
        @continue
    @endif
 
    <li>{{ $user->name }}</li>
 
    @if ($user->number == 5)
        @break
    @endif
@endforeach

Компонент позволяет "подключить" часть кода из спец. шаблона в текущий шаблон. Все переменные, доступные в родительском шаблоне, будут также доступны шаблону компонента:

@component("subscriptions")

Подключит шаблон с названием x-subscriptions.tpl в текущий шаблон. Обратите внимание что спец. шаблон компонента всегда должен начинаться с префикса x-


Layout - это основной шаблон с стилями и разметками который распространяется на все страницы.
Все шаблоны (кроме спец. шаблонов компонентов) должны начинаться с указания их layout'а:

@layout("app_mikbill")


Это указание на то, что страница использует layout c названием app_mikbill в котором построены все основные стили и разметка страницы. Данный шаблон будет подключен в этот layout.
В Layout шаблон подключается в блок slot с id=app:

<slot id="app"></slot>

Функция для показа данных (echo) заменена на открывающиеся {{ и закрывающиеся }}

{{ "Привет" }}

Функция для подключения файлов стилей/картинок/js относительно текущей директории стиля (data/template/<название стиля>/):

{{ asset("css/bootstrap.min.css") }}

Для перевода текста можно использовать trans() или же __():

{{ trans("Привет") }}

{{ __("Привет") }}
  • cabinet/html5/templating.txt
  • Последнее изменение: 7 нед. назад
  • alexd