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

Приведем список всех переменных, передаваемых на шаблон в 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['newRec']['button']Код кнопки редактирования новой записи.

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Если был запрос на отображение блока по частям, то на шаблон кроме самих данных одной части, подаются следующие переменные:
$request['part']['current']Номер выбранной (текущей) части
$request['part']['numOfParts']Количество частей, на которые были разбиты все записи
$request['part']['numOfRecs']Общее количество записей (во всех частях)
Для удобства передаются вспомогательные производные переменные:
$request['part']['prev']Номер предыдущей части
$request['part']['next']Номер следующей части
$request['part']['default']Номер части, открываемой по умолчанию, то есть, без запроса part.
При $params['part']['numbering']='desc' значение этой переменной равно $request['part']['numOfParts'], в остальных случаях значение равно 1. Пример
$request['part']['last']Номер части, находящейся в конце пагинации,
в противоположность переменной $request['part']['default'].
$request['part']['parts']Массив с номерами всех частей по порядку
$request['part']['limit']Ограничение на число отображаемых записей.
Совпадает с параметром дескриптора: $params['part']['limit']. Однако, если был url-запрос limit, то его значение становится равным значению этой переменной.


После поискового запроса к блоку, в шаблоне возникает массив $search:
$request['search']['searchTexts'][НомерПоля]Все поисковые слова данного поля в виде строк с пробелами между словами.
$request['search']['atBeginning']Поиск только в начале слов
$request['search']['highlight']Выделять найденные поисковые слова.
$request['search']['searchFields']Массив полей, поисковые слова которых объединяются в один общий запрос. Используется обычно, когда одно поле ввода используется для нескольких полей.
$request['search']['searchWords'][НомерПоля][]Все поисковые слова данного поля в виде массива слов.
$request['search']['patterns'][НомерПоля]Массив паттернов для поиска среди текста данного поля (поставить в качестве первого параметра функции preg_replace)
$request['search']['replacements'][НомерПоля]Массив строк для замены текста данного поля (поставить в качестве второго параметра функции preg_replace)


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

$tdat[]Данные с предобработчика шаблона (файл .tplh).
$udat[]Данные с предобработчика обновления данных (файл .tuh).
$edit['updateSortedByColumns']['button']Код кнопки сохранения нового порядка записей. Появляется после команды сортировки данных по столбцам или команды на обратный порядок записей.
$edit['updateSortedByColumns']['href']Ссылка для сохранения нового порядка записей. Появляется после команды сортировки данных по столбцам или команды на обратный порядок записей.
$request['backward']Если эта переменная истинна, значит записи отображаются в обратном порядке.
$subscription[]Массив с информацией о состоянии подписки пользователя на текущий блок.


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

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