2.7.1. Sekcja

Sekcja jest instrukcją wysokopoziomową służącą do generowania wszelkiego rodzaju list. Automatycznie dba o wiele typowo programistycznych szczegółów, dzięki czemu twórca szablonu może się skupić na swojej robocie. W obrębie znacznika sekcji podajemy kod będący wzorcem pojedynczego elementu. Sekcja pobiera kolejne zestawy danych (przy czym każdy może zawierać wiele bloków), umieszcza je w tym wzorcu i tym samym generuje kolejny element, który dodaje do wyjściowego kodu HTML.

Przykład 2.17. Przykładowa sekcja

<div id="menu">
        <h3>Menu</h3>
        <ol>
                <opt:section name="menu"> <!-- początek sekcji -->
                <li><a parse:href="$menu.address">{$menu.title}</a></li>        <!-- wyglad pojedynczego elementu -->
                </opt:section>            <!-- koniec sekcji -->
        </ol>     
</div>

Sekcja posiada kilka atrybutów:

Tabela 2.2. Sekcja: atrybuty

Sekcja: atrybuty
Nazwa Typ Wymagany? Opis
nazwa ID Tak Identyfikator sekcji, po którym będzie można odwoływać się do bloków aktualnie przetwarzanego elementu listy, a także uzyskać informacje o samej sekcji. Domyślnie identyfikator jest też równoważny nazwie bloku, z którego należy pobrać dane listy - dokładniejsze wyjaśnienia znajdują się poniżej.
order ID Nie Przyjmuje wartości asc oraz desc w zależności od tego, czy chcemy elementy listy wyświetlać od początku czy od końca. Domyślne ustawienie to asc.
display Expression Nie Jeżeli ten atrybut jest ustawiony, możemy kontrolować, czy sekcja ma być wyświetlona, czy nie w zależności od tego, jaką wartość logiczną przyjmie podane w tym atrybucie wyrażenie. true oznacza, że sekcja będzie wyświetlona. Manualne wyłączenie wyświetlania tym atrybutem nie spowoduje pokazania się komunikatu o braku elementów w liście, jeżeli taki zdefiniowaliśmy.
datasource Wyrażenie Nie Za jego pomocą możemy manualnie określić położenie bloku z elementami listy, jeżeli automatyczna detekcja zawodzi.
separator Wyrażenie Nie Wygląd separatora, którym można oddzielić dwa zestawy danych. Więcej o separatorach w poświęconym im rozdziale: ???.

Wygląd elementu umieszczamy między znacznikami opt:section. Aby odwołać się do bloków elementu, używamy składni $nazwasekcji.blok. Jest ona identyczna ze składnią odwoływania się do elementów tablicy, ale OPT z kontekstu dobierze odpowiedni styl. Jeżeli nie istnieje sekcja o podanej nazwie, zostanie to skompilowane w domyślny sposób, zaś w przeciwnym wypadku jako element sekcji. OPT dopuszcza tworzenie dłuższych rozwinięć: $nadsekcja.podsekcja.blok, lecz w tym wypadku pod uwagę brane są wyłącznie dwa ostatnie, natomiast wszystkie pozostałe są ignorowane i można tam wypisywać, co tylko się chce.