Skip to content

Простой шаблонизатор на PHP

License

Notifications You must be signed in to change notification settings

ADSoftTeam/Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Простой шаблонизатор Template версия 2.1

Очень простой шаблонизатор (уже не очень) на php. Всего один подключаемый класс

  • /classes/template.class.php В папке /template находятся шаблоны (может быть любое другое место)

Публичные методы класса:

  • get_tpl($name string) полчает шаблон из файла, возвращает true/false в зависисмости от того, найден шаблон иил нет
  • set_tpl($key,$var string) задает переменную для её замены
  • set_tpl_array($array array) то-же самое что и предыдущее, только для массива переменных (массив элементов в виде - "ключ"=>"значение")
  • set_paginate($point,$all_pages,$current,$template,$url,$arguments = null, $width = 9) - отображает пагинацию в точке %point%
  • tpl_parse()- выполняет замену в шаблоне и формирует окончательный результат

Пример вызова

<?php
// подключение необходимых классов
include_once("./../classes/template.class.php");	
$parse = new template($debug); // При заданном true - отключает автоочистку резлуьтата от перевода строк и табуляций, по умолчанию false - очистка присутствует
$parse->get_tpl("./../template/ex1.tpl");	
$parse->set_tpl('%var1%','One');
$parse->set_tpl('%var2%','Two');
$parse->set_tpl('%arr%',array("name'=>"Ivan","age"=>24));
$parse->tpl_parse();
echo $parse->template;

Синтаксис

  • Обычный вывод переменных - %имя_переменной%
  • Вывод элемента массива - %a[0]% для числового, %mas['name']% или %mas["title"] для ассоциативного
  • Экранирование:
  • @ - через htmlspecialchars, %@a% или %@a['text']% для элементов массива
  • @@ - для экранирования js (прогоняет вывод через json_encode - %@@a%, %@@sw['volume']% и.т.д
  • ! - для экранирования значения заключенного в %%, в основном для foreach, синтаксис: %!arr['name']%, где значение arr['name'] = %переменная%
  • # - для сохранения форматирование строки, применяется функция nl2br, пример %#message%
  • Проверка на пустоту - empty, {|empty|%элемент%|true|false|} - предпочтительнее использовать чем {if|%элемент%||true|false|}
  • Краткий формат условия {|if|%имя_переменная_без%|с чем сравниваем|это выводим если равны|тут выводим если не равны|} так-же можно использовать имена элементов массивов, и сравнивать с элементами переменных, например {|if|%a%|%b%|true|false|}|
  • Расширеное условие - {|if|%a%|операция|%b%|true|false|}, где операция = {=,!=,>,<,>=,=>,<=,=<} дсотупные операции сравнения
  • Цикл foreach - перебирает все значения массива {|foreach|%массив%|тело цикла с параметрами %массив[индекс]%|} индекс - определяеся так же по праилам вывода элементов массива
  • В цикле foreach добавлена переменная с порядковым номером элемента - %array['foreach_position']%
  • Включение подшаблонов в шаблоны - @include(/path/to/tpl)@ - включает указанный файл в шаблон (поддерживается вложенность)
  • Добавлена конструкция для вывода деревьев {|tree|%массив%|%поле для связи%|%начало оформление ветви%|%окончание оформления ветви%|%начало оформление листьев%|%окончание оформления листьев%|%строка-лист%|}

Что планируется в будущем

Расширение синтаксиса:

  • Самое сложное и главное - неограниченная вложенность циклов

Переработка/доработка класса:

  • добавить логирование (вывод ошибок на экран/в файл)
  • переработка кода по ходу реализации функций

About

Простой шаблонизатор на PHP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •