CW(0) - Rozmýšlení content management systému po roce 2000; zásadní funkce CMS podle Joomly
Snažil jsem se najít střední řešení mezi CMS a PHP frameworkem. Chci sice mít komfort plnohodnotného CMS, ale zároveň chci vidět do programového kódu a mít možnost do něj případně zasahovat. Tento ideál se ukázal v praxi jako neexistující, přičemž ale nejblíže mu byla Joomla (má vlastní API a framework).
Svatá trojice CMS
Na scéně CMS se mi brzy vyloupla svatá trojice tří nejpoužívanějších CMS světa: Wordpress, Joomla, Drupal.
Nejlehčí Wordpress byl zkrátka moc málo robustní a doslova muší váhy. Na použití příliš jednoduchý a na doprogramovávání doplňků šitých mému webu na míru zase moc složitý. Byl pro lidi, kteří chtějí jenom psát aniž by si umazali ruce od kódu a vše další jim je buřt. Už od začátku jsem chtěl něco, co by mělo nějaký pokročilejší konfigurátor SEF url's (Search engine friendly url). V době, kdy jsem s tím já začínal experimentovat, 2003, byl Wordpress sám v plenkách a s mnoha problémy webu si hlavu nedělal, navíc jeho prvoplánová jednoduchost připravena pro naprosté laiky mně skoro až urážela. Jeho konfigurace na mě tenkrát působila jen jako vtip, jako že si chtěl někdo vystřelit z webmasterů po celém světě. Je s údivem, že i přes toto postižení se ihned po svém vzniku vykatapultoval do první trojice nejpoužívanějších CMS. Když jsem ho kontroloval o deset let později, jestli je to stále volovina, s překvapením jsem zjistil, že na tom skutečně není o mnoho lépe než při svém vzniku. Řada funkcí pro řešení různých úskalí webu mu sice přibyla, ale jenom tak, aby se nedalo říci, že ty funkce nemá. Chudost a přitom rozšířenost Wordpressu je bohužel důkazem pro moji hypotézu, že na světě vítězí řešení nejjednodušší nikoli nejlepší a že dokonce ve jménu jednoduchosti lidé po stamilionech ustoupí od svých původních požadavků a nebudou je raději řešit vůbec, hlavně jen když to zůstane jednoduché.
Joomla coby středně sofistikované řešení se mi naopak zalíbila ihned. Tehdy to byla Joomla 1.5, ale měla už za sebou víc jak desetiletý vývoj pod názvem Mambo. Hned po instalaci jsem věděl, že v Joomle budu mít základ všeho, co jsem chtěl později požadovat. Všechno dělala tak, aby pokročilého webaře neochudila o žádnou z možností nastavení, které k tématu v té době existovaly. Zároveň to vše dělala tak, aby člověka hned zprvu nezahltila a neochromila tak, aby se na to člověk raději newüsral. Joomla je přesně zlatý řez - komplexní, ale ne komplikovaná. A především mě doslova uhranula její Extension directory, která dodnes nabízí tisíce aplikačních doplňků pro Joomlu, z nichž některé byly vskutku velkolepé programy tak dokonale splňující až neuvěřitelná specializovaná určení, že jsem úžasem na několik dní oněměl. K tomu je třeba dodat, že drahná část těchto webových miniaplikací byl drsně komerční software, ale věřím že třeba manažeři, organizátoři, právnické firmy, hotely a cestovní kanceláře je mohly vyvažovat zlatem… To je jediný velký problém Joomly, že vám zadarmo poskytne vynikající základ a k němu přehlednou paletu nebesky božských doplňků, z nichž ty nejlepší jsou pochopitelně za peníze. Takže nakonec používáte jenom nejlepší z bezplatných, které jsou také špičkové, ale s tím, že ukazují na webu reklamu na své placené varianty nebo aspoň odkaz na web svého tvůrce. Takže ve finále strávíte pořádný čas analýzou kódu doplňků a ručně z nich odstraňujete ty části, které mohou za tyto zavádějící cizorodé vsuvky. To je zásadní nedostatek, ale jinak je Joomla naprosto božská. Když prolétnete extenze, zjišťujete, že jenom na doplňcích z Joomly byste si mohli založit třeba účetní firmu, rozvoz pizzy či třeba portál sledující jednotlivé pokoje v hotelích. Neuvěřitelné! Kromě tohoto neduhu, který se dá vlastním umem řešit, Joomla kór dnes o dalších dvacet let později nemá chybu a svojí vyspělostí působí jako “profesionální software”.
No a Drupal nám trojici uzavírá. Jde o druhý extrém, přesný opak Wordpressu. Je pro uživatele, kteří problematice webu rozumějí do nejmenších podrobností, očekávají od svého CMS maximum, co by vůbec kdo zvládl a prakticky jsou schopni si to celé v nejhorším případě nakonec naprogramovat sami - poté ale zbytečně ztratili moře času pochopením principů Drupalu. K Drupalu si dovolím trefný příměr: On dělá všechno doslova Linuxovou povahou. Umožní tvůrci webů udělat maximum a často při tom zachází až za hranici, kde končí psaní textů a začíná programování. U Drupalu si ruce s kódem rozhodně zamastíte a bude se vám hodit znalost návrhu databází a další důležité věci. Linuxovou povahou také používá svoji speciální terminologii pro jevy, které se jinak v informatice zkrátka řeknou jinak. Je to tedy přesný opak CMS pro amatéry, ale pro koho tedy je? Protože programátor si to radši naprogramuje vlastní. Má také adresář extenzí, které nejsou tak samospásné jako u Joomly, ale zato jsou až na pár výjimek všechny zadarmo. O fortelnosti Drupalu svědčí i jeho oblíbenost u velkých podniků světa.
Tři roky s Joomlou
Takže asi Vám je jasné, že jsem zůstal u Joomly a jeden a půl roku jsem ji přizpůsoboval, ladil a upravoval do té nejbezproblémovější množiny doplňků, jakou vůbec jsem byl schopen dát dohromady. Joomla má např. zálohovací doplněk Akeeba, který do jednoho zip souboru zálohuje veškeré soubory a data v databázi a udělá z toho samoinstalační soubor, takže to lze replikovat na více hostingů či použít jako záchranný bod obnovy.
Kromě toho, že Joomla je nejklasičtějším CMS, který skupině autorů a administrátorů poskytuje jednotné zázemí, kam se přihlásit a pracovat každý na svém a to pomocí wysiwyg editoru přímo v prohlížeči. Kromě toho Joomla řeší i některé pokročilé webové funkce pomocí funkčních modulů. Moduly a extenze byly důvodem, proč jsem od začátku věděl, že Joomla je to pravé. Poskytovala mi důležité funkce, bez kterých by tvořit plnohodnotný web nemělo smysl, tedy:
Automatizované breadcrumbs - hlavičky odkazů zobrazující hierarchii kategorií.
Řešení page titles, canonical urls a metadescriptions kombinovaných s nadpisy kategorií.
Newsflashes - automatizované upoutávky k novým článkům v bočním sloupci.
Mnoho typů zobrazení kategorie jako article blog a article list.
Generování sitemap a microdata (JSON metadata).
Automatizovaná index page a featured list.
Automatizovaný doplněk vykreslující dropdown menu.
Pagination - automatizované stránkování seznamů.
Multiarticle - automatizované dělení článků, provázání jejich kapitol a řešení metadescriptions.
Cache.
Kontaktní formuláře, ankety a k nim CAPTCHA doplněk.
Email cloaking.
Custom 404 a řešení SEF pomocí modrewrite apache (url rewriting).
Gzip page compression.
Article tagging a tagcloud.
Automatizovaný social bookmarking, který se později ukázal jako úplně zbytečný (móda která přešla).
Zkrátka prvky, které mi umožnily od začátku být víc než blog, být web nebo portál s prvky, jaké mají nejšpičkovější novinářské servery světa!
Jak jsem postupně detailně prozkoumával hlubiny Joomly a obdivoval jsem, jak je to geniálně vymyšlené, pochopil jsem letmo její principy a jak k řešení konkrétních věcí přichází. Za rok a půl přizpůsobování Joomly k obrazu svému jsem uzřel, že řadě věcí do hloubky rozumím a dokonce si dovedu představit algoritmy v PHP, které k realizaci funkčních prvků asi tak vedou.
Okleštění a dekompozice Joomly
Zároveň mi neušlo, jak Joomla vnáší další pro mne zbytečnosti, které mi byly jasné, že mi nikdy na nic nebudou. Joomla je řeší při každém vykreslení stránky a některé nelze vypnout ani skrz template overriding, takže řeší další zbytečné výpočty a data např. kolem správy uživatel, jejich skupin a práv k editaci, debugging apod.
Viděl jsem několik svých templát / šablon stránek, že jsou naprosto zajetelené zbytečnými metadaty, ze kterých nemám užitek ani já ani čtenáři ani vyhledávače. Na mnoha místech šablon byly návěští ke spouštění balastní řídící logiky pro funkce, které jsem věděl, že nikdy nevyužiji, ale prostě se jich nedalo zbavit. Ani template override v Joomle od balastu nepomůže úplně. Po dvou letech práce jsem si sice přizpůsobil Joomlu ke všemu, co jsem požadoval, ale stejně tam bylo navíc tolik PHP skriptů, které jsem nevěděl co dělají, Joomla si je vynucuje a pravděpodobně bych se obešel i bez nich, a bylo by mému webu lépe!
A tak o několik let dál jsem začal dělat vlastní Joomlu bez Joomly.
Pokračujte v dějové následnosti na CW(0,1).
Odkazy
Vizte hlavně Joomla Extensions Directory - https://extensions.joomla.org/