Агрегатори
Смеретеги-агрегатори подібні до операторів циклу в мовах програмування: вони отримують HTML код зі смеретегами і обчислюють його (виконують підстановку смеретегів) для певного списку вершин. Результуючий HTML код є сумою HTML кодів, обчислених для окремих вершин.
Найчастіше агрегатори застосовуються для генерації навігаторів – різноманітних списків посилань на вершини; але вони можуть застосовуватись для формування різноманітних звітів, каталогів та інших даних, для яких треба об’єднувати інформацію з кількох вершин.
Хоча базовий набір модулів Смереки містить досить багато різних агрегаторів, передбачити всі можливі випадки їх застосування неможливо, і програміст Смереки досить часто зустрічається з необхідністю написати власні агрегатори.
SmerAgregator
Модуль: agregator.php
Параметри: SmerekaValue Node LimitToClass HideMode
Призначення: виконує обчислення HTML коду, переданого в параметрі SmerekaValue, для дочірніх вершин базової вершини. Якщо параметр Node заданий, він визначає ід базової вершини; якщо він не заданий, базовою вважається контекстна вершина. Якщо параметр LimitToClass задано як ід класу, з числа дочірніх вершин будуть відібрані тільки вершини заданого класу. Якщо параметр HideMode=1, агрегатор буде пропускати такі дочірні вершини, для яких атрибут Hidden=True.
Приклад виклику. Виводимо список статей, підпорядкованих певній вершині:
<Smereka1 Module="agregator.php" Func="SmerAgregator"
Node="1…" HideMode="1">
<p class="BodyText">
<Smereka Module="agregators/navigators.php"
Func="NavigatorItem" />
</p>
</Smereka1>
Приклад результата:
Статичні смеретеги
Атрибути
Зображення
Посилання
Умовні смеретеги
Агрегатори
OneLineNavigator
Модуль: agregator/navigators.php
Параметри: ті самі, що й для SmerAgregator
Призначення: вивести список посилань на дочірні вершини як один рядок.
Приклад виклику. Виводимо список статей, підпорядкованих певній вершині:
<Smereka Module="agregators/navigators.php"
Func="OneLineNavigator" Node="1…" />
Приклад результата:
Статичні смеретеги | Атрибути | Зображення | Посилання | Умовні смеретеги | Агрегатори
Цей спосіб найкраще використовувати, коли назви короткі і весь список може розміститись в одному рядку.
TrackBar
Модуль: agregators/navigators.php
Параметри: IncludeRoot IncludeLeaf Separator MaxDocTitle
Призначення: сформувати «хлібні крихти» – шлях по дереву документів сайта від кореня до поточної вершини.
IncludeRoot=0 – не включати кореневу вершину;
IncludeRoot=1 – включати кореневу вершину, але без посилання;
IncludeRoot=2 – включати кореневу вершину як посилання
(за умовчанням);
IncludeLeaf=0 – не включати кінцеву вершину;
IncludeLeaf=1 – включати кінцеву вершину, але без посилання (за умовчанням);
IncludeLeaf=2 – включати кінцеву вершину як посилання;
Separator – роздільник шляху (за умовчанням ' / ');
MaxDocTitle – число, скільки символів з DocTitle включати; при перевищенні заголовок вершини обрізається на цьому символі і додається…; за умовчанням не задано – скорочення не виконується.
Приклад виклику: <Smereka Module="agregators/navigators.php" Func="TrackBar" />
Приклад результата: можна побачити на даній сторінці нижче її заголовка.
TableAgregator
Модуль: agregators/tablemaker.php
Параметри: ті самі, що й для SmerAgregator, + NumColumns Order Numbering NumberStr
Призначення: сформувати таблицю з агрегованих даних.
NumColumns – число колонок для таблиці (за умовчанням 2);
Order='column' – заповнювати контейнер-таблицю по колонках:
1… 10…
2… 11…
Order='row' – заповнювати контейнер-таблицю по стовпцях (за умовчанням):
1… 2…
5… 6…
Numbering – початкове значення, з якого починати нумерувати елементи в таблиці; якщо не встановлено – не нумерувати взагалі.
NumberStr – кодовий рядок в шаблоні (SmerekaValue), який треба заступити номером. Якщо не встановлено – нумерація не виконується;
Приклад виклику:
<table class="BodyTextNoIndent" cellpadding="4">
<Smereka1 Module="agregators/tablemaker.php"
Func="TableAgregator" Node="1…" HideMode="1"
NumColumns="2" Order="column" Numbering="1"
NumberStr="As16Xz86">
<tr>
<td>
As16Xz86. <Smereka Module="agregators/navigators.php"
Func="NavigatorItem" />
</td>
</tr>
</Smereka1>
</table>
Приклад результата:
Gallery
Модуль: agregators/tablemaker.php
Параметри: ті самі, що й для TableAgregator
Призначення: сформувати галерею зображень у вигляді таблиці з посиланнями.
Приклад виклику: <Smereka Module="agregators/tablemaker.php" Func="Gallery" />
Приклад результата: можна подивитись тут.
TableOfContent
Модуль: agregator/articlenavigators.php
Параметри: ті самі, що й для SmerAgregator, + WithAuthors
Призначення: вивести ієрархічний список посилань на підпорядковані вершини всіх рівнів (сформувати таблицю змісту ієрархічної публікації).
WithAuthors – якщо цей параметр дорівнює 1, то для кожної вершини, яка має атрибут Authors, він буде виведений перед назвою статті.
Приклад виклику.
<Smereka Module="agregators/articlenavigators.php"
Func="TableOfContent" />
Попередня стаття | Перелік статей | Наступна стаття
|