Параметры кирпича

В текущей версии платформы Абрикос определены следующие типы параметров:

Локальная переменная - 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].