30
pro 08

Renovace a nové technologie na strmilovských stránkách

IT

Někdy to přijít muselo, a jsem rád, že jsem to nenechal čekat ještě déle. Tři a půl roku je pro seriózní projekt dost dlouhá doba na to, aby tam celou dobu vydržel jeden ne zrovna dobrý design. A proto všichni návštěvníci dostali k Vánocům kompletně renovovaný strmilovský web www.strmilovsko.cz.

Zmíním se tady hlavně o použitých technologiích a "střevech" nového systému, protože psát to samé dvakrát se mi nechce - zevrubný popis nejdůležitějších novinek naleznete samozřejmě rovnou na stránkách samotných.

Orange 2

Od té doby, co jsou stránky dynamicky generovány pomocí PHP a MySQL, se na nich vystřídaly dvě jádra. Prvním byl Universal Web Engine, což je docela ironické pojmenovávní, protože uměl běžet jen na Windowsovském IIS s ODBC vazbou na Accessovou databázi. Tuto strategii jsem brzy opustil, protože najít hosting, který by tuto příšernost zvládal, bylo zkrátka nemožné.

V létě 2006 jsem tedy nastudoval PHP5, MySQL a napsal od základu nový systém, Orange Web Engine. Vnitřní struktura zůstala stejná jako u prvního jádra, protože se osvědčila, jen jsem změnil technologii. Přechod na PHP5 (i přes použití objektového programování) se projevil znatelným zrychlením a jádro bylo konečně postavené na něčem, co se dalo použít i na hostingu.

Nové strmilovské stránky ale již měly být vícejazyčné, a protože na Orange Web Engine jsem dva roky ani nesáhl, bylo pro mě jednodušší napsat Orange 2 zase od začátku, než bádat nad tím, co jsem kterým kusem kódu před dvěma lety myslel a dobastlovat vícejazyčnou podporu do starého kódu není zrovna terno. Navíc Orange Web Engine měl nějaké neduhy, kterých jsem se chtěl zbavit (např. všeobecně neefektivní zpracování výjimek, jako např. logování do XML souboru).

Nové jádro je ještě lepší než všechna předešlá, úplně každý vypisovaný kus textu můžete pomocí šablon ovlivnit, takže je klidně možné pomocí Orange 2 vypisovat stránky v čistém textu, bez HTML. Předdefinované kódování je konečně UTF-8, ale pokud chcete, můžete si web nastavit zpátky na Windows-1250, i když to zvlášť z lokalizačních důvodů nemá smysl.

Jazyková podpora je plně integrovaná do celého systému, je možné mít překlad buď symetrický, tj. každá stránka má svůj překlad v daném jazyce, nebo přeložit jen některé stránky. Obě možnosti lze libovolně kombinovat, takže například vybrané české stránky mají svůj anglický překlad, a anglický překlad je symetrický s německým (přesně takto je to na strmilovsko.cz). Propojení jazykových verzí je dotaženo i v odkazech, při odkázání na cokoliv v jiném jazyce je možné u odkazu uvést tuto informaci (již je jen na webdesignérovi, zda tam dá text, vlaječku nebo třeba nic).

Jednotlivé jazykové verze nejsou nijak odděleny ani v adresářové struktuře (jako celkem běžné "vyhnání" lokalizace do např. podadresáře en/). Můžete plně využít lokalizace i v názvech souborů, takže třeba www.cokoli.cz/historie.php bude česká a www.cokoli.cz/history.php anglická verze stránky o historii. Může to trochu dělat nepořádek v souborech, ale lokalizované stránky potom z hlediska vyhledávačů a uživatelů nevypadají tak odstrčeně a jsou na stejné úrovni se všemi ostatními.

Vše ostatní, jako je design, HTML/XHTML validita, RSS a další je již jen na webdesignérovi, který má v tomto směru volné ruce a není skoro ničím svázaný.

Design

Design nových stránek je přelomový, protože je jako úplně první můj design vytvořen pomocí OpenSource nástrojů (což je zejména Inkscape), a to kompletně v Linuxu, bez žádné potřeby něco dodělávát s Windows-only nástroji (kromě testování funkčnosti na IE, ale to nikdy jinak nepůjde).

Hlavní požadavek nového designu byla obrázková hlavička, aby si návštěvník stránky lépe zapamatoval. Dal jsem si předsevzetí hlavičku měnit s ohledem na roční období, nyní bohužel kvůli tomu, že žádný sníh není, zatím zůstala podzimní. Původní nápad byl automaticky měnit celý vzhled webu podle denní doby, ale pak jsem od něj upustil, protože by to mohlo vést ke zmatení uživatelů. Nyní se mění jen fotka na hlavičce, od osmi do osmi je zde noční foto.

Design i s fotem v hlavičce zůstává nadále flexibilní, takže se stránky přizpůsobí i malému rozlišení 800x600 např. na netboocích, přičemž je možné vpravo uzavřít informační boxy, aby neubíraly místo textu. U velkých rozlišení monitorů se foto na hlavičce vpravo "ztratí" do modré barvy, aby zde nevznikl ošklivý ostrý přechod. U většiny ostatních webů s fotohlavičkou je šířka fixní, takže na velkých monitorech je spousta nevyužité plochy a u malých se musí rolovat do šířky, aby bylo vůbec možné text přečíst.

Moderní technologie aneb "Web 2.0"

Nyní už můžu říct, že my máme taky "ten Web 2.0", ač to je příšerný marketingový nineříkající termín "pro všechno". Na strmilovských stránkách si pod tímto pojmem můžete představit RSS kanály, AJAXové přesouvání kalendáře nebo webkameru. RSS kanály jsou vlastně také záležitostí designu, bez toho, že by pro ně byla nějaká speciální funkce v jádru. Jsou vlastně jen seznamem posledních aktualizací v trochu jiné šabloně.

Redakční systém vs. udržení pořádku

Jediné, co na Orange 2 chybí, je redakční systém. Uživatelé budou chtít vlastnosti jako import z Wordu a další věci, jenže to je proti celé strategii Orange 2, kde jádro ví o každé stránce a každém souboru, ví který odkaz kam vede a dokáže z toho těžit. Z toho vyplývá, že na současný Orange 2 nelze napsat jednoduše ovladatelný redakční systém s WYSIWYG editorem, protože tím by se potlačily hlavní výhody provázanosti, nebo by se musela hodně utáhnout uzda volnosti webdesignu a redakční systém by chodil jen s několika předdefinvoanými šablonami, což také není ono.

Co dále?

Po Novém roce plánuji na stránky nasadit veřejnou statistiku přístupů s grafy v SVG (doufám, že to podporuje alespoň IE7, když ne IE6), protože vygenerovat de facto několikařádkový XML soubor je méně náročné, než vykreslovat megapixelový PNG obrázek s tím samým. Navíc mi SVG umožňuje použít například koláčové grafy, průhlednost a další "cool" věci, které dodají nudné statistice trochu reprezentativní vzhled.

Další verze Orange Web Engine bude už plně na Javě, protože programování v PHP mě přestává bavit a například oproti C/C++ je to hrozná neefektivní prasečina :-)

» Přidat komentář

Diskuze: 0 komentářů

Tento článek ještě nikdo nekomentoval. Buďte první!