Скрипт - генератор текста на основе шаблонов

Тема в разделе "Мелочи", создана пользователем thoth777, 25 янв 2011.

  1. thoth777

    thoth777

    Регистр.:
    28 ноя 2008
    Сообщения:
    304
    Симпатии:
    98
    Друзья, решил поделиться написанным мною скриптецом для генерации текста на основе шаблонов. Скрипт простой, но в умелых руках - мощный. Выполнен в виде 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}}



    качаем:
    Посмотреть вложение !govnomet.rar

    спасибо за "спасибо" )))
     
    grut, Рестан, dimosha и 13 другим нравится это.