Переменные шаблона

Приведем список всех переменных, передаваемых на шаблон в Blox CMS.

Основные переменные шаблона

При любых условиях в шаблон поступают следующие переменные:

$pageНомер текущей страницы
$blockНомер текущего блока
$dat[]Данные однозаписного блока.

$dat[1], $dat[2] и т. д. — непосредственно данные.

$dat['rec'] — номер записи (уникальный порядковый номер записи в таблице БД).

$dat['edit']код кнопки редактирования записи (передается только для пользователей с правом редактирования блока).

$dat['delete'] — код кнопки удаления записи (Код передается только для пользователей с правом редактирования блока. Эту кнопку необязательно позмещать в шаблоне, так как штатное удаление записи производится через панель редактирования записи).

$dat['blocks'] — массив номеров блоков данной записи. В элементе $dat['blocks'][1] находится номер блока. В то время, как в элементе $dat[1] содержится html-код соответствующего блока.

$dat['selects'] — массив номеров записей выборных списков данной записи. В элементе $dat['selects'][1] находится номер выбранной записи. В то время, как в элементе $dat[1] содержится значение назначенного для отображения поля той же записи.

Для совместимости с многозаписными шаблонами дополнительно передается массив $tab[0], равный всему $dat.

$tab[][]Данные многозаписного блока. Обычно в многозаписном блоке этот массив перебирают по первому индексу с помощью оператора foreach с выделением одномерного массива (например, $dat[]), аналогичного данным однозаписного блока (см. выше).

В первом индексе tab[*][] передается вспомогательный номер для задания порядка следования записей. Не путайте его с номером записи, который передается в элементе $tab[]['rec'].

Для совместимости с однозаписными шаблонами дополнительно с $tab передается массив $dat, равный $tab[0].

$edit['button']Кнопка редактирования блока (режим многозаписного редактирования)
$edit['href']Ссылка редактирования блока (режим многозаписного редактирования)
$edit['new-rec']['button']Код кнопки редактирования новой записи.

Эта переменная добавлена для удобства, чтобы можно было поместить кнопку новой записи в любое место шаблона.

Вообще-то, код кнопки редактирования новой записи находится в переменной $dat['edit'] в последней пустой записи (если блок отображается для пользователя с правами редактирования). В режиме обратной выборки запись с кнопкой редактирования новой записи идет наоборот первой.

Кстати, чтобы проверить, выводится ли запись с кнопкой новой записи (то есть, в ней нет данных), нужно проверить наличие переменной $dat['rec']. Если ее нет, значит это запись с кнопкой новой записи.

$blockInfo['id']Номер текущего блока (совпадает с переменной $block)
$blockInfo['tpl']Имя шаблона (имя текущего файла без расширения tpl)
$blockInfo['delegated-id']Номер делегированного блока (только в случае делегирования блока в текущий блок).

Делегирование применяется при назначении шаблона. Суть делегирования заключается в том, что один блок использует данные другого блока.

По этой переменной можно определять, делегирован ли текущий блок.

$blockInfo['src-block-id']Номер исходного (делегированного) блока. Его значение совпадает с $blockInfo['id'], если не было делегирования.

Номер страницы, на которой находится исходный блок можно найти так: Blox::getBlockPageId($blockInfo['src-block-id'])

Пример использовании переменных $blockInfo['src-block-id'] и Blox::getBlockPageId($blockInfo['src-block-id']) см. в шаблоне новостей.

$blockInfo['parent-block-id']Номер родительского блока текущего блока ($block)
$blockInfo['parent-rec-id']Номер родительской записи, в которой находится текущий блок

Остальные переменные подаются при определенных условиях.

Переменные шаблона, передаваемые при выборке одной записи

Если был запрос на отображение одной определенной записи, то из базы данных извлекаются данные запрошенной записи, а также две соседние записи (если такие есть):
в smarty-шаблонахв php-шаблонах
$tab[0][] $tab[0][]Данные запрошенной записи Дублируются массивом $dat[]
$tab.prev[]$tab['prev'][]Данные предыдущей записи
$tab.next[]$tab['next'][]Данные следующей записи


Переменные шаблона, передаваемые при прочих условиях

$tdat[]Данные с предобработчика шаблона (файл *.tplh).
$udat[]Данные с предобработчика обновления данных (файл *.tuh).
$subscription[]Массив с информацией о состоянии подписки пользователя на текущий блок.


Дополнительные общие данные блока

$xdat[]Экстраданные — аналог переменной $dat