Выборочное использование файлов шаблона

Иногда возникают нестандартные задачи, когда из всех файлов шаблона нужны только отдельные файлы.

В таких случаях в целях оптимизации применяйте параметр $params['template-files'] в дескрипторе. В нем нужно перечислить расширения тех файлов, которые будут применяться. В данном параметре допустимы только те файлы, которые участвуют в выводе блока: ['tdd', 'tpl', 'css', 'js']

Пример

Допустим, при клике, всплывает окно, в которое аяксом должен загрузиться наш блок (по запросу: "?block=..."). Для загрузки в это окно html-кода, нужны только файлы tdd и tpl. Однако заранее на странице нужно подключить файлы css и js. С учетом этого, в дескриптор подгружаемого блока нужно добавить такой код:

.tdd

<?php
if (Blox::getScriptName() == 'block')
    $params['template-files'] = ['tdd','tpl'];
elseif (Blox::getScriptName() == 'page')
    $params['template-files'] = ['css','js'];
?>

Другие примеры

$params['template-files'] = [];

Параметр объявлен, но пуст

Блок не извлекается вообще.

Для этих целей предпочтительнее использовать параметр $fields['none'] в родительском шаблоне.

$params['template-files'] =
['tpl','css','js'];
В списке нет 'tdd'

Шаблон будет выведен, но без данных, то есть, переменная шаблона $tab будет пуста.

Подразумевается, что вы организуете подготовку этой переменной по своему усмотрению непосредственно в tpl-файле. Доступны остальные переменные шаблона, в частности, кнопка новой записи. Примечание: tdd-файл фактически вызывается, но не применяется.


См. также