2. Konfiguracja parsera OPT

Domyślny parser OPT posiada wiele opcji pozwalających złagodzić lub zaostrzyć respektowanie standardu XML. W najbardziej okrojonej wersji (tzw. tryb tekstowy) parser wyszukuje jedynie swoje własne znaczniki, a całą resztę traktuje jak statyczny tekst, podobnie jak to robi PHP i Smarty. Jednak domyślne ustawienia kierują nas ku maksymalnej zgodności ze standardem, tj. OPT oczekuje od nas, że szablon będzie posiadać prolog, poprawnie podomykane znaczniki i całą resztę. Napisz sobie przykładowy szablon:

<?xml version="1.0" ?>
<opt:root>
  <ul>
    <li>Element</li>
    <li>Element</li>
    <li>Element</li>
  </ul>
</opt:root>

Po jego wykonaniu przez skrypt i zajrzeniu do źródeł nietrudno zauważyć, że OPT zapisał wszystko ciurkiem w jednej linijce:

<ul> <li>Element</li> <li>Element</li> <li>Element</li> </ul>

Nie jest to żaden błąd. Domyślnie OPT wycina z kodu zbędne białe znaki, aby zmniejszyć jego objętość i przy okazji utrudnić jego analizę osobom postronnym, co przydaje się na serwerach produkcyjnych. Jednak w trakcie tworzenia strony chcielibyśmy, aby wszystko wyglądało mniej więcej tak, jak napisaliśmy. W tym celu wyłączamy w konfiguracji opcję stripWhitespaces i rekompilujemy szablon:

$tpl = new Opt_Class;
// ...
$tpl->stripWhitespaces = false;

Aby wymusić rekompilację szablonu, po prostu usuwamy odpowiadający mu plik z katalogu wskazywanego przez compileDir. Przyjrzyjmy się teraz niektórym pozostałym opcjom wpływającym na rozumienie XML-a przez OPT:

prologRequired
Jeśli jest ustawiony na false, szablony nie muszą mieć prologu (prolog jest wtedy traktowany jako tekst do wyświetlenia).
singleRootNode
Z wartością false dopuszcza istnienie większej liczby głównych znaczników w pojedynczym szablonie.
htmlAttributes
Gdy jest włączona (true) dopuszcza stosowanie skróconej formy atrybutów bez podanej wartości.
printComments
Gdy jest włączona (true), komentarze XML są także wysyłane do przeglądarki.
unicodeNames
Standard XML dopuszcza stosowanie Unikodu w nazwach znaczników, lecz z powodów wydajnościowych w OPT ta opcja jest domyślnie wyłączona. Ta opcja pozwala ją uaktywnić.

W tym artykule zakładamy, że OPT pracuje na domyślnych ustawieniach.