Eva Rázgová photo

V předchozí části jsme vám představili základní stavební prvky Drupalu - obsahové entity. Nyní se podíváme na některé důležité funkcionality, které vám umožní začít z jednotlivých dílků budovat web.

Pohled (view)

Anglický termín view se celkem hojně používá i v češtině, spolu s českým překladem pohled. Jedná se skutečně o určitý - přesně definovaný - pohled na data, která jste do systému zadali. Ačkoli v databázi máte vždy k dispozici všechna data, v konkrétním případě chcete vypsat či zobrazit “jen něco”, “jen někomu”, “pokaždé jinak” v závislosti na konkrétní URL adrese apod. Technicky vzato je pohled poněkud vylepšený dotaz do databáze, jehož velkou výhodou je, že ho můžete “naklikat” a dále upravovat přes administrační rozhraní webu.

Funkcionalitu poskytuje modul views, který je od verze Drupal 8 v jádře. Co se týče budování struktury webu, jsou views patrně nejsilnějším a nejpoužívanějším nástrojem Drupalu.

Drupal vám některé pohledy nabízí již hotové (jsou dodané jádrem nebo contrib moduly), další si můžete vytvořit sami (administrační rozhraní je na adrese /admin/structure/views). Za pomoci views můžete pracovat s různými entitami (např. s uzly, uživateli, komentáři), ale i s jinými daty - třeba se záznamy v databázovém logu. Vezměme si pro představu jeden příklad vestavěný v jádře - view Titulní strana (Frontpage, strojový název frontpage). Z konfigurace (/admin/structure/views/view/frontpage) možná sami odvodíte, co vlastně tento pohled “dělá”, protože většina nastavení je pojmenovaná celkem intuitivně. Jednotlivé části  podrobněji popisujeme spolu s praktickým příkladem ve 4. části tutoriálu. Nyní si všimněte hlavně toho, že pohled vypisuje obsah (uzly), což je nastaveno v části Filter criteria. Dále se podívejte na Nastavení stránky (Page settings). V tomto případě je totiž za pomoci pohledu vytvořena stránka, která má určitou URL adresu (zde je to adresa /node). Adresu pohledu můžete samozřejmě zadat do nějakého menu, v tomto konkrétním případě to však není třeba, protože adresa /node se defaultně používá jako homepage webu (nastavení najdete na adrese /admin/config/system/site-information).

Pomocí pohledů můžete získat i jiné výstupy, než jsou právě stránky s URL adresou; může to být například blok (viz níže) nebo RSS zdroj. Základní princip fungování je však vždy stejný a jakmile si jej osvojíte, budete mít s Drupalem napůl vyhráno.
 

Blok (block)

Bloky jsou něco jako kontejnery, které můžete naplnit v podstatě jakýmikoli daty (text, obrázek, reklamní banner, výpis novinek, kalendář… ) a umístit do předem definovaných míst na webu. Těm “definovaným místům” se říká regiony; z pohledu HTML jsou to stavební jednotky tématu vzhledu. Kdybyste si představili web jako dům, pak by regiony odpovídaly místnostem a bloky by byly kusy nábytku, které můžete naplnit tím, čím právě potřebujete (případně je můžete nechat i prázdné pro pozdější využití) a nastěhovat do různých místností. Drupal nabízí některé bloky už hotové (jsou výstupem modulů jádra či contrib modulů), jiné vzniknou automaticky, když vytváříte menu, další můžete vytvářet v konfiguraci “ručně”. V části věnované pohledům jsme se zmínili o tom, že i pohled může generovat výstup ve formě bloku - je to jedna z nejčastěji používaných možností (na konkrétní příklad se podíváme ve 4. části).

Prohlédněte si pro začátek příklady již rozmístěných bloků dodaných jádrem, které najdete na adrese /admin/structure/block. Všimněte si, že rozmístění bloků je závislé na tématu vzhledu - každé téma vzhledu má totiž jiné regiony). Jestliže vycházíte z nové čisté instalace Drupalu, je výchozím tématem vzhledu Bartik a tomu odpovídá  výchozí dílčí záložka v sekci Umístění bloků (Block layout). Zde vidíte, že například v regionu Hlavička se nachází blok Site branding, který obsahuje logo, název a slogan webu. V regionech Primary menu a Secondary menu jsou bloky obsahující menu (podrobněji viz níže), a v regionu Obsah je kromě bloku Obsah hlavní stránky (to je “to hlavní”, co na dané adrese chcete zobrazit) také např. Název stránky či Nápověda.

Aby to nebylo tak jednoduché, bloky nejsou jen “nadstavbou”, která umožňuje budovat strukturu webu. Od Drupalu 8 jsou bloky zároveň entitami, mohou mít pole a také bundles (to jsou v tomto případě typy vlastních bloků, tedy bloků, které vytváříte ručně). V začátcích práce s Drupalem tyto vlastnosti možná ani neoceníte, mohou však přijít vhod u náročnějších projektů.

Menu

Menu je běžnou součástí snad každého webu, nebude však od věci zmínit se o tom, jak práce s menu zapadá do celkové architektury Drupalu.

Na adrese administrace menu (admin/structure/menu) vidíte, že Drupal vám několik vestavěných menu nabízí, další si můžete vytvořit sami. Ve chvíli, kdy nové menu zakládáte, je prázdné (vyzkoušejte si to, založte třeba “Testovací menu”) - může být připraveno pro něco, co teprve budujete. O jednotlivých položkách menu to však neplatí. Hlavně pro začátečníky je vhodné poznamenat, že položka menu není “šuplík” ani “něco jako adresář”, který byste mohli později naplnit. Je to odkaz směřující na adresu, která musí existovat. Zatímco třeba na dálnici můžete vidět (přeškrtnutý) ukazatel na ještě nedokončený sjezd, Drupal vám takové “provizorium” nedovolí - snaha vytvořit položku menu s odkazem na neexistující stránku vašeho webu skončí chybovou hláškou. Položku menu tedy tvoříte až v momentě, kdy máte na co odkazovat - např. na adresy jednotlivých entit, pohledů (views) apod.

Po vytvoření menu musíte ještě zajistit, aby se někde zobrazilo. Princip je stejný, jako u menu dodaných jádrem Drupalu: pro každé menu Drupal automaticky vytváří blok, který můžete zobrazit v některém z regionů, a to v nastavení Umístění bloků (admin/structure/block) pomocí tlačítka Place block. Dokud však menu nemá žádné položky (odkazy), nezobrazí se vůbec, a to ani v případě, že jste ho správně umístili do regionu.

Prvky a nástroje, které jsme vám zatím představili, nejsou ani zdaleka kompletním výčtem toho, co máte v Drupalu k dispozici. Základ webu však už s jejich pomocí postavíte. V poslední části tutoriálu se podíváme na jednoduchý praktický příklad. 
 

Autor: Eva Rázgová

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

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