Параметры кирпича
В текущей версии платформы Абрикос определены следующие типы параметров:
- bkvar - локальная переменная кирпича;
- var - глобальная переменная кирпича;
- p - параметр вызова кирпича;
- ph - фраза кирпича, которая синхронизируется с БД;
- mjs - JS-компонент модуля, который будет запрошен на выполнение после инициализации страницы в интернет-браузере клиента;
- mcss - CSS-файл модуля;
- js - JS-файл, который будет включен в список дополнительных JS-файлов собираемой страницы;
- css - CSS-файл, который будет включен в список подключаемых CSS-стилей собираемой страницы;
- tt - шаблон, используется только стартовых кирпичах;
- script - PHP-скрипт кирпича, который будет вызван в процессе компиляции кирпича;
Локальная переменная - bkvar
Параметр bkvar - определяет локальную переменную кирпича.
Объявления в заголовке кирпича:
[bkvar=myvar]Default value[/bkvar]
Вывод результата в теле кирпича:
[bkvar]myvar[/bkvar]
Область применения bkvar
Область применения параметра bkvar обширна, но основна задача переменной - это описание частей интерфейса в кирпиче с последующим применением.
Допустим, необходимо построить следующий элемент интерфейса, который будет строить список неких записей из БД:
<ul>
<li>Запись 1</li>
<li>Запись 2</li>
<li>...</li>
<li>Запись N</li>
</ul>
Для реализации необходимо создать кирпич и скрипт управления, которым будет обработан
этот кирпич в момент его сборки.
Кирпич mylist.html:
<!--[*]
[script]mylist.php[/script]
[bkvar=row]<li>{v#item}</li>[/bkvar]
[bkvar=result][/bkvar]
[*]-->
<ul>
[bkvar]result[/bkvar]
</ul>
где,
[bkvar=row]...[/bkvar] - локальная переменная, которая будет содержать часть
элемента интерфейса,
[bkvar=result][/bkvar] - локальная переменная, в которую будет занесен результат
построения списка в php-скрипте mylist.php,
[script]mylist.php[/script] - имя php-скрипта, который будет вызван в процессе сборки кирпича.
Скрипт mylist.php:
<?php
// получить объект кирпича который вызвал этот скрипт
$brick = Brick::$builder->brick;
// получить указатель на записи из таблицы cms_list по SQL запросу 'SELECT * FROM cms_list'
$rows = Brick::$db->query_read('SELECT * FROM cms_list');
//объявить пустую строковую переменную $list
$list = "";
// прочитать каждую запись из таблицы в переменную $r, где $r - будет
// иметь тип "массив", указателем в котором будет имя поля из таблицы
while (($r = Brick::$db->fetch_array($rows))){
// взять значении из локальной переменной кирпича row и заменить в
// нем идентификатор item на значение из строки выбранного запроса,
// результат добавить к переменной $list
$list .= Brick::ReplaceVar($brick->param->var['row'], 'item', $r['field_item']);
}
$brick->param->var['result'] = $list;
?>
В результате, когда ядро платформы будет компилировать кирпич mylist будет вызван скрипт mylist.php, который сделает выборку из БД, построит список используя элемент шаблона взятый из локальной переменной row и результат занесет в локальную переменную result, значение которой будет занесено в тело кирпича в то место, где объявлен вывод значения этой переменной - [bkvar]result[/bkvar].