Быстрый старт
Отрисовать шаблон с данными можно фасадом:
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}.