Kapitoly v Drupalu a jejich pojmenování
Jeden ze čtenářů se na mě obrátil s prosbou o bližší popis použití kapitol článku v Drupalu, jejich pojmenování a zobrazení. V Drupalu můžete standardně používat modul Book, který vytváří jakousi elektronickou knihu. Taková kniha se skládá z různých článků a stránek, které na sebe různě navazují a tvoří hierarchickou strukturu. Problém je v tom, že všechny kapitoly a knihy se v administraci objevují v jedné jediné rozbalovací nabídce, což znamená, že po nějaké době je takovýto systém nepřehledný a nepoužitelný. Právě zde přichází ke slovu modul Paging.
Reklama
Modul Paging, který pro tvorbu kapitol používám, naproti tomu nevyžaduje, aby jeden, kapitolami rozdělený článek, byl zadáván na několikrát. Vše je maximálně přehledné, byť o trochu méně uživatelsky přívětivé, ale myslím, že na to jsou uživatelé Drupalu zvyklí.
Paging si stáhněte z webové stránky projektu na adrese drupal.org/project/paging. Jeho zprovoznění vyžaduje jako obvykle nakopírování souborů do příslušné složky s moduly (např. /sites/all/modules), jeho aktivaci ve správě modulů, aktivaci typů obsahu které budou kapitoly využívat (Administrace | Nastavení webu | Paging) a aktivaci podpory kapitol ve správě filtrů (Administrace | Nastavení webu | Formáty textu).
Poté už stačí, pokud do článku, který chcete kapitolami rozdělit, vložíte značku <!--pagebreak-->. Na místě, kde ji Drupal nalezne, vznikne zakončení stránky a zbytek článku bude dostupný pomocí klasického stránkování.
Jak na názvy kapitol?
Potíž samozřejmě nastává v případě, že si chcete kapitoly nějakým způsobem pojmenovat. V tom případě vám běžná verze modulu Paging stačit nebude. Vřele doporučuji si přečíst diskuzi k tomuto tématu na Drupal.org ve vlákně Pages needs names. Je zde upravená verze modulu (která je zřejmě zahrnuta už i do vývojové verze), která umožňuje kapitoly pojmenovávat.
Přináší několik změn v administraci. Přepněte se na Administrace | Nastavení webu | Paging a podívejte se, co je vyplněno v políčku Separator. Mělo by tam být napsáno pagebreak a doporučuji vám to neměnit. Rozdělování kapitol pak proběhne pomocí nových značek:
[firstpagebreak title=Úvodní strana...]
[pagebreak title=Jedna z kapitol...]
Značky opět vkládáte do textu na místa, kde bude článek zalomen na kapitoly. První značku použijete samozřejmě pouze jednou, označuje úvodní stranu. Pro všechna další zalomení použijte druhý typ zápisu. Pojmenování kapitoly uveďte jako text za title=.
Upravený modul Paging dále umožňuje, aby se seznam pojmenovaných kapitol objevil jako součást článku, což samozřejmě zpříjemňuje uživatelům prohlížení webu více, než jen sada čísel sloužících jako odkazy na stránky. Výpis kapitol musíte zapnout v Administrace | Nastavení webu | Paging pomocí volby Enable pages listing.
Umístění seznamu kapitol
Seznam kapitol se v upraveném modulu Paging umisťuje pod článek. Pokud se kouknete na různé weby (tedy nejenom drupalovské), kde kapitoly používají, pak si všimnete, že někdy jsou sice kapitoly umístěny dole, velice často je však najdete i v horní části článku. Změna je jednoduchá, musíte jen upravit jeden řádek v souboru paging.module.
Vyhledejte tuto podmínku:
if (variable_get('paging_pagelist_enabled', 1)) {
$node->content['body']['#value'] .= theme('item_list', $links);
A změňte ji na:
if (variable_get('paging_pagelist_enabled', 1)) {
$node->content['body']['#value'] = theme('item_list', $links) . $node->content['body']['#value'];
Jinými slovy namísto toho, aby se seznam kapitol přilepoval na konec těla článku (resp. kapitoly), bude zobrazen vždy na jeho začátku.
Jak tato úprava vypadá v praxi, se můžete podívat například na webových stránkách ExtraHardware.cz.
Kapitoly a FCKeditor
Nejnovější verze modulu pro podporu FCKeditoru už umí s kapitolami pracovat. Podporuje však jen první typ zápisu, tedy značku <!--pagebreak-->, což neumožňuje pojmenovávání jednotlivých kapitol. Každopádně je to cesta, jak zpříjemnit zadávání článku, pro vložení rozdělovací značky pak stačí stisknout jediné tlačítko.
Reklama
Volná místa v IT
- J2EE Developer - Cleverlance - Bratislava, Praha (CLEVERLANCE s.r.o.)
- Junior programátor JAVA (20 – 30.000,- Kč) (Advantage Consulting, s.r.o.)
- Administrátor Linuxových systémů (ON SEMICONDUCTOR)
- Senior Backup & Storage Specialist (ON SEMICONDUCTOR)
- Programátor C# (25 – 50.000,- kč) (Advantage Consulting, s.r.o.)









Komentáře
Re: Kapitoly v Drupalu a jejich pojmenování
tvurce (www.digilidi.cz) 14.4.2008 10:55:07 (#1600)Výborný návod, díky!
Jinak pokud web ovládají technicky zdadní jedinci, je IMHO FCKeditor nebo TinyMCE k ničemu = těžkopádný a taky prasí kód. Pro všechny běžné články i s obrázky stačí nastavený BUEditor s vazbou na vkládání obrázků s IMCE.
Webmaster na DIGIlidi.cz
Re: Kapitoly v Drupalu a jejich pojmenování
Jan Polzer (www.polzer.cz) 14.4.2008 11:25:16 (#1601)Bohužel ve většině případů, kdy se web tvoří někomu na zakázku, je třeba počítat s tím, že web technicky zdatní jedinci neovládají :-)
Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.
Re: Kapitoly v Drupalu a jejich pojmenování
tvurce (www.digilidi.cz) 15.4.2008 09:41:32 (#1603)Jsem nevěděl, že EHW jsou lamy :) a potřebují tu FCKhrůzu... Ale ne, jen ve srandě.-) důležitej je obsah.
Webmaster na DIGIlidi.cz
Re: Kapitoly v Drupalu a jejich pojmenování
Jan Polzer (www.polzer.cz) 15.4.2008 09:46:31 (#1604)ono je to taky hodně o produktivitě. Já tu taky mám FCKeditor. A ne kvůli tomu, že bych nedovedl napsat pár HTML tagů, ale proto, že mi to i při delším načítání administrační stránky urychluje práci.
Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.
Re: Kapitoly v Drupalu a jejich pojmenování
SonnY 14.4.2008 16:48:01 (#1602)Nevies ako vyriesit nahradenie ciarky kodom %2C? V selecte a item liste mi to funguej dobre ale v normalnom pagingu sa ciarka nahradi kodom. Viem ze aj na extrahardware je rovnaky "problem".
Re: Kapitoly v Drupalu a jejich pojmenování
Jan Polzer (www.polzer.cz) 29.4.2008 23:33:00 (#1625)no, to opravdu nevím. Chvíli jsem se tím zabýval, ale bez výsledku. Na základě Tvého dotazu jsem však našel modul Clean Pagination. Na první pohled to vypadá, že je to řešení, na které se ptáš, ale nezkoušel jsem to. Pokud to uděláš, budu rád za informaci o výsledku.
Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.
Nainštaloval som si modul
Návštěvník (neověřeno) 25.1.2009 11:02:28 (#2402)Nainštaloval som si modul paging z drupal.org a po jeho aktivácii mi začalo vyhadzovať nasledovné hlášky ak sa prepnem do režimu úpravy článku.
Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1104475:\"MySQL server has gone away\nquery: UPDATE cache_form SET data = 'a:40:{s:3:\\"#id\\";s:9:\\"node-form\\";s:3:\\"nid\\";a:2:{s:5:\\"#type\\";s:5:\\"value\\";s:6:\\"#value\\";s:3:\\"110\\";}s:3:\\"vid\\";a:2:{s:5:\\"#type\\";s:5:\\"value\\";s:6:\\"#value\\";s:3:\\"110\\";}s:3:\\"uid\\";a:2:{s:5:\\"#type\\";s:5:\\"value\\";s:6:\\"#value\\";s:1:\\"1\\";}s:7:\\" in \www\includes\database.mysql.inc on line 128
Neviem s tým pohnúť. Neporadil by mi niekto ?
Re: Nainštaloval som si modul
Jan Polzer (www.polzer.cz) 26.1.2009 14:20:11 (#2405)Koukněte se (http://drupal.org/project/issues/paging?states=all), jestli někdo nemá podobný problém. Může to být chybou modulu, ale i nastavením na webhostingu.
Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.