Recenze Drupal 7

     Po několikaletém úsilí, díky přispění více než tisícovky vývojářů, byl 5. ledna 2011 vydán Drupal 7. Nová verze oblíbeného redakčního systému přinesla řadu novinek, které ocení jak běžní uživatelé, tak i programátoři. Přichystáno je 28 000 testů, podpora entit, přepracovaná práce se soubory a mnoho dalšího. Protože já sám nemám se sedmičkou zatím žádné zkušenosti, dovolil jsem si použít následující recenzi.

 

     Drupal 7 rozvíjí své tradičně silné stránky – flexibilitu a škálovatelnost – a přidává k nim přívětivost frontendu a administrace i pro méně technicky založené uživatele. Laicky řečeno, Drupal 7 nejenže dobře funguje, ale oproti Drupalu 6 podstatně lépe vypadá.

Požadavky a podpora databází

     Drupal ve verzi 7 běží na skoro libovolném webserveru (Apache, Lighthttpd, Microsoft IIS) a vyžaduje PHP 5.2.x či PHP 5.3 (staré PHP 4 již není podporováno). Drupal 6 podporoval MySQL či PostgreSQL. Protože byla v Drupalu 7 kompletně přepsána podpora databází a Drupal nyní používá PHP PDO, je mezi podporovanými databázemi Oracle, MS SQL či SQLite.

Testovací framework

     Kromě důkladného uživatelského testování byl celý vývoj Drupalu 7 spojen s automatickým testováním, které poskytuje integrovaný Simpletest. Platilo jednoduché pravidlo – pokud to má být v jádře, musí to mít test. Výsledkem je vydání s 28 000 testy. Pro zajímavost, průběh všech testů na průměrném stroji trvá 30 minut a pro qa.drupal.org tuto funkcionalitu zajišťuje více než 10 strojů.

RDF

     Hybatelem posledních let je sémantický web a mikroformáty. Proto Drupal 7 jako jeden z prvních CMS v jádře přidává podporu pro RDFa 1.0.

Škálovatelnost

     Již v základním jádře je nyní dostupná podpora pro master/slave replikaci databází – můžete nadefinovat více přístupů k různým replikám databáze a poté určité typy SQL dotazů automaticky směrovat na Slave repliky místo zatíženého originálu. Všechny soubory (CSS, JS, přílohy) je díky first class objektům automaticky uživatelům předávat z libovolné CDN (funkcionalitu dříve zajišťoval modul CDN). Líné (lazy) sessions poté zajišťují možnost postavit před Drupal statickou cache jako např. Varnish nebo nginx – tato funkcionalita byla předtím dostupná pouze pomocí speciální verze Drupalu 6, Pressflow.

"Everything is fieldable"

     Při vývoji Drupalu 7 se záhy objevil nepřeložitelný slogan "everything is fieldable", který, uveden do praxe, má velký dopad na flexibilitu tvorby obsahu.

     Drupal 6 pracoval s vlastními typy obsahu, do kterých bylo možné přidat nová tzv. pole (fields) přes populární modul Content Construction Kit – CCK. CCK tak rozšiřuje základní jednotky obsahu (v Drupalu tzv. uzly) o možnost přikládat obrázky, další texty, select boxy, checkboxy apod. (efektivně tak tvoříte formuláře pro vkládání dat).

     Drupal 7 integruje podporu pro takzvané entity. Entita je cokoliv, co reprezentuje nějaký obsah, např. uzel, kategorie nebo třeba komentář. Můžete říct, že entita je jiné jméno pro uzel či komentář, ale zatímco v Drupalu 6 byly všechny dané termíny oddělené, v Drupalu 7 jsou to vždy entity, ke kterým existuje jeden interface a se všemi je možné (v kódu) dělat totéž. A protože Drupal vždy zajišťuje API pro své rozhraní, vy jako programátor si můžete definovat vlastní entity. Pro příklad – Drupal Commerce balík pro Drupal 7 integruje položky faktury jako entity.

     Tím jsme se oklikou dostali k podstatě změny, která nastala v D7: pole (field) je nyní možné přidat k jakékoliv entitě. Všimněte si důležitého rozdílu – verze 6 omezovala pole pouze na uzly, nyní je možné je přidat k entitám. Jakákoliv vámi navržená pole (popisky, obrázky, kritéria pro filtrování apod.) tak můžete přidat k taxonomickým kategoriím, komentářům, uživatelům...

     K výše zmíněné podpoře databází přidávají pole svou dávku nových technologií. Fields je možné ukládat do noSQL databází jako MongoDB či Cassandra. V praxi to předvedl např. Examiner.com, který běží na Drupalu 7 s MongoDB.

