
Nedávno jsem své ženě spustil novou verzi jejího webu Magdalenka.cz. Je to takový foodblog kam si zapisuje své oblíbené recepty, jednak proto, aby je měla někde pohromadě a druhak proto, aby svým kamarádkám, které po ní často poptávají nějaký konkrétní recept, mohla poslat jednoduše link. Kromě samotného technického řešení webu mám na svědomí všechny fotografie jídel ale především jsem vrchní degustátor, takže kvalita všech receptů je zaručena :)
První verze běžela provizorně bez jakéhokoliv redakčního systému. Vyvíjet vlastní redakční systém mi přišlo jako nesmysl a tak jsem se začal porozhlížet po nějakých hotových systémech. A tady jsem poprvé narazil. Většina redakčních systémů je totiž navržená primárně pro blogy, takže každý příspěvek/stránka obsahuje jen nadpis, text a další metadata jako štítky, kategorie apod. To mi ale nestačilo. Stránka s receptem se skládala z názvu, úvodu, ingrediencí, postupu, hlavní fotky a případně dalších fotografií. Jednou z možností bylo nacpat to všechno do toho jednoho hlavního textu a pak to pomocí css rozstrkat po stránce. Tohle řešení není ale moc šikovné, protože vyžaduje po autorovi aby dodržoval určité postupy (příp. šablony), aby se stránka nerozpadla. Jedna drobná chybička (např. jiné pořadí dvou prvků) a už se to sype jako Pigi čaj. Tudy ne, řekl jsem si.
Redakční systémy, které by víceméně splňovaly moje požadavky (především možnost definovat strukturu příspěvku) existují. Ale už to nejsou jednoduché systémy, ale spíše robustní php frameworky převlečené za redakční systém. V mém případě kanón na vrabce (nebo komár na velblouda, jak by řekl Marek Prokop :).
Naštěstí jsem zjistil, že ve Wordpressu existuje něco, čemu se říká custom fields. To vám umožní přidat ke každému příspěvku další textové informace, které můžete v šabloně zobrazit. Super, řekl jsem si, stačí přidat položky postup a ingredience. Toto řešení skutečně fungovalo, ale mělo háček. Při psaní každého nového receptu je potřeba dole na stránce rozkliknout custom fields, která jsou tam (ne)šikovně schována. Pak si člověk musí vzpomenout, jak že se ta custom pole mají jmenovat. Pokud zadáte název špatně, šablona jej nenajde a tudíž nezobrazí (příp. zobrazí chybovou hlášku). Aby toho nebylo málo, tak vstupní políčko pro samotný text je jen jednořádkové.
Už jsem to pomalu vzdával, když jsem objevil plugin More Fields. Ten vyřešil všechny moje problémy. Umožnil mi vydefinovat seznam s názvy custom fieldů, takže autor už jen doplní jejich hodnoty. Navíc umožňuje zadávat text do víceřádkového vstupního pole (textarea). A v neposlední řadě se zobrazuje hned pod samotným editačním polem pro text příspěvku, takže jej člověk nemusí hledat někde dole a rozklikávat.
Bohužel se mi nepodařilo nijak rozumně vyřešit fotografie. Nenašel jsem způsob, jak se z kódu šablony dostat k fotografiím, které se přihrají k článku. Vypadá to, že Wordpress umožňuje jen vložit tyto obrázky do samotného textu, ale ne s nimi dál programově pracovat. Takže fotky nahrávám ručně do adresáře se stejným jménem jako id receptu a šablona receptu, která id receptu zná, ví kde má obrázky hledat. Nesystémové řešení, ale protože jsem to stejně já, kdo se o fotky k receptům stará, je to pro mě relativně schůdné. K zobrazování fotografií používám javascriptovou knihovnu ShadowBox, která se mi ze všech podobných líbí nejvíc. Náhledy k doplňujícím fotografiím seřezávám do čtverce, po vzoru Flickru, takže to nevypadá blbě, když je jedna fotka na výšku a druhá na šířku.
Co jsem si z toho odnesl za ponaučení? Že Wordpress je skvělý systém, ale jen pro jeden konrétní účel – blog. Pro cokoliv jiného přestává být vhodný, protože je nutné jej různě ohýbat a dělat ústupky. To už je fakt lepší sáhnout po nějakém jednoduchém frameworku a postavit si to od píky sám.
