Jak jsem rozšiřoval BlogEngine.NET

Tomáš Herceg       06.03.2009       C#, Offtopic       10768 zobrazení

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.

Widget Online status Nastavení widgetu

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é.

Widget Anketa Nastavení widgetu

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.

Widget Kvíz image

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.

Vzhled FriendlyBlue

 

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.

 

hodnocení článku

1 bodů / 1 hlasů       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Diskuse: Jak jsem rozšiřoval BlogEngine.NET

Fakt moc pěknej design. To je přesně ten typ co se mi líbí :)

Akorát bych v tom horním banneru změnil ten kód aby každej řádek nezačánal stejně :)

Jinak super

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback