abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 7
    včera 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    včera 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 11:22 | Zajímavý článek

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 6
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 13
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (90%)
     (3%)
     (4%)
     (4%)
    Celkem 1068 hlasů
     Komentářů: 17, poslední včera 15:31
    Rozcestník

    Vlastní TemplateLoader

    6.10.2006 22:10 | Přečteno: 870× | Abíčko

    Na abíčku máme systém variant pro webové stránky. Kromě hlavní varianty pro běžné prohlížeče existují varianty pro lynx, PDA a tisk. Stačí přidat za libovolné URL parametr varianta=lynx a můžete si to vyzkoušet. Nicméně údržba tolika verzí byla dost náročná a nepříjemná.

    Fyzicky to je realizováno tak, že každá stránka má svůj soubor se šablonou. V ní je na začátku includnut soubor header.ftl a na konci footer.ftl. Adresářová struktura vypadá asi takto:

    /pda/header.ftl
    /pda/footer.ftl
    /pda/show/index.ftl
    /web/header.ftl
    /web/footer.ftl
    /web/show/index.ftl
    /web/show/zpravicka.ftl
    

    Jak je vidět, každá varianta má svůj podadresář s totožnou strukturou. Dosud jsem to měl realizováno tak, že jsem fyzicky změnil jen soubory, které se obsahově lišily (header.ftl a footer.ftl), zatímco ostatní soubory jsem nalinkoval přes ln -s. To zní na první pohled jako elegantní řešení, ale mělo několik problémů. Za prvé když jsem se rozhodl obsahově změnit soubor ve variantě, nesměl jsem zapomenout odstranit symlink, jinak jsem si omylem přepsal i šablonu v hlavní variantě web.

    Další problém byl s údržbou. Nezvládal jsem dávat nové funkce do ostatních variant (pokud to nebyly jen symlinky), zapomínal jsem vytvářet symlinky na nové soubory, logy se plnily chybami. Tahle cesta neměla budoucnost a zrušit ostatní varianty jsem nechtěl. Nikdo se ani nenabídl, že by je spravoval.

    Proto jsem hledal jiné řešení a tím se stal vlastní implementace rozhraní TemplateLoader z freemarkeru. Jak název napovídá, má za úkol nahrávat šablony. Můj FallbackTemplateLoader bere jako parametry konstruktoru FileTemplateLoader a název defaultního adresáře. Přes delegate pattern volá instanci FileTemplateLoaderu pro všechny implementované metody. Jenom v metodě findTemplateSource má speciální chování - pokud není nalezena šablona, pokusí se ji najít v defaultní variantě. Takže v podstatě stejné chování, jako se symlinky, jen bez noční můry s jejich udržováním.

    Například když někdo chce zobrazit zprávičku v PDA variantě, systém požádá o šablonu /pda/show/zpravicka.ftl. Takový soubor ale neexistuje, což by mělo vyústit ve výjimku. Nicméně FallbackTemplateLoader se pokusí stáhnout /web/show/zpravicka.ftl a ta už existuje.

    Zatím to vypadá, že systém funguje dobře. Smazal jsem většinu souborů z ostatních variant, čímž jsem se zbavil nekonzistencí s hlavní variantou a chyb. Implementace třídy je kupodivu velice krátká, klauzule GPL je snad delší než vlastní kód.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.