Бывает такое, что приходится использовать codeeditor и хотелось бы писать там с использованием полноценного twig’a. Для достижения результата есть пара вариантов:
Парсить филд с помощью фасада перед выводом на фронт
use October\Rain\Support\Facades\Twig;
class componentName extends ComponentBase {
public function onRun()
{
Twig::parse($fieldName);
}
}
Подобный метод позволит использовать twig в филде, но по отношению к октябрю это будет не полноценно, так как он не даст использовать такие фильтры как |theme, |media и тд. и тут мы переходим к другому методу.
С помощью контроллера
use Cms\Classes\Controller;
class componentName extends ComponentBase {
public function onRun()
{
$controller = Controller::getController();
$twig = $controller->getTwig();
$template = $twig->createTemplate($model->field);
$this->page['item_code'] = $template->render(
[
'var' => $model->someField,
]
);
}
}
В этом случае будут работать все фильтры октября + мы можем передать внутрь переменные с помощью массива.