Práce se soubory

     Drupal téměř odjakživa podporoval práci s přílohami, a to buď pomocí veřejného nebo privátního filesystemu (privátní přístup umožňoval automaticky generovat odkazy na přílohy přes speciální wrapper, který k souboru ověřil přístup). V nové verzi je podpora souborů kompletně přepsána a soubor je klasický First-class objekt (v komunitě ho nazýváme 1st class citizen) s podporou PHP stream wrapperů, pomocí kterých lze velmi jednoduše implementovat ukládání do vzdálených lokací (jako třeba Amazon S3 nebo Flickr).

     Společně s first-class objektem pro soubory a Fields v jádře bylo do jádra přesunuto pole pro obrázek (dříve modul ImageField) společně s novými styly obrázků (dříve ImageCache) – rovnou z jádra můžete nahrávat obrázky k uzlům a tvořit jejich styly. Pro neznalé Drupalu je styl něco jako předpřipravené nastavení zobrazení obrázku. Představte si, že vytvoříte styl "Náhled" s velikosti 100×50 pixelů a styl "Střední" s velikosti 400×300 pixelů. Poté v galerii dáte zobrazit Náhled a po kliknutí Střední velikost. Drupal automaticky při zobrazení jakýkoliv nahraný obrázek zmenší na danou velikost – originál zůstane, zobrazí se pouze zmenšený náhled, který se uloží na systém a každé další zobrazení již použije daný soubor místo generování obrázku znovu. Kromě změn velikosti je možné dělat další změny jako oříznutí, rotaci, vodoznaky, kulaté rohy či další akce, které si můžete naprogramovat.

Příjemné a flexibilní rozhraní

     Drupal 7 přichází s novou výchozí šablonou vzhledu (Bartik) i s novou administrační šablonou (Seven). V jádře je navíc připravena i šablona typu "starterkit" (Stark), na které se lze snadno naučit odvození vlastní šablony (toto nasměrování v Drupalu 6 chybělo a začátečníci často chybovali úpravou hotových šablon, namísto odvození vlastní verze). Při tvorbě šablon se kladl velký důraz na přístupnost (blíže viz http://drupal­.org/about/ac­cessibility).

     Administrační rozhraní pokračuje v trendech Drupalu 6: k požadované funkci je třeba dostat se bez zbytečného klikání. Stejně jako v Drupalu 6 je maximum věcí přístupných přímo z veřejné části webu, bez nutnosti přepínat na stránku administračního panelu. Tímto způsobem je možné editovat nejen obsah, ale také bloky a menu. Kromě toho je na všech stránkách webu k dispozici administrační lišta (v D6 se musela doinstalovat). Novinkou je sekundární nástrojová lišta pro často používané cesty, kam si může uživatel přidat vlastní zkratky, a uživatelsky nastavitelný kontrolní panel, na který si lze navolit pouze vybrané bloky nástrojů.

Render API

     Standardní postup v případě Drupalu 6 bylo přetížit šablonovací funkci a vytvořit si tak vlastní HTML výstup. Odteď je vše generováno pomocí Render API, které zobrazuje jednotlivé části stránky v menších kusech a umožňuje detailnější změny.

Drupal Gardens: i lama může být zahradníkem

     Kromě již zmíněného Examiner.com a dalších zajímavých webů si nenechte ujít prohlídku Drupal Gardens – tato aplikace potěší zejména neprogramátory a příznivce webů, které je možné postavit naklikáním za jeden večer. Stačí si vybrat potřebné funkce a šablonu, kterou si v grafickém rozhraní můžete nastavit, upravit barvy, rozložení prvků, fonty písma i další vizuální vlastnosti (de facto tak můžete vytvořit zcela vlastní vzhled včetně zakomponování vašich obrázků). Pokud časem budete chtít vytvořit podobnou stránku, nemusíte začínat znovu, ale můžete své dílo pouze zduplikovat (3 kliknutí myší včetně rozbalení nabídky možností) a pozměnit dle potřeby. Kdybyste časem zjistili, že by vašemu webu slušel programátorský zásah na míru, můžete na svou práci plynule navázat, se zachováním všech dat (export je ale náročnější – i s uložením do počítače 4 kliknutí :-)). Na rozdíl od řady jiných aplikací, kde lze také vytvořit "rychlý" web, zde máte plnou kontrolu nad tím, co jste vytvořili, a můžete své dílo bez ztráty přenést do jiného prostředí a dále vyvíjet.

Užitečné odkazy a Drupal 7 v akci

Examiner – Implementace Drupalu 7

Drupal Gardens – Implementace Drupalu 7

Chicago Public Media – Implementace Drupalu 7

Drupal.cz – Český Drupal komunitní web

Drupal.org – Oficiální Drupal komunitní web

 


Čerpáno z www.root.cz autoři článku Jakub Suchý, Eva Rázgová. Případné dotazy pište do komentářů.

Kontakt:

Tomáš Vyhnálek

Ledec 9
535 01 Přelouč

Tel.: 605 451 870
e-mail: info@tom-vyhnalek.cz
IČ: 627 08 252
DIČ: CZ7408313308

Mapa: