Что такое СисУп Framework?

СисУп Framework - компилирующий обработчик шаблонов для PHP. Это означает, что СисУп Framework читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется.

Некоторые особенности СисУп Framework:

Он очень быстр.
Он эффективен, так как обработчик PHP делает за него грязную работу.
Никакой лишней обработки шаблонов, они компилируются только один раз.
Вы можете легко создавать собственные пользовательские функции и классы, что делает СисУп Framework чрезвычайно расширяемым.
Конструкции <if>..<else>..</if> передаются обработчику PHP, так что синтаксис выражения <if...> может быть настолько простым или сложным, насколько вам угодно.
Допустимо неограниченное вложение секций, условий и т.д.
Существует возможность включения чистого PHP-кода прямо в шаблон, однако обычно в этом нет необходимости.
Встроенный механизм кэширования.
Произвольные источники шаблонов.
Компонентная архитектура.

 

Требования

Для установки и работы СисУп Framework необходим веб-сервер Apache с установленным PHP версии 4.0.6 или выше. Для корректной работы необходимы расширения Apache: iconv, gd, mod-rewrite. Для работы с базой данных Mysql необходима установленная БД Mysql версии 5.0 и выше.

 

Базовый синтаксис

Все тэги шаблонов СисУп Framework располагаются между специальными разделителями и содержат префикс, который может быть изменен в конфигурационном файле. По умолчанию, теги имеют вид <префикс:имя_тега>….</префикс:имя_тега>

Когда СисУп Framework встречает тэги шаблона, то пытается интерпретировать их и вывести вместо них соответствующий код PHP.

 

 

Базовые классы

В базе СисУп Framework уже содержит классы, перекрывающие 99% нужд веб-разработчика. При необходимости, в любой класс можно внести изменения или написать собственный.

 

