Je to asi tak týden, co jsem narazil na relativně hezkou soutěž, a protože jsem soutěživý typ a zrovna mám trochu času, neodolal jsem a zapojil se taky. Cílem soutěže je nasadit jednu z pěti zdarma dostupných webových aplikací v ASP.NET, trochu ji vylepšit, a nejlepší vyhrávají docela hezké ceny. Můj osobní web už stejně potřeboval trochu vylepšit (i když snad nebyl tak strašný), takže jsem BlogEngine.NET docela dost upravil a napsal pár widgetů, to jsou takové ty moduly napravo.
Widget: Online status
Tento úplně jednoduchý modul zobrazuje váš online stav na ICQ, Skype a Windows Live Messengeru.
V nastavení toho moc není, pouze kolonky pro zadání vašich identifikačních údajů. Pro ICQ stačí zadat vaše číslo (s pomlčkami nebo bez), pro Skype zadejte vaše Skype jméno. Pro Windows Live Messenger je to trochu složitější – musíte zadat ID, které získáte kliknutím na odkaz Get ID po přihlášení se a povolení této možnosti. Vygenerované ID se zobrazí po proklikání průvodce, stačí jej pak zkopírovat, vložit a je to.
Widget: Anketa
V oficiální distribuci BlogEngine.NET mi chyběla možnost přidat jednoduchou anketu. Je docela dobré zjistit názor ostatních, a tak jsem widget s anektou napsal. Až pak jsem zjistil, že na webu už jsou některé hotové.
Nastavení je taktéž triviální – nahoru zapíšete otázku a dolů na každý řádek jednu možnost. Pokud nějakou možnost přidáváte nebo odebíráte, počty hlasů se zachovávají, takže pakliže zadáváte novou anketu, zaškrtněte ještě Reset numbers of votes pro vynulování výsledků.
Widget: Kvíz
Po prolezení webu jsem zjistil, že na většinu užitečných věcí widgety existují, takže byl docela problém vymyslet něco dalšího Napadl mě jeden způsob, kterým bych přilákal alespoň někoho na můj web každý den – jednoduchý kvíz.
Jeho nastavování je již trochu složitější, můžete si přidat kolik otázek chcete. Každý den se zobrazí právě jedna otázka. Pokud uživatel klikne na nějakou odpověď, zeleně se zvýrazní správná odpověď a červeně ty špatné. Je to jednoduché, ale myslím, že pokud se vymyslí dost otázek, aby se moc často neopakovaly, mohlo by to mít úspěch.
Skin FriendlyBlue
Vzhled blogu jsem si dělal sám, nejsem žádný designér, takže to není vrchol krásy, ale myslím, že oproti mým jiným výtvorům tento docela ujde. Tento vzhled vzniknul za asi 4 hodiny relativně velkou úpravou dodávaného vzhledu Standard. Kromě úpravy layoutu jsem také trochu přepsal hodnocení článků, protože šílená konstrukce, jakou obarvovali hvězdičky při najetí myši jenom proto, aby nemuseli použít javascript (přičemž většina zařízení si lépe poradí s jednoduchým javascriptem než se složitými CSSky), mě fakt nezaujala. Výhodou je, že to šlo přepsat ve skinu samotném a nebylo nutné sahat do jádra.
Patch pro BlogEngine
BlogEngine má jednu zajímavou vlastnost – je částečně lokalizovatelný. Proč ne úplně? Protože jeho vývojáři jsou líní a na mnoha místech zapomněli natvrdo zapsané řetězce. Většina textů se tahá z Resources, což je správné, ale je tam pár výjimek.
Všechna místa, kde jsem si toho všimnul, jsem opravil a poslal jim to na CodePlex jako docela rozsáhlý patch. Snad bude zařazen do příští verze, ale poslední čtyři stránky patchů už docela dlouho čekají na schválení, projekt podle mě moc nežije. Zlokalizovaná nebyla stránka login.aspx, některé hlášky v tématu Standard (moje verze je opravená), dost věcí na stránce archive.aspx a hlášky v javascriptovém souboru blog.js, které se zobrazovaly při hodnocení článků.
Neopravoval jsem už natvrdo zadané formáty datumů, jenom jsem to autorům napsal, že by mohli tak nějak respektovat, že na světě je víc národností a že každá si datumy píše jak chce (v ideálním světě by národy a různé jazyky neexistovaly, všichni by používali stejný jazyk, měnu, formát data a pravidla, nebyly by háčky, čárky a blbci, ale k tomuto stavu tak nějak pořád nekonvergujeme). Co je horší, v aplikaci jsou na mnoha místech různé formáty datumů, někde je yyyy-MM-dd, někde d. MMMM yyyy atd., prostě lidově řečeno bordel.
Patch nestahujte a neaplikujte na verzi 1.4.5, není s ní kompatibilní, změnilo se něco v souboru blog.js a v jádře enginu. Je dělán nad aktuální verzí zdrojáků v source safe.
Jak na instalaci?
Pokud se vám některé moje úpravy zalíbily, můžete si je stáhnout a volně používat, jen je, prosím, do uzávěrky 15. 3. 2009 nepřihlašujte do soutěže, do které jsem je přihlásil já, nebo vás osobně kousnu. Co se týče kvality kódu, nejprve jsem se snažil psát to hezky, prostě tak, jak jsem zvyklý, ale když jsem nahlédnul na to, jak je napsán zbytek aplikace, vykašlal jsem se na to. Na doplňcích není nic světoborného, kód je jednoduchý a je zřejmé, co dělá, proto komentářů je není moc.
Návod pro instalaci mých doplňků najdete v souboru install.txt v každém archivu. Stahovat můžete zde:
Pokud najdete v souborech nějaké chyby, dejte mi vědět na e-mail, abych to mohl opravit.