thoth777
Гуру форума
- Регистрация
- 28 Ноя 2008
- Сообщения
- 302
- Реакции
- 98
- Автор темы
- #1
Друзья, решил поделиться написанным мною скриптецом для генерации текста на основе шаблонов. Скрипт простой, но в умелых руках - мощный. Выполнен в виде php-класса
Для работы требуется модуль PHP multibyte-string (чтобы корректно обрабатывать UTF-8)
Архитектура скрипта - масштабируемая, можно добавлять новые директивы, путем создания функций вида
private function tempfunc_ИМЯ
и вызова из шаблона
{@ИМЯ аргументы}
аргументы передаются в функцию в виде одной строки, далее функция может их парсить как удобно, согласно формату аргументов.
Может сохранять результ в файл или отдавать как результат выполнения функции process()
Использование:
$test=new Govnomet("first","test",'xxx'); //папка шаблона, исходящая папка, имя файла
или
$test=new Govnomet("first"); //в этом случае сгенеренный текст отдается как результат выполнения функции process()
$test->set_encoding('UTF-8'); //установка кодировки
$test->set_outencoding('UTF-8'); //установка исходящей кодировки
$test->process(); //генерация
папка шаблона - ./templates/папка
главный шаблон - всегда main.tpl
Какие директивы понимает:
{один|два|три|четыре} - отдает одно из значений
{разделитель^один^два^три^четыре} - перемешивает значения и отдает все, разделенные разделителем
{@rand min,max} - случайное значение в диапазоне
{@randline имя файла} - случайная строка из файла
{@include имя файла} - включает текст файла в шаблон (так же обрабатывается)
{@encoding кодировка} - определяет входящую кодировку документа
{@setvar имя,значение} - устанавливает значение переменной
{@getvar имя} - подставляет значение переменной
{@u шаблон} - первый символ - заглавный
допускается любой уровень вложенности
к примеру
{@include text{@rand 1,10}.txt}
{@u {@randline text{@rand 1,10}.txt}}
{@setvar xxx,{@randline xxxxx.txt}}
качаем:
спасибо за "спасибо" )))
Для работы требуется модуль PHP multibyte-string (чтобы корректно обрабатывать UTF-8)
Архитектура скрипта - масштабируемая, можно добавлять новые директивы, путем создания функций вида
private function tempfunc_ИМЯ
и вызова из шаблона
{@ИМЯ аргументы}
аргументы передаются в функцию в виде одной строки, далее функция может их парсить как удобно, согласно формату аргументов.
Может сохранять результ в файл или отдавать как результат выполнения функции process()
Использование:
$test=new Govnomet("first","test",'xxx'); //папка шаблона, исходящая папка, имя файла
или
$test=new Govnomet("first"); //в этом случае сгенеренный текст отдается как результат выполнения функции process()
$test->set_encoding('UTF-8'); //установка кодировки
$test->set_outencoding('UTF-8'); //установка исходящей кодировки
$test->process(); //генерация
папка шаблона - ./templates/папка
главный шаблон - всегда main.tpl
Какие директивы понимает:
{один|два|три|четыре} - отдает одно из значений
{разделитель^один^два^три^четыре} - перемешивает значения и отдает все, разделенные разделителем
{@rand min,max} - случайное значение в диапазоне
{@randline имя файла} - случайная строка из файла
{@include имя файла} - включает текст файла в шаблон (так же обрабатывается)
{@encoding кодировка} - определяет входящую кодировку документа
{@setvar имя,значение} - устанавливает значение переменной
{@getvar имя} - подставляет значение переменной
{@u шаблон} - первый символ - заглавный
допускается любой уровень вложенности
к примеру
{@include text{@rand 1,10}.txt}
{@u {@randline text{@rand 1,10}.txt}}
{@setvar xxx,{@randline xxxxx.txt}}
качаем:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
спасибо за "спасибо" )))