„Ajťák“ Joker, osobní stránky

Nacházíte se v části webu: Hlavní stránka › Počítače, weby

JoresTemplate 1.2

napsal Joker, 7.11.2009 20.32:31, naposledy upraveno 7.11.2009 20.32:31

Po dlouhé době (přesně po dvou letech) se mi konečně povedlo zkompletovat různá vylepšení pro JoresTemplate do nové verze. Tady na webu byla dosud ke stažení verze 1.0, pro své účely jsem už dříve používal trochu vylepšenou verzi 1.1, ale než jsem se dostal k otestování, vyčištění kódu a sestavení dokumentace, přibyly ještě další změny.

Budiž tedy verze 1.1 tady na webu přeskočena a nová verze je 1.2. Ve zbytku článku následuje seznam změn.

PS.: Chtěl bych poděkovat kolegovi s přezdívkou Pooky za pomoc s testováním a odhalováním chyb. I od ostatních uvítám hlášení případných chyb a náměty na novou funkčnost!

Seznam změn oproti verzi 1.0

Nové vlastnosti

  • Bloku IF byla nyní přidána volitelná část ELSE, která se zpracuje není-li podmínka splněna. syntaxe je:
    <!-- JTPL: IF podmínka ID: identifikátor --> Toto se zobrazí, je-li podmínka splněna <!-- JTPL: ELSE: identifikátor --> toto se zobrazí, když podmínka není splněna <!-- JTPL: ENDIF: identifikátor -->
  • Podmíněné bloky, které bez ohledu na výsledek podmínky už nemají šanci na zobrazení, se nyní nevyhodnocují. Například pokud šablona obsahuje blok IF s částí ELSE a obě části obsahují další (vnořené) bloky IF, vnořené bloky se vyhodnotí jen v té části, která se bude zobrazovat. Díky tomu se oproti verzi 1.0 zrychluje zpracování šablon s vnořenými podmíněnými bloky.
  • Narazí-li JoresTemplate v šabloně na blok IF, který nedokáže zpracovat, zapíše se nyní chyba do JoresTemplate->errors, v debug režimu se vypíše i chybová hláška na výstup. Typickou příčinou je chybějící ENDIF, ale tato chyba může někdy (ne vždy) nastat i při vícenásobném použití stejného ID bloku v šabloně.
  • Každý blok IF nyní musí mít odpovídající ENDIF. Chování, kdy IF bez odpovídajícího ENDIF byl považován za IF až do konce šablony, bylo zrušeno.
  • Direktiva IF, kterou šablona nedokáže zpracovat, se ve výstupu nahradí textem: <!-- JTPL ERROR -->. Nahrazuje se jen direktiva IF (tzn. <!-- JTPL: IF … -> - v případě chyby ostatně JoresTemplate obvykle nedokáže určit rozsah bloku)
  • Syntaxe direktiv IF, ENDIF a COMMENT je nyní méně striktní na počet mezer mezi komentářovou značkou a direktivou. Netýká se ovšem direktiv START BLOCK a END BLOCK, kde se stále vyžaduje právě jedna mezera.
  • Přidána metoda tpl_exists, která otestuje existenci šablony daného jména (užitečná pro kontrolu existence šablony před pokusem o její zaregistrování).
  • Přidána metoda flush_errors, která smaže seznam nastavených chyb.

Opravy chyb

  • Opraveno chybné chování direktivy IF, pokud se v podmínce operátorem = porovnávalo proti prázdnému řetězci.
  • Opraveno nesprávné vyhodnocení kombinace NOT = v direktivě IF.

K tomuto příspěvku nejsou žádné komentáře

Přidat nový komentář