Last modified 3 years ago
Параметр кирпича - bkvar
Описание
Параметр bkvar - определяет локальную переменную кирпича.
Объявления в блоке "Параметры кирпича":
[bkvar=myvar]Default value[/bkvar]
Вывод результата в блоке "Тело кирпича":
[bkvar]myvar[/bkvar]
Область применения
Область применения параметра bkvar обширна, но основная область - это описание частей интерфейса пользователя в кирпиче.
Допустим, необходимо построить следующий элемент интерфейса пользователя, который будет строить список неких записей из БД:
<ul> <li>Запись 1</li> <li>Запись 2</li> <li>...</li> <li>Запись N</li> </ul>
Для реализации этого интерфейса нам потребуется создать кирпич и скрипт управления для него:
- Создать кирпич, например mylist.html, описав в нем следующее:
- В блоке "Параметры кирпича" объявить:
- два параметра типа bkvar (локальные переменные):
- переменная row - часть элемента интерфейса пользователя, значение которой будет <li>{v#item}</li>, где {v#item} - идентификатор item, который будет заменен значением из БД при построения списка,
- переменная result - результат построения списка, в которую будет занесен построенный список, по умолчанию пустой.
- параметр типа script в котором будет указан файл скрипта управления кирпичом.
- два параметра типа bkvar (локальные переменные):
- В блоке "Тело кирпича" описать шаблон, на основе которого будет собран элемент интерфейса пользователя.
- В блоке "Параметры кирпича" объявить:
- Создать скрипт управления кирпичом, который будет:
- читать записи из БД,
- строить список на основе прочитанных записей из БД и шаблона части элемента из локальной переменной кирпича row,
- занесет построенный список в локальную переменную кирпича result
В итоге будем иметь следующее:
Файл кирпича mylist.html
<!--[*]
[script]mylist.php[/script]
[bkvar=row]<li>{v#item}</li>[/bkvar]
[bkvar=result][/bkvar]
[*]-->
<ul>
[bkvar]result[/bkvar]
</ul>
Cкрипт управления 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; ?>
