Drupal – tipy na zajímavé moduly
Drupal ve výchozí instalaci obsahuje pouze základní funkčnost, kterou však lze velmi snadno rozšířit pomocí externích modulů. Rád bych vás proto upozornil na několik z těch, které považuji za zajímavé a především užitečné.
Moduly zmíněné v předchozích článcích
Na úvod stručně zrekapituluji moduly, které byly zmíněny a většinou též popsány v předchozích článcích:
- pathauto – automaticky generuje pěkná URL (viz článek Drupal – tvoříme osobní weblog)
- taxonomy – slouží ke kategorizaci obsahu (viz tentýž článek)
- moduly pro speciální textové syntaxe (modul pro Textile, modul pro Texy!, modul pro Markdown) – zjednodušuje zápis obsahu (viz článek Drupal – komfortní vkládání obsahu)
- tinymce – podpora WYSIWYG vkládání obsahu (viz tentýž článek)
- Image a Img_assist – podpora pro vkládání obrázků (viz tentýž článek)
Vyhledávání
Vyhledávání je na web možno přidat buď pomocí externí služby (Google, Jyxo a podobně) nebo nějakým interním mechanismem. Drupal k tomuto účelu používá vestavěný modul search, jehož použití je následující:
- Na stránce
admin/modules
povolte modulsearch
. - Pro pravidelnou indexaci obsahu je bezpodmínečně nutné občasné navštívení stránky
http://example.com/cron.php
, což vám může zařídit vaše webhostingová společnost, pokud cron nabízí. Pokud nikoli, je nejjednodušším řešením použít modul poormanscron, který bude fungovat na libovolném hostingu. - Navštivte cestu
admin/settings/search
a v případě potřeby nastavte parametry vyhledávání. Asi nejzajímavější je možnost ovlivnit hodnocení (ranking) obsahu – můžete například nastavit, že novější příspěvky mají větší váhu než příspěvky s velkým počtem komentářů (nebo naopak). - Nyní zbývá už jen zobrazení vyhledávacího políčka koncovému uživateli. Máte v zásadě dvě možnosti:
- Povolit zobrazení vyhledávacího políčka v nastavení tématu (
admin/themes/settings/název_tématu
) – vyhledávací políčko se obvykle zobrazuje v záhlaví stránky. Některá témata (napříkladbluemarine
) tuto formu podporují, jiná (napříkladchameleon
) nikoli. - Univerzálně použitelným způsobem je zobrazení vyhledávacího bloku, který se zobrazí v postranním sloupci. Pro jeho aktivaci navštivte stránku
admin/block
a povolte blok Search form.
- Povolit zobrazení vyhledávacího políčka v nastavení tématu (
Vlastní typy obsahu – moduly CCK, Views a Contemplate
Drupal (na rozdíl od některých jiných CMS) klade velký důraz na kvalitní práci s obsahem. Terminologie proto zavádí pojmy jako node (jednotka obsahu), node type (typ obsahu) a podobně. Jako administrátor mohu například určit, že příspěvky do blogu (typ obsahu blog) mají mít přístupné komentáře, zatímco statické stránky (typ obsahu page) nikoli a že se navíc nemají objevovat v RSS exportech. Ačkoli tedy z laického pohledu statická stránka i příspěvek v blogu vypadají stejně – mají nadpis a nějaký obsah – z právě uvedených důvodů se vyplatí rozlišovat mezi typem obsahu blog a typem obsahu page. Navíc mohou existovat i „exotičtější“ typy obsahu, jako například anketa, obrázek a další.
Koncept různých typů obsahu je tedy důležitý a pro některé weby je výhodné nebo dokonce potřebné, aby si nový typ obsahu mohly definovat samy. Dříve bylo potřeba tuto situaci řešit vývojem vlastního modulu, ale v poslední době se do slušně stabilní podoby dostaly tři moduly, které flexibilitu obsahu zvyšují bez nutnosti programování v PHP. Jedná se o moduly CCK (Content Construction Kit), Views a Contemplate. Tyto moduly by vystačily na samostatný článek, proto jsem se spíše než technické detaily rozhodl popsat jejich účel na malé případové studii.
Na svém blogu jsem chtěl zprovoznit postranní box s odkazy na jiné zajímavé články, což lze nejsnáze řešit přímým zápisem do XHTML šablony nebo vytvořením XHTML bloku a jeho přímou editací. Toto řešení však není příliš uživatelsky přívětivé a navíc je problematické uchovávat historii odkazů, nabízet jejich RSS export a podobně. Výhodnější proto bylo vytvořit nový typ obsahu zajímavý odkaz, který má kromě povinného nadpisu také pole pro odkaz samotný a potom ještě pole pro nepovinný popis. S modulem CCK
se jednalo o práci na pár minut – definovala se dvě textová pole, jejich název a popis a to bylo v podstatě vše. Při zadávání nového odkazu vypadá uživatelské rozhraní následovně:
Typ obsahu „Zajímavý odkaz“
Druhým krokem bylo vytvoření nového pohledu, který poskytuje jak stránkový pohled (borber.com/blog/zajimave-odkazy), tak blok využitelný v postranním sloupci na hlavní stránce (blok je nastaven tak, aby zobrazoval pět nejnovějších odkazů a aby obsahoval odkaz „více“ vedoucí na stránkový pohled). V definici pohledu lze nastavit celou řadu dalších věcí, jako například řazení, filtrování a podobně. Pružnost modulu Views
je opravdu velká.
Posledním krokem je upravení výchozího výstupu, který modul CCK
při zobrazení určitého typu obsahu generuje. Pokud se podíváte například na zobrazení jednoho nódu typu zajímavý odkaz, uvidíte, že ve výchozím stavu generuje zbytečné a nepěkné texty „Link“ a „Link description“. Řešením je modul Contemplate
, který k typu obsahu umožňuje přiřadit šablonu. U zajímavých odkazů jsem zobrazení nódu neřešil, protože návštěvník stejně nemá žádnou možnost se na tuto stránku proklikat (musel by zadat přesné URL), ale třeba u typu obsahu „školní práce“ úpravu generovaného kódu používám a bez ní by to v podstatě nešlo.
Ve vzájemné kombinaci tedy tyto tři moduly výrazně zvyšují užitnou hodnotu Drupalu a je dost dobře možné, že ovlivní budoucnost Drupalu – o integraci CCK do základního balíku se uvažuje a časem by měly být nahrazeny překonané moduly blog
, story
a další podobné.
Modul category
Základním úkolem většiny webů je vytvoření navigace a kategorizace obsahu. V tomto ohledu existuje v komunitě Drupalu určitý rozkol – jedna skupina považuje klasifikační možnosti Drupalu za výjimečně pružné a kvalitní, zatímco druhá je považuje za příliš složité a uživatelsky nepřívětivé. Vestavěné kategorizační možnosti skutečně trpí některými problémy – je používána velmi nepřirozená terminologie (pojmy taxonomie, slovník nebo termín nejsou pro začátečníky vůbec intuitivní), kategorie není nódem a je tak například hůře lokalizovatelná, nelze na ni aplikovat běžné atributy jiných jednotek obsahu a podobně. Největší výhradou však bývá, že i pro relativně jednoduché weby je obtížné navrhnout kategorizaci obsahu „správně“, tedy vybrat ty správné moduly, udělat správná architektonická rozhodnutí a podobně. Proto vznikl modul category, který si velmi rychle získal oblibu a vyřešil většinu zmíněných problémů.
Modul category
přináší tyto zásadní vlastnosti:
- Byla spojena funkčnost modulů book a taxonomy. První sloužil k vytváření hierarchické struktury webu (o podivné terminologii už řeč byla…), zatímco druhý ke kategorizaci obsahu. Toto rozdělení způsobovalo mnoho praktických problémů.
- Kategorie i jejich kontejnery jsou v této implementaci běžnými jednotkami obsahu (nódy).
- Modul se snaží o maximální kompatibilitu se starým kategorizačním systémem. Projekt obsahuje „wrapper“ moduly, které zajišťují přesměrování požadavků na odpovídající funkce modulu
category
.
Osobně vám tedy modul category
mohu jedině doporučit (do začátků je dobrým materiálem oficiální tutoriál), pouze je v současnosti nutno počítat s některými chybami, které zatím nebyly opraveny. Podle vyjádření autora modulu by většina z nich měla být odstraněna do konce roku 2006, podle vlastní zkušenosti však mohu říci, že modul lze prakticky bez problémů používat už dnes.
Překlad obsahu do jiného jazyka
Globalizace a lokalizace je pro kvalitní CMS nutností a počeštění uživatelského rozhraní Drupalu bylo ukázáno hned v jednom z úvodních článků. Co však Drupal ve výchozím nastavení neobsahuje, je podpora lokalizace obsahu. Tu zajišťuje modul Internationalization (i18n).
Základní práce s ním je poměrně přímočará:
- Modul tradičním způsobem nainstalujte. Projekt Internationalization je spíše balíčkem několika modulů, takže kromě modulu
i18n
nezpomeňte povolit i doprovodné moduly, předevšímtranslation
. Musíte rovněž povolit modullocale
. - Na stránce
admin/locale
přidejte jazyky, pro které má existovat lokalizovaný obsah. - Pro typy obsahu, které mají být lokalizovatelné, navštivte jejich nastavení (
admin/settings/content-types
) a Multilingual support změňte na Enabled. - Běžným způsobem vytvořte jednotku obsahu, například stránku. Po jejím uložení budete mít možnost přejít na záložku Translation, kde lze definovat překlad pro všechny podporované jazyky.
V praxi se setkáte s celou řadou problémů, které budete muset překonat, například skoro určitě budete chtít změnit výchozí adresy typu en/welcome
a cs/welcome
tak, aby adresa české stránky byla cs/vitejte
, nebo budete chtít lokalizovat položky menu a podobně. V tom případě vám doporučuji prostudovat třeba článek Getting the whole thing to work, kde je řešení nejčastějších požadavků popsáno.
Další moduly ve zkratce
Možnosti nasazení Drupalu jsou široké a nelze tak popsat všechny myslitelné moduly, kterých existují stovky. V krátkosti bych tedy chtěl zmínit alespoň přehled několika dalších, které by se vám mohly hodit:
- Forum – umožňuje vytvořit diskusní fórum; zde přijdou vhod doplňkové moduly jako quote, bbcode a další
- Gallery – integruje aplikaci Gallery2
- Bad Behavior – brání webovou stránku před spamboty a jiným škodlivým software
- Google Sitemap – vytváří XML soubor pro Google
- Excerpt – umožňuje definovat vlastní shrnutí článku, které se může lišit od začátku samotného textu
- Subscriptions – posílá upomínky e-mailem při přidání nového diskusního příspěvku do vlákna, při přidání nového komentáře v blogu a podobně
O další užitečné moduly se s ostatními můžete podělit v komentářích – všichni se rádi dozvíme něco nového.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Thunderbolt 4 vs. OCuLink: Přišel čas na upgrade?
27. května 2024 -
Praktické rady na zabezpečení redakčního systému WordPress
27. února 2023
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024