capcha - класс для работы с captcha. Принимает параметры w=ширина изображения, h=высота изображения, bg=цвет подложки (по умолчанию #FFFFFF), params=дополнительные параметры, style=цсс стили.
Например, <префикс:capcha w=”110” h=”30” /> выведет в шаблон:
<img src='/images/capcha/сгенерированное_имя_файла.gif' width='110' height=’30’ />
<префикс:capcha w=”110” h=”30” params=”class=’captha-class’” style=”float:left; margin:0 10px 0 0” /> выведет в шаблон:
<img src='/images/capcha/сгенерированное_имя_файла.gif' width='110' height=’30’ class=’captha-class’ style=”float:left; margin:0 10px 0 0” />

 

cond класс для генерации стандартных if..else.. на PHP. Например:
<префикс:cond cond=”preg_match(‘~(about)~i’, $_SERVER['REQUEST_URI'])”>
    < префикс:
include file=”/templates/about.html”>
<префикс:
else>
    < префикс:
include file=”/templates/404.html”>
</префикс:
cond>
Выведет в шаблон:

<?php if(preg_match(‘~(about)~i’, $_SERVER['REQUEST_URI'])) { ?>
     … Содержимое страницы /templates/about.html
<?php } else { ?>
      … Содержимое страницы /templates/404.html
<?php } ?>

 

croppText класс для обрезания строк. Использует встроенную библиотеку для работы с UTF-8 строками. Принимает параметры text=исходный_текст и size=длина выводимого текста.
Например: <префикс:croppText text=”Длинный текст” size=”5” />
Выведет в шаблон:    Длинный…

 

data  класс для работы с датой. Принимает параметры date=Дата (строка), format=Формат_вывода_даты, rus=булевое_значение, scale=булевое_значение
Например: <префикс:data date=”2001/12/25” format=”d.m.Y” /> Выведет в шаблон 25.12.2001
<префикс:
data date=”20.01.2012” format=”d M Y, l” rus=”true” scale=”true”  />
Выведет в шаблон 20  Января 2012, Пятница

dirs класс для вывода дерева директорий. Принимает параметр dir=начальная_директория
Например:
< префикс:dirs dir=" images“>
        <
a class="subdir" href="ссылка.html?dir={$dir}">{$dirName}</a>
</ префикс:dirs>
Выведет в шаблон все поддиректории из папки
images в виде конструкции
<
a class="subdir" href="ссылка.html?dir=путь_к_поддиректории_1">имя_поддиректории_1</a>
<
a class="subdir" href="ссылка.html?dir=путь_к_поддиректории_2">имя_поддиректории_2</a>
<
a class="subdir" href="ссылка.html?dir=путь_к_поддиректории_3">имя_поддиректории_3</a>

fileInfo  класс для вывода информации о файле. Принимает параметры file=путь_к_файлу remote= булевое_значение.
Например:
< префикс:fileInfo file=" images/image.jpg“>
       Изображение {$
type}, размер изображения: {$imageSize}, размер файла: {$size}
</ префикс:
fileInfo>
Выведет в шаблон:  Изображение
JPG, размер изображения: 100x100, размер файла: 5Kb


files  класс для вывода списка файлов в директории. Принимает параметр dir=путь_к_директории
Например:
<ul>
< префикс:files dir=" images“>
        <
li>{$fileName}</li>
</ префикс:
files>
</
ul>
Выведет в шаблон все файлы из папки
images в виде списка
<
ul>
<
li>имя_файла_1</li>
<
li>имя_файла_1</li>

</
ul>

filesystem  класс для работы с файловой системой. Позволяет производить операции переименования, создания и удаления файлов и директорий, а также загрузки и изменения прав. Принимает параметры dir=путь_к_директории, file=имя_файла, action=код_операции
Параметр action может принимать значения:
createDir, renameDir, clearDir, clearSubDir, chModeDir, deleteDir, uploadFile, renameFile, deleteFile

 

img  класс для работы с изображениями. Принимает параметры w=ширина_изображения, h=высота_изображения, src=путь_до_изображения, params=дополнительные_параметры, style=цсс_стили, q=качество_изображения. Необязательно указывать оба параметра w и h. Достаточно указать один из них, второй будет рассчитан автоматически.
Например, <префикс:img src=”images/имя_файла” w=”110” /> выведет в шаблон:
<img src='/images/_thumbs/имя_файла_x110' />
<префикс:img h=”300” src=”images/имя_файла ” params=”class=’image-class’” style=”float:left; margin:0 10px 0 0” />
Выведет в шаблон:
<img src='/images/_thumbs/имя_файла_y300' class=’image-class’ style=”float:left; margin:0 10px 0 0” />

 

 

numberFormat   класс для форматирования вывода числового значения. Принимает параметры var=значение_для_форматирования, round=количество_знаков.
Например:
<префикс:numberFormat var=”10000.2599” round=”2” />
Выведет в шаблон: 10 000.26

 

 

pager  класс для организации постраничного вывода. Принимает параметры sql=sql_запрос, curPage=номер_текущей_страницы, pageSize=записей_на_странице
Например:
<префикс:pager sql="select * from `news`“ pageSize="10" curPage="$_REQUEST[page]">
    <префикс:
cond cond="&prefix"><div class="pager">Cтраницы:</префикс:cond>
    <префикс:
cond cond="&curPage"><b>{$curPage}</b></префикс:cond>
    <префикс:
cond cond="&numPage"><a href="?p={$numPage}">{$numPage}</a></префикс:cond>
    <префикс:
cond cond="&postfix"></div></префикс:cond>
</префикс:
pager>
Выведет в шаблон:
<
div class="pager">
   
Cтраницы:
   <
b>1</b> <a href=”?p=2”>2</a> <a href=”?p=3”>3</a>…
</
div>

 

 

replaceText  класс для замены строки в шаблоне. Принимает параметры text=что_заменить, set=на_что_заменить. В шаблоне text должен быть обернут в конструкцию %%%.....%%%
Например: в шаблоне указываем <title>%%%TITLE%%%</title> затем в шаблоне следует какая-то логика, в результате которой получаем некое значение, например <?php $title=”Заголовок страницы”; ?>. Теперь, если мы укажем <префикс:replaceText  text="TITLE“ set="$title">, то на выходе получим<title>Заголовок страницы</title>

 

 

setcooka  класс для работы с COOKIES. Принимает параметры var=имя_куки, value=значение_куки, expired=время_жизни_куки.
Например:
<префикс:setcooka var=”cookie_1” value=”1” expired=”3600” />
Установит куку
cookie_1  со значением «1» для текущего домена на 1 час

 

 

sql  класс является расширением для встроенного класса Query. Служит для работы с БД MySql.
Принимает параметры sql=текст_запроса, limit=количество_записей, stripTags=обрезать_теги, maxSize=макс_длина_строки
<ul>
<префикс:sqlsql="select _id, _name, _date, _textfrom `news`“ stripTags=”truemaxSize=”100” limit=”10”>
        <
li><ahref=”?article={$_id}”><префикс:datadate=”&_date” />{$_name}</a><p>{$_text}</p></li>
</ префикс:
sql>
</
ul>
Выведет в шаблон 10 записей из таблицы
news:
<
ul>
<li>
     <
ahref=”?article=1”>10.01.2005  Заголовок новости </a>
     <
p>Первые 100 знаков из поля `_text`</p></li>
</
li>
….
</
ul>