2.7. Instrukcje

2.7.1. Sekcja
2.7.2. If

Instrukcją nazywamy dowolny znacznik XML umieszczony w jednej z zarejestrowanych w parserze przestrzeni nazw XML, który:

  1. Jest przetwarzany przez OPT.
  2. Znika w trakcie kompilacji - w kodzie wynikowym zostają tylko efekty jego pracy.

Instrukcje są jednym z podstawowych elementów pracy w OPT. To właśnie za ich pomocą można generować listy czy warunkowo wyświetlać jakiś fragment. Przyjrzyjmy się dokładniej, jak działają, na podstawie instrukcji nazwanej "sekcją" służącej do generowania list. Poniżej znajduje się szablon wykorzystujący ją:

Przykład 2.16. Przykładowa instrukcja: sekcja

<div id="menu">
        <h3>Menu</h3>
        <ol>
                <opt:section name="menu">
                <li><a parse:href="$menu.address">{$menu.title}</a></li>
                </opt:section>    
        </ol>     
</div>

Cały kod pomiędzy znacznikami opt:section zostanie teraz potraktowany jako wygląd pojedynczego elementu listy. Sekcja powie parserowi, w jaki sposób można robić z niego listę, natomiast sama jawnie nie pojawi się w kodzie wynikowym - internauta zobaczy wyłącznie efekt jej działania, czyli np.

<div id="menu">
        <h3>Menu</h3>
        <ol>
                <li><a href="strona1.php">Strona 1</a></li>
                <li><a href="strona2.php">Strona 2</a></li>
                <li><a href="strona3.php">Strona 3</a></li>
                <li><a href="strona4.php">Strona 4</a></li>
        </ol>
</div>

Niektóre instrukcje mają rozbudowaną budowę i składają się z wielu różnych znaczników. Inne mogą być użyte tylko w pewnych miejscach. Generalnie przy ich projektowaniu przyjęto zasadę, aby twórca szablonu mówił, CO chce zrobić, a nie - JAK. Ma to na celu wyeliminowanie konieczności programowania po stronie szablonów oraz uczynienie ich jak najbardziej przejrzystymi, łatwymi w tworzeniu oraz mniej podatnymi na błędy. Chociaż typowe instrukcje programistyczne są wciąż dostępne, zachęcamy ograniczyć się z ich stosowaniem do niezbędnego minimum oraz pozwolić kompilatorowi odwalać brudną robotę za Ciebie.