Шаблонизатор Foton предназначен для упрощения чтения и редактирования кода представлений.
При использовании шаблонизатора код вида
<?foreach($arr as $value){ if(isset($value['name']){?> <a href=”<?=$value['href'];?>” id=”id<?=$value['id'];?>> <?=$value['name'];?> </a> <?} }?>
Приобретет вид
{{news_1head}}
<a href='{{news_2href}}' id=”id{{news_3id}}”>
{{news_4name}}
</a>
{{news_5end}}Код намного короче, и проще читается.
Это лишь пример, название news или 2href и т. д. Вы можете называть как угодно. В этом состоит главное отличие от шаблонизаторов типа smarty, также шаблоны не работают через интерпретатор, а хранятся в директории sstem/api/php/site или admin.
Для создания метода шаблона можно воспользоваться модулем php шаблоны, либо создать директорию с уникальным названием внутри api/php/$FS->sitedir, внутри этой директории создаются файлы расширением php c любым php кодом, для интерпретации этого кода достаточно вызвать {{названиедиректории_названиефайла}}
Название директории и файла не должно содержать знака «_».
С версии 8.5.0 появились новые синтаксические конструкции:
@if{...} == <?if(...){?>
@if[...] == <?if(...){?>
@else@ == <?}else{?>
@elsif{...} == <?}else if(...){?>
@elsif[...] == <?}else if(...){?>
@for{...} == <?for(...){?>
@for:{...} == <?foreach(...){?>
@arr{...} == <?print_r(...);?>
@csrf{} или @csrf{'вашметод'} - <input type="hidden" name="csrf" class="csrf" value="результат csrf метода">
@:@ == <?}?>
@::@ == <?}}?>
@:::@ == <?}}}?>
@{a} == <?=$a;?>
@[a] == <?=$a;?>
@tpl(...) == include указанного шаблона без _view из /system/api/tpl/
@tpl(... , ...) == include указанного шаблона без _view из /system/api/tpl/
(1 аргумент директория сайта в /system/api/tpl/ , второй название шаблона)
@rc(...) == require_once исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается полное название файла без .php
@inc(...) == include исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается название файла без _view.php
@inc(... , …) == include исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается название файла без _view.php
(1 аргумент директория сайта в /app/view/, второй название файла)
внутри {} не должно быть фигурных скобок. Как и внутри [] недолжно быть квадратных скобок, именно по этой причине 2 формы записи.
Внутри inc(),rc(),tpl() не должно быть кавычек, названия файлов должны писаться так @inc(site,html).
#{ echo ‘test’;}# - обработает php код <? echo ‘test’;?>
Вы можете выключить автоформирование шаблонов и тогда обновление будет происходить только при вызове из админ панели или консоли запрос для сохранения данных через интерпретатор, таким образом реальная страница будет выглядить также как в первом варианте, но грузится будет быстрее чем при использовании интерпретатора.