xt - system szablonów

xt, czyli precz z szablonowym pseudojęzykiem

xt to system szablonów w pełni opartych tylko o xhtml. Nie musisz uczyć się żadnego pseudojęzyka, wystarczy znać xhtml, php oraz css, o który opiera się cały silnik.

Projekt umarł śmiercią naturalną - zainteresowanych proszę o kontakt.

Krótka instrukcje użytkowania

Wiki

Dokumentacja zostanie docelowo przeniesiona na wiki. Jeśli możesz - pomóż ją uzupełnić.

Szybki start

Szablon

Przykładowy szablon używany w całym dokumencie:

Jak łatwo zauważyć - szablon jest zwykłym dokumentem html. Nie zawiera żadnych dodatkowych znaczników czy pseudo-języka.

Pierwsza strona z użyciem xt

Poniżej kod php odpowiedzialny za wyświetlenie strony. To najkrótszy kod, jakiego potrzebuje xt, aby wyświetlić stronę.

include('xt.class.php'); $t=new xt('szablon.html'); $t->display();

Kod wynikowy jest wyświetlany automatycznie pod kodem php, zgodnie z najnowszą wersją szablonów.

W linii 1 includujemy plik xt.class.php. W powyższym przykładzie znajduje się on w tym samym folderze, co plik php. Następnie tworzymy nowy obiekt xt i podajemy jako parametr nazwę szablonu (szablon jest poprawnym, zwykłym plikiem html, stąd jego rozszerzenie .html). Na koniec wyświetlamy całość strony metodą display().

Na razie, póki nie uporam się z kodowaniem szablon prawdopodobnie musi mieć kodowanie utf-8. Wszelkie testy wskazane.

System obsługuje już wszystkie inne kodowania. Jedynym wymaganiem jest umieszczenie go w sekcji meta lub nagłówku xml.

Oczywiście powyższy szablon nie ukazuje nic ciekawego, poza tym, że wyświetli kod jako application/xhtml+xml przeglądarkom, które potrafią go obsłużyć.

Funkcja add

Podstawową funkcją systemu szablonów jest funkcja add o następującej składni: add( obiekt, wartosc ).

Odwoływanie się do obiektów jest identyczne z css. W razie jakichś problemów proszę korzystać z tematu o xt na forum.

Obsługiwane selektory:

Znaczenie selektorów wyjaśnione na stronach w3c

Wprowadziłem też jedną nowość - jeśli obiektów jest więcej - możemy wybrać n-ty element w następujący sposób: [n-1], (w php i wielu językach programowania numeruje się od 0) [n] (kompatybilność z xpath) np.:

Poniżej przykłady:

include('xt.class.php'); $t=new xt('szablon.html'); $t->add('#akapit', ' Do akapitu dodajemy dodatkową treść, testując funkcję add()'); $t->display(); include('xt.class.php'); $t=new xt('szablon.html'); $t->add('p.akapit[1]', ' Do akapitu dodajemy dodatkową treść, testując funkcję add()'); $t->display(); include('xt.class.php'); $t=new xt('szablon.html'); $t->add('a[href^="http"][1]', ' (link zewnętrzny)'); $t->display();

Funkcja set

Funkcja ta pozwala na zmianę atrybutów danego obiektu. Jej składnia jest następująca: set( obiekt, array( 'atrybut'=>'wartosc', 'atrybut'=>'wartosc',...))

Obiekt pobiera się tak jak w przypadku add(). Oczywiście krótki przykład:

include('xt.class.php'); $t=new xt('szablon.html'); $t->set('akapit[1]', array('title'=>'To jest testowy akapit', 'style'=>'background:blue')); $t->display();

W przypadku funkcji set() mamy jeden magiczny atrybut - data, który oznacza zawartość tekstową danego obiektu, np:

include('xt.class.php'); $t=new xt('szablon.html'); $t->set('akapit[1]', array('title'=>'To jest testowy akapit', 'style'=>'background:blue', 'data'=>' A to dodatkowa treść')); $t->display();

Dalsze funkcje

Innymi ciekawymi funkcjami jest insertBefore, insertAfter, css, js, setStyle. Funkcja add obsługuje również pętle.

Opis podanych funkcji będzie stopniowo dodawany, zatem proszę o wyrozumiałość.

Mam nadzieję na szybkie przejście na dokumentację opartą o wiki. Muszę tylko wymyślić jakiś silnik weryfikacji szablonów, aby złośliwy kod nie zniszczył plików serwera.

Ta strona została wygenerowana właśnie dzięki xt.