6. Zarządzanie znacznikami

Kolejnym zagadnieniem jest zarządzanie znacznikami, gdzie także mamy do dyspozycji dynamiczne narzędzia. Podstawowym jest instrukcja opt:tag:

<opt:tag name="$tagName">
  Treść
</opt:tag>

Za jej pomocą tworzymy dynamicznie znacznik o wskazanej przez nas nazwie. Zmienna $tagName może zawierać przestrzeń nazw, lecz mamy także atrybut ns, gdzie możemy ustawić ją osobno. Drugi sposób ma pewną przewagę. Jeśli wyrażenie określające przestrzeń nazw jest puste (ma wartość null), OPT wie, że nie należy doklejać dwukropka. Pojawia się pytanie, co zrobić, gdy chcemy aby nasz nowy znacznik zawierał atrybut name? Nic prostszego - dodajemy go instrukcją opt:attribute.

Drugim przydatnym narzędziem w pracy ze znacznikami jest opt:on, który warunkowo wyświetla znacznik, lecz zawsze pozostawia jego treść. Zastosowanie pokazuje poniższy przykład:

<p class="author"><span>Autor:</span> <a parse:href="$homepage" opt:on="$homepage">{$nickname}</a></p>

Chcemy, aby znacznik <a> nie wyświetlał się, gdy użytkownik nie będzie miał ustawionej strony domowej, jednak cały czas powinna wyświetlać się nazwa. W zależności od tego, czy zmienna $homepage jest ustawiona, możemy otrzymać jeden z następujących kodów wynikowych:

<!-- gdy $homepage jest ustawiona -->
<p class="author"><span>Autor:</span> <a href="http://www.example.com/">Użytkownik</a></p>
 
<!-- gdy $homepage nie jest ustawiona -->
<p class="author"><span>Autor:</span> Użytkownik</p>

W OPT 2.1 atrybut opt:on zostanie przemianowany na opt:omit-tag w ramach ujednolicania składni. Oczywiście nie należy się tym przejmować, gdyż wersja ta będzie posiadać zarówno tryb kompatybilności, jak i automatyczny konwerter szablonów do nowej składni.