Eva Rázgová photo

Cílem tutoriálu je seznámit vás s tím, z čeho se Drupal skládá, a současně s nejdůležitějšími pojmy, se kterými se v Drupalu setkáte. Terminologie není samoúčelná, usnadní vám nejen práci s Drupalem, ale také komunikaci v diskusních fórech a v neposlední řadě pochopení složitějších návodů, které už počítají se základními znalostmi. Abychom však nezůstali u nudné teorie, v poslední (čtvrté) části vše promítneme do praktického příkladu.

Tutoriál vychází z čisté instalace Drupalu 8.4.x, s použitím profilu Standard, bez dalších změn v nastavení. Předpokládáme, že Drupal instalujete v češtině, u nejdůležitějších pojmů a nastavení však uvádíme i anglické ekvivalenty - pro pokročilejší práci s Drupalem by nebylo dobré spoléhat pouze na českou terminologii.

V tomto díle se ještě nebudeme zabývat výstupem na webu, ale tím, co jej vytváří: jsou to soubory Drupalu (tj. software, který jste získali z Drupal.org) a databáze, kterou si před instalací založíte (případně vám ji vytvoří poskytovatel webhostingu).

Jádro (core)

V souborech pro instalaci Drupalu je jádro umístěno v adresáři /core. Jak název napovídá, je to ústřední část sytému, bez které se nelze obejít a na níž “stojí” vše další.
K jádru de facto patří i adresář /vendor, kde jsou “nedrupalovské” knihovny a frameworky (proto jsou oddělené zvlášť).
 

“Contrib”

Pojem contrib se sice nevyskytuje ve spisovné češtině, ale používá se; žádný alternativní výraz nemáme. Je jím myšleno vše, co je nadstavba k jádru (ať už z pohledu funkcionality či vzhledu) a co bylo schváleno k umístění a ke stažení na Drupal.org. (Do contribu tedy nepatří váš vlastní kód, pokud není na Drupal.org). Contrib zahrnuje především moduly a  témata vzhledu, případně i instalační profily (vše podrobněji vysvětlujeme níže).

 

Drupal je extrémně flexibilní systém a nabízí dostatek možností, jak přizpůsobit funkcionalitu i vzhled na míru i těm nejnáročnějším požadavkům, konfiguračně nebo programátorsky, avšak vždy bez zásahů do stávajícího kódu. Pro jádro i contrib zde platí naprosto totéž: kromě záplatování nejsou dovoleny žádné změny. Zdánlivá jednoduchost “úpravy pár řádků” by někoho mohla lákat, ale je to neprofesionální a ve výsledku i neefektivní: přiděláte si víc práce, než ušetříte.

Modul (module)

Modul je část kódu Drupalu, která poskytuje určitou funkcionalitu (např. modul user je zodpovědný za vše týkající se uživatelů, modul comment za komentáře, atd.). Některé moduly jsou závislé na jiných (např. právě modul comment závisí na modulu user, protože pracuje s uživateli). Moduly jsou v několika (pod)adresářích, které je vhodné od počátku rozlišovat. Jestliže používáte Drush nebo Composer, což velmi doporučujeme, nestane se vám, že byste modul “nakopírovali” na špatné místo. Přesto je dobré vědět, kde a proč se různé moduly nacházejí.

  • /core/modules: do tohoto podadresáře patří pouze moduly jádra.
  • /modules: sem patří contrib moduly a vaše vlastní (vámi napsané) moduly Doporučuje se rozdělit si tento adresář následovně:
    • /modules/contrib - pro contrib moduly
    • /modules/custom - pro vaše vlastní moduly
      Pozn.: Drush i Composer budou toto rozdělení automaticky respektovat a contrib moduly umístí správně do podadresáře /modules/contrib, vytvořit ho ale musíte ručně.
  • /profiles/*/modules - moduly instalačních profilů (viz níže, pro základy práce s Drupalem se jimi nemusíte zabývat).

Téma vzhledu (theme)

Téma vzhledu (zkráceně jen téma) je část kódu, která definuje vzhled. V běžném jazyce se někdy používá slovo šablona, což ale není úplně přesné, protože šablona sensu stricto (v angličtině template) představuje jen část tématu vzhledu, a sice některý ze souborů typu *.html.twig, který je zodpovědný za vykreslení (renderování) definované části webu/stránky. Jedno téma vzhledu tak obvykle obsahuje řadu šablon, umístěných v tématu v podadresáři templates.
Témata vzhledu se také nacházejí na několika místech, která jsou analogická vůči umístění modulů:

  • /core/themes: pouze moduly jádra.
  • /themes: doporučuje se rozdělit na
    • /themes/contrib: pro contrib témata, Drush nebo Composer opět takto pojmenovaný podadresář automaticky rozpozná a použije.
    • /themes/custom: pro vaše vlastní témata.
  • /profiles/*/themes - témata instalačních profilů (viz níže, pro základy práce s Drupalem se jimi nemusíte zabývat).

Instalační profil (installation profile)

Instalační profil slouží k tomu, abyste při každé instalaci nemuseli opakovat kroky, o kterých předem víte, že je budete potřebovat (např. instalace dílčích modulů, instalace a použití témat vzhledu, specifická nastavení aj.). Dva instalační profily jsou i v jádře (/core/profiles). Zjednodušeně řečeno, profil standard si klade za cíl trochu “přemýšlet za vás” a nastavit vám to, co budete k základům práce pravděpodobně potřebovat, zatímco profil minimal  provede naopak co nejjednodušší funkční instalaci.

Později možná budete chtít vyzkoušet některé další instalační profily či distribuce Drupalu, které  lze stáhnout z Drupal.org, nebo si vytvořit vlastní (v obou případech patří do adresáře  /profiles). Pokud se však s Drupalem učíte, rozhodně nezačínejte se staženým contrib profilem. Teprve až budete vědět, jak Drupal funguje, a budete umět vytvořit aspoň základní části webu, dokážete dobře odhadnout, zda by vašim potřebám odpovídal nějaký hotový instalační profil (těm komplexnějším se také říká distribuce) a zda vám skutečně ušetří práci.
 

Knihovna (library)

Jedná se o knihovny třetích stran, které budete potřebovat pro fungování některých modulů (tuto informaci najdete v pokynech k instalaci). Obvykle patří do nově vytvořeného adresáře /libraries.  

Konfigurační soubor (configuration file)

Když se v Drupalu řekne konfigurační soubor, myslí se tím většinou soubor settings.php umístěný v podadresáři sites/default, který obsahuje údaje pro připojení k databázi a další důležité údaje týkající se konkrétní instalace. (Druhým konfiguračním souborem - services.yml - se pro začátek nemusíte zabývat).
 

Systém souborů (file system)

Ve vztahu k instalaci Drupalu se tím obvykle myslí soubory, které nějak “patří” k obsahu webu - tedy např. obrázky nebo “přílohy” v článcích apod. Umístění těchto souborů není zcela fixně dáno, ale obvykle je to adresář sites/default/files a jeho dalších podadresáře; Drupal vám tuto cestu také nabízí jako výchozí. V Drupalu 8 se nově - oproti starším verzím - nastavuje také adresář pro soubory s překlady administračního rozhraní. Kromě toho je třeba nastavit adresáře pro dočasné soubory (ty vznikají např. ve chvíli, kdy se nahrává nový obrázek, ale obsah ještě není uložený) a privátní soubory (pokud na webu existuje obsah s omezeným přístupem). Dočasné a privátní soubory je vhodné umístit zcela mimo adresář webu, a to z praktických i bezpečnostních důvodů.
 

Databáze (database)

V databázi se nachází veškerý obsah webu (kromě obrázků a souborů, viz výše), veškerá metadata k obsahu (např. identifikační čísla - IDs, informace o časech vytvoření a změny, údaje o jazykových verzích, URL adresy apod.), dále např. informace o nastavení různých modulů i témat vzhledu, informace o verzích a umístění používaných modulů i témat vzhledu, uložené proměnné aj. Pokud vše funguje, jak má, nepotřebujete (a neměli byste) v databázi provádět žádné ruční změny. Údaje sloužící k propojení kódu s databází Drupal při instalaci automaticky zapisuje do konfiguračního souboru settings.php, o kterém jsme se zmínili výše. Před instalací je databáze založená, ale prázdná, veškerá data se do ní ukládají automaticky v průběhu instalace a po ní, tedy při práci přes webové rozhraní - tam se podíváme v příštím díle.
 

Autor: Eva Rázgová

Obsahová revize textu: Jan Nagy, Josef Růžička

Úvodní obrázek: Robert Zunikoff (public domain license)