CONTENT MANAGEMENT SYSTEM
Blox Logo
Blox CMS — блочный метод сайтостроения
.
 
Blox Help

UTF-8 без BOM
Blox CMS работает на HTML5
←→

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

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

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

Пример: в списке вакансий каждая запись состоит из наименования вакансии и описания вакансии.
Задача — над списком вакансий поместить заголовок, а под списком указать электронный адрес, куда отправлять резюме.

Дескриптор и шаблон будут выглядеть так:
list.tddlist.tpl
<?php

$titles[1]='Наименование';
$titles[2]='Описание';

$types[1]='varchar(100)';
$types[2]='text';

$params['isMultiRec'] = true;

####### Допданные #######

$xtitles[1]='Заголовок';
$xtitles[2]='e-mail';

$xtypes[1]='varchar(100)';
$xtypes[2]='varchar(100)';
<?php

echo'
<h1>'.$xdat[1].'</h1>
<ul>';
foreach ($tab as $dat)
{
    echo'
    <li>'.$dat['edit'].'        
        <h2>'.$dat[1].'</h2>
        <div>'.$dat[2].'</div>
    </li>';
}
echo'
</ul>
<a href="mailto:'.$xdat[2].'">Отправить резюме</a>';

Для заголовка всей страницы лучше использовать внешний шаблон страницы.

Работать с допданными нужно точно также, как и с обычными данными, единственное отличие — ко всем переменным нужно добавлять префикс 'x':

  • В дескрипторе можно объявлять массивы: $xtitles, $xtypes, $xdefaults, $xparams, $xkeys, $xoptions.
  • В шаблоне можно применять массивы: $xtab, $xdat и т.д.
Допданные также полезны в качестве редактируемых пользователем настроек блока (дез допданных настройки пришлось бы записывать в дескрипторе или шаблоне).

См. также