Drupal jako základ pro webové projekty

V současnosti už u většiny běžně vytvářených webových projektů není nutné začít stavět „na zelené louce“ a programovat vše od začátku. Velkou množinu webových projektů lze zpracovat pomocí moderních systémů pro správu obsahu (CMS), jako jsou Joomla, Wordpress či Drupal. V článku si představíme poslední jmenovaný.

V současné době existuje poměrně velký počet open source systémů pro správu obsahu, přičemž jako ty nejvýznamnější se často uvádějí Joomla, WordPress a Drupal. Právě na příkladu posledního jmenovaného si ukážeme, jak může posloužit coby solidní základ pro větší webový projekt.

Diskuze na téma, který redakční systém/systém pro správu obsahu je nejlepší, jsou často zavádějící. Každý má své uplatnění pro jiný typ projektu a pro jinou skupinu uživatelů (pozor, nikoli čtenářů). Pokud chcete každý ze zmíněných projektů něčím charakterizovat, pak systému Joomla přiřkněme propracované administrační rozhraní, WordPressu jednoduchost použití a Drupalu rozšiřitelnost.

Ano, rozšiřování jsou otevřené i Joomla a WordPress, k poměrně dostatečné funkcionalitě v základní podobě je možné doplnit spoustu dalších modulů. Ovšem Drupal je tak trošku jiný. Až do verze 6 (v sedmičce se to mírně, ale jen mírně změní) jde o projekt, který v základní podobě nabízí několik modulů pro správu obsahu a uživatelů, ve skutečnosti je to však spíše kostra, na kterou je třeba navěsit další moduly. Teprve s nimi dosáhneme požadované funkcionality pro čtenáře atraktivního a pro administrátora pohodlného webu.

Jakkoli zní označení holá kostra pro Drupal negativně, není to tak. Například jádro GNU/Linuxu je ve své podstatě taky jen kostra operačního systému, na kterou je navěšena spousta doplňkové funkcionality tvořící dohromady jednotlivé distribuce. Drupal tvůrcům webu nevnucuje určitý vizuální editor, neříká, jakým způsobem pracovat s obrázky, jakou použít galerii a podobně. Jakkoli je to nepohodlné pro začátečníky, pro pokročilejší tvůrce webu je to naopak výhoda. Svůj projekt si tak přizpůsobíte do nejmenších podrobností.

Jak Drupal funguje?

Drupal si nejlépe rozumí s MySQL, ovšem provozovat jej můžete i na PostgreSQL a od připravované verze 7 i na SQLite. Existuje i projekt snažící se přinést podporu Microsoft SQL Serveru. Co se týče platformy pro hostování této webové aplikace, pojede jak v Linuxu, tak ve Windows (tedy s Apache i IIS). V Drupalu najdete podporu javascriptových knihoven jQuery, přičemž verzi od verze je provázanost na jQuery silnější, zejména v administrační části. Většina projektů, která Drupal využívá, kupodivu s jQuery moc nepracuje, a Drupal tak degraduje na obyčejného správce článků. Celý Drupal je vícejazyčný, čili je možné jej lokalizovat do jakéhokoli jazyka.

Drupal - Allreal

Výhoda Drupalu je především v tom, že není pojat jako projekt určený výhradně pro správu článků nebo na blogování, ale postavíte s ním realitní portály, seznamky, e-shopy a další nečlánkové projekty. Veškerý obsah je zde definován jako tzv. node – uzel. Uzly mohou být různého typu, s různými přístupovými právy uživatelů a různou podobou. Standardní funkcionalita definuje pro každý uzel název a tělo s obsahem, přílohy v podobě uploadovaných souborů, jméno uživatele, revize, nebo datum vydání. Dále je možné je třídit pomocí taxonomie.

S pomocí nejčastěji zmiňovaných rozšiřujících modulů CCK a Views lze dosáhnout toho, že ke každému typu uzlu přidáte další položky, například výběry data, obrázky, různá políčka s validátory na určitý obsah atd. Modul Views pak použijete k vytváření podstránek, na kterých jsou zobrazeny různě vyfiltrované seznamy jednotlivých uzlů. S touto velmi silnou kombinací dvou modulů lze vytvořit v podstatě jakýkoli typ webu, zpracovat různé provázanosti obsahu mezi sebou, a to vše pouze naklikáním příslušných vlastností v administračním rozhraní.

Moduly

Z pohledu uživatele vkládajícího obsah je nejvíce limitujícím faktorem absence vizuálního editoru v základní distribuci systému. Ovšem na druhou stranu tak máte svobodnou volbu rozhodnout se, který ze známých editorů použijete. Zatímco dříve byly pro každý z editorů (např. TinyMCE nebo FCKeditor) dostupné samostatné moduly, nyní vše zastřešuje modul WYSIWYG API – s podporou mnoha různých editorů, snadnou instalací a jednotným nastavením.

Jestliže budeme o Drupalu považovat jako o kostře pro vlastní webové projekty, pak se zcela určitě nevyhneme vývoji vlastních rozšiřujících modulů. Určitě to není snadné pro člověka, který si včera přečetl knihu o programování v PHP a vytvořil si první skript. Na druhou stranu pro průměrného programátora, ale i „slepovače cizích kódů“ by vývoj modulů pro Drupal neměl představovat zas až tak velký problém.

Na výchozí funkce definované v modulech jádra Drupalu se lze snadno navěsit a pozměnit jejich funkcionalitu. Drupal má v tomto směru bohatou online dokumentaci a prohledávač svého API. Základní struktury modulů (i šablon vzhledu) jsou dány. Poté, co si podle návodu zkusíte na pár řádcích vytvořit vlastní modul a pochopíte, jak funguje, už vás od dalšího vývoje nic nezastaví. Drupal má přehledně zpracované průvodce tvorbou šablon a samozřejmě i modulů.

Import dat

Při tvorbě webu na Drupalu se často postavíte před úkol importovat data z jiných redakčních systémů nebo z nějakých jiných předloh. Máte-li zdrojová data k dispozici jako soubory CSV nebo XML, zvládnete vše bez programování s modulem Import / Export API. Ale ani v jiných případech to není problém. Vytvoření modulu, který data importuje z databáze původního systému a převede je na uzly v Drupalu (nebo na uživatele či komentáře) je spíše záležitostí sestavení vhodného příkazu SQL než laborování nad kódem v PHP.

Šablony vzhledu

Opravdu silnou stránkou Drupalu je oddělení šablon vzhledu od funkcionality. Jako hlavní a standardní šablonovací systém je zde použito vlastní PHPTemplate. Šablony se vedle CSS, JavaScriptů a obrázků skládají v podstatě z koster v souborech PHP. Ty obsahují váš vlastní libovolný HTML kód, mezi jehož značky vypíšete jednoduchým zápisem dynamicky generované části, například:

<h1><?php print $title;?></h1>
<div><?php print $content;?></div>
<div><?php print $footer;?></div>

Za obrovskou výhodu považuji to, že se kodér nemusí dopodrobna zabývat tím, jak Drupal funguje. Šablonovací systém umožňuje definovat šablonu celých stránek, ale i komponent, které se nacházejí na ní – boxíky, formuláře, obsahové části atd. Díky PHPTemplate engine má vývojář šablon k dispozici kompletní drupalovské API. Buď přímo v souborech s kostrami (což není ideální), nebo ve speciálním souboru template.php může přepsat standardní výstup kterékoli drupalovské funkce. Navíc velmi jednoduše – celou ji zkopíruje, přejmenuje a upraví.

Dáváte-li přednost Smarty Template Engine, pak si musíte doinstalovat doplňkový modul, který vám tuto syntaxi umožní v šablonách pro Drupal použít. Dostupných šablon, které Smarty využívají, je však minimum, většina pracuje s PHPTemplate a reflektuje na ni také většina literatury věnované Drupalu. S vývojem i úpravou šablon vám pomůže srozumitelná dokumentace.

Nejčastější nářky

Drupal - Vintage Aviator

Drupal není ideální, jako žádný jiný CMS. Nečekejte od něj, že si několika kliknutími postavíte web jako je Zdroják, aniž byste měli alespoň základní znalost PHP. Jistě, pomocí existujících modulů a široké nabídky hotových témat lze vše naklikat, ovšem takový web bude vypadat jako přes kopírák.

Nejčastějšími výtkami z pohledu tvůrce webu směrem k Drupalu je výše zmíněná snad až příliš velká nabídka modulů dělajících zdánlivě totéž. Věřte však, že se v ní brzy zorientujete.

Další, často nepochopenou věcí, je způsob tvorby šablon. Možná někteří z vás nebudou souhlasit, ale praxe dává za pravdu, že ke stylování vzhledu redakčního systému je třeba přistupovat úplně jinak, než že vezmete připravené PSD a podle něj si připravíte čistou HTML šablonu. Rozhodně je lepší kódovat už přímo do šablony Drupalu a počítat se specifiky, třídami a ID, které Drupal generuje, případně si je upravit podle svého. Pozdější přejmenovávání tříd v CSS a případné úpravy výstupu některých funkcí, jsou daleko složitější, než když se s nimi počítá od začátku.

Z pohledu čtenářů/koncových uživatelů drupalovských webů existují výtky ke vzhledu. Weby s Drupalem je často poměrně snadné rozpoznat právě podle jejich vzhledu. Na druhou stranu, pokud máte dobrý návrh grafiky i funkcí, může být výsledek velmi zajímavý, viz například thevintageavi­ator.co.nz.

I přes pár drobných nevýhod je však Drupal solidním základem pro webové projekty. Díky tomu, že poskytne správu uživatelů a obsahu, se můžete zaměřit na funkce specifické pro váš projekt a netrávit čas tvorbou základní kostry.

Autor se řadu let zabývá softwarovým poradenstvím, školením a vývojem webových stránek nejen na Drupalu. O své zkušenosti se dělí na webových stránkách www.maxiorel.cz, kde najdete tipy na zajímavé programy a články o softwaru, programování a internetu.

Autor se řadu let zabývá softwarovým poradenstvím, školením a vývojem webových stránek nejen na Drupalu. O své zkušenosti se dělí na webových stránkách Maxiorel.cz, kde najdete tipy na zajímavé programy a články o softwaru, programování a internetu.

Komentáře: 28

Přehled komentářů

fos4 Šablony
smasty Re: Šablony
Wordpress Re: Šablony
fos4 Re: Šablony
fos4 Re: Šablony
d.f.h Re: Šablony
fos4 Re: Šablony
d.f.h Re: Šablony
janpoboril Re: Šablony
janpoboril Re: Šablony
Rdm stylování šablon
Jakub Suchy Re: stylování šablon
Erythros Trochu blábol
d.f.h Re: Trochu blábol
Erythros Re: Trochu blábol
d.f.h Re: Trochu blábol
Jakub Suchy Re: Trochu blábol
Erythros Složitost Zdrojáku
janpoboril Re: Složitost Zdrojáku
Drupalista Moduly v Drupale
Matej Re: Moduly v Drupale
Drupalista Re: Moduly v Drupale
d.f.h Re: Moduly v Drupale
keff Architektura Drupalu - má prezentace
Honza Dotaz k Drupalu
xoxoxo mimochodem
xoxoxo Re: mimochodem
Jakub Suchy Re: mimochodem
Zdroj: https://www.zdrojak.cz/?p=3127