abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 02:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.9. 19:11 | Zajímavý projekt

    Fugleramme, v překladu 'ptačí rámeček', je open-source projekt postavený na Raspberry Pi, který pomocí lokální umělé inteligence BirdNET-Go rozpoznává ptačí druhy podle jejich zpěvu a na displeji následně zobrazuje koláž tvořenou odpovídajícími ilustracemi. Databáze obsahuje přes 800 ručně vybraných historických přírodovědných ilustrací více než 400 druhů ptáků.

    … více »
    AfD 💙 | Komentářů: 1
    18.9. 16:55 | Nová verze

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 18.0. Přidáno bylo 13 007 nových znaků. Celkově jich je 172 808. Přibylo 9 nových Emoji.

    Ladislav Hagara | Komentářů: 5
    18.9. 13:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 169 (pdf).

    Ladislav Hagara | Komentářů: 0
    18.9. 03:33 | Nová verze

    Byla vydána nová verze 6.4 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    17.9. 23:11 | Komunita

    Německý kancléř Friedrich Merz (CDU) se během debaty s finalisty studentské vědecké soutěže Jugend forscht vyjádřil pro konec anonymity na internetu a vyslovil názor, že pro uživatele Internetu by měla platit podobná právní odpovědnost jako pro novináře tradičních médií. Na dotaz studenta, jak by se tedy povinnost uvádět pravé jméno slučovala s prací investigativních novinářů nebo ochranou jejich zdrojů, Merz neodpověděl, ve své

    … více »
    AfD 💙 | Komentářů: 49
    17.9. 17:55 | IT novinky

    Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.

    Ladislav Hagara | Komentářů: 0
    17.9. 16:44 | IT novinky

    Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.

    Ladislav Hagara | Komentářů: 4
    16.9. 23:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.

    Ladislav Hagara | Komentářů: 4
    16.9. 21:44 | Nová verze

    Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.

    Ladislav Hagara | Komentářů: 38
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2697 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Vlastní TemplateLoader

    6.10.2006 22:10 | Přečteno: 1012× | 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.