Skip to content

Быстрый старт

Отрисовать шаблон с данными можно фасадом:

php
use Boshnik\PageBlocks\Facades\View;

View::make('@INLINE <p>{$title}</p>', ['title' => 'Главная']);

или хелпером — это то же самое, короче:

php
view('file:templates/base.tpl', ['title' => 'Главная']);

Сигнатура у обоих одна:

php
view(string $template, array $params = [], callable $callback = null): string

Третий аргумент — обработчик готового HTML. Что означает префикс в имени шаблона — в Типах шаблонов.

💡 Из контроллера

php
Route::get('/', function () {
    return view('file:templates/base', ['name' => 'PageBlocks']);
    // => ищет core/App/elements/templates/base.tpl
});

🔧 Из сниппета MODX

Сниппет MyProfile выводит профиль текущего пользователя:

php
<?php
$user = $modx->user;

return view('file:blocks/profile.tpl', [
    'username' => $user->get('username'),
    'email'    => $user->getOne('Profile')->get('email'),
]);

core/App/elements/blocks/profile.tpl:

fenom
<div class="profile">
    <h2>{$username}</h2>
    <p>Email: {$email}</p>
</div>

Передавать $modx не нужно

View кладёт его в каждый шаблон сам — см. Доступные данные. Так что в примере выше можно было обойтись {$modx->user->username} и вовсе без параметров.

Пусто вместо ошибки

Не нашёлся шаблон — view() вернёт пустую строку, а причина уйдёт в лог MODX строкой [Fenom]: Template … not found. Пустое место на странице стоит искать там, а не в {if}.

© PageBlocks 2019-present