S kalendáři se na webech setkáváme v nejrůznějších podobách. Mohou sloužit pro přístup do archivu článků, kde nám jednoduše vyfiltrují příspěvky publikované v určitém období. To je funkce, se kterou se často setkáváme třeba u blogů postavených (nejen) na Wordpressu. Kalendář můžete na webu implementovat i pro vytvoření seznamu plánovaných událostí. Své čtenáře tak můžete jednoduchým způsobem o těchto akcích informovat.
Základní jádro redakčního systému Drupal žádný kalendářový modul nenabízí. Můžete si však vypomoci doplňkovými moduly. V následujícím videu jsou zmíněny následující moduly, které si stáhněte a nainstalujte do své implementace Drupalu:
Kalendář pro existující články
Jakmile uvedenou kombinaci modulů zapnete, vznikne vám v seznamu Views nový pohled nazvaný calendar. Aktivujte jej odkazem Enabled a přepněte se do Administrace, Prvky webu, Bloky. Aktivujte nový blok Calendar a vyzkoušejte jej.
Zobrazí se boxík s jednoduchým kalendářem, kde si můžete vybrat některý den a podívat se, zda tehdy byly publikovány některé články. Kromě toho, že je kalendářík klikací, ukazuje dny s vydanými články také podtržením číslice.
Kalendář pro nový typ obsahu
Kalendář samozřejmě nemusíte používat pouze pro již existující typy obsahu, jako jsou třeba běžné články. Můžete si vytvořit zcela nový typ obsahu, který bude obsahovat políčko s datem. Typickým příkladem je nový typ obsahu pro nějaké akce, který kromě standardních obsahových polí nabídne informaci o tom, kdy se akce koná.
Tento příklad si můžete vyzkoušet krok za krokem na následujícím videu.
Video již není dostupné
Alternativní postup
Výše uvedené video ukazuje, jak vytvořit kalendář zároveň s přípravou zcela nového typu obsahu. Pokud však chcete kalendář „naroubovat" na existující typ obsahu s nějakým datovým políčkem, postupujte tak, že naklonujete výchozí Views nazvané calendar a mírně jej upravíte.
Nejprve upravte filtr tak, aby se vám do View dostal jen určitý typ obsahu. Poté si v sekci Arguments přidejte políčko s datem, podle něhož budou články propojeny s kalendářem. Výchozí nastavení počítá s tím, že je obsah provázán dle data vydání uzlu.
Nastavení vzhledu kalendáře
S úpravou vzhledu kalendáře pomocí kaskádových stylů byste neměli mít problém. Stačí si uvědomit, že kalendář je vlastně klasické View upravené o několik nových prvků. Se stylováním vám může pomoci vygenerování šablony pomocí Views. Přepněte se do úpravy prvku pohledu a v sekci Theme klepněte na odkaz Information. Zobrazí se seznam možných souborů šablony, po kliknutí na něj se ukáže obsah, který byste do takového souboru v šabloně měli uložit. Poté jej stačí jen upravit a změnit vzhled pomocí kaskádových stylů.
Tento článek a v podstatě i video jsou určeny zkušenějším tvůrcům webu s Drupalem. Budete-li mít problémy se stylováním kalendáře a Views obecně, můžeme se tomuto tématu věnovat někdy příště. Před použitím modulu Calendar vřele doporučuji nastudovat, jak se vůbec pracuje s Views. Vše potřebné by vám měla odpovědět má kniha o Drupalu.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Kdybych chtělo Upcoming i na pět nejbližších akcí (dle videa) i na úkoly na aktuální den - to musím Upcoming duplikovat? Nebo upravit někde jinde? Já bych nectěla dva kalendáře na jednom nodu.
Díky.
Dobrý den,
chtěl bych se ještě zeptat, kde se mění formát data pro upcoming. Jednou už jsem to dělal, ale teď to prostě nemohu najít. V jednom bloku mám St, 09/22/2010 a v druhám 9/22/2010 - 07:38, potřeboval bych, aby byly oba bloky stejné dle formátu St, 09/22/2010.
Za odpověď děkuji
Dobrý den,
mám problém ohledně instalace kalendáře. Po nainstalování výše uvedených modulů (calendar, date, Views) mi naskočila hláška
The Date Popup module now requires the jQuery UI module as a source for the datepicker. Please install it immediately.
Díky tomu mi nefunguje téměř celý web. Nemohu se dostat na muduly abych doinstalovat výše zmíněný modul. V menu prvky webu je pouze blok a překlad rozhranní. Nevím jak muho doinstalovat modul bez nabídky seznamu modulů nebo v čem je problém.
Děkuji
Není nic snazšího, než tam doinstalovat ten modul, na který vám ona hláška rovnou nabízí odkaz.
Pokud se Vám rozhodilo menu, bude to asi něčím dalším, aktualizoval jsem teď v poslední době modul Date na několika webech, se stejným hlášením, ale bez problémů.
Jinak, odkaz na správu modulů je admin/build/modules.
Děkuji za rychlou odpověď, bohužel do menu se nedostanu žádnou cestou pokaždé mě to prespěruje na prvky vebu, kde jsou pouze ty 2 výše zmiňované volby.
Chyba se stala po instalaci výše zmiňovaných modulech.
Pro upřesnění Drupal 6.19 a moduly jsem stahoval aktuální ke dnešnímu dni. Zatim jedu na Localhostu Apache 2.4 a PHP 5.2.3.
Dají se zapnout jiným způsobem moduly??
Děkuji Jakub
Když zadáte adresu neco.cz/admin/build/modules, tak se Vám nezobrazí správa modulů?
Přesně tak, nicméně jsem si hrál celý včerejší den a vytvořil novou instalaci drupalu a vše nastavil tak, jak jsem měl předtím, ale bojím se, aby se mi nestala stejná chyba. Pokusím se rozjet nejprve jQuery modul a snad budu mít více štěstí. Asi bych se měl podívat ještě na zálohování :).
I tak Vád děkuji, Váše návody a videa jsou k nezaplacení.
Děkuji
Dobrý den!
Pomocí Vašeho návodu se mi podařilo nastavit kalendář na našich stránkách http://schak.cz/
Už od samotného spuštění mi Drupal předkládá mnoho warningů podobného stylu:
Attempt to modify property of non-object v souboru /hosting/www/schak.cz/www/modules/calendar/includes/calendar_plugin_display_page.inc na řádku 47.
S ohledem na diskuzi pod Vaším článkem, jsem tyto upozornění ignoroval, ale bohužel to nestačilo.
Problém nastal ve chvíli, kdy jsem přidal několik Akcí...
Po nějakém čase (cca. 1 hodina) celé stránky spadly a vůbec se nenačítá vzhled, jsou pouze v textové podobě a když se zaloguji ručně přes URL do administrace, tak jsou zablokované Bloky a Kalendář nejde vypnout.
Už jsem zkoušel kompletní přeinstalování Drupalu a následné vytvoření celého webu, průběh byl bohužel 2x ten samý. Nejprve funkční kalendář i s Akcemi a následně pád celého webu.
PHP využíváme 5.3.4
Nenapadá vás prosím někoho, v čem by mohl být problém?
Vše na základní verzi Garland, 6.20 Drupal a poslední verze modulů (uváděných jako stabilní).
Tak jsem asi přišel na jednu z možných příčin... Měl jsem nastavenou velikost DB na 10MB a všechno zaplňuje tabulka watchdog, která má víc jak 8MB... Teď jsem zkusil web vytvořit ještě potřetí a se 100MB prostorem pro DB zatím vše běží, ale DB se stále zvětšuje...
Proto mi asi celá stránka spadla. Vzhledem k tomu, že se do logu píše šíleně moc chybových hlášek kvůli modulu calendar, jak jsem zmiňoval výše, roste DB velice rychle :o(
Máte nějaký nápad jak tento problém eliminovat?
Zdravím 10 MB je samozřejmě nepoužitelných, 100 MB je taky nic moc vzhledem k tomu, že watchdog uchovává různá hlášení. Čím vyšší návštěvnost, tím vyšší nároky na uložení dat.
Co se týče chyb, je to dáno tím PHP 5.3.x, bezproblémové je to na PHP 5.2.x.
Dobrý den, děkuji za videonávod - udělal jsem podle něj kalendář akcí na cz.kampocesku.eu a mám jednu prosbu, zda lze nějakým způsobem provádět hromadný import akcí do kalendáře, řádově se jedná o stovky akcí. Děkuji
Dobrý den, zkuste modul Import / Export API. Poskytuje rozhraní, ve které můžete importovat uzly třeba z XML nebo CSV. Jen je třeba vše pořádně naklikat. Moc zkušeností s ním nemám, zkoušel jsem jej kdysi na rozjíždějícím se webu a bylo tam potřeba po importu řešit různé další úpravy importovaných uzlů. Taky neuměl obrázky. Ale pro základní umístění dat do kalendáře by mohl asi stačit.
Děkuji, podívám se na to.
Dobry den mam dotaz jestli jde nejak upravit kalendar, jako zmenseni nebo jestli jde posunout.
Na strance http://knm.szaa.org/ mam na levem boku kalendar a precuhuje pres levi blok.
Vuceb nevim jak to upravit uz si sitm hraji pekne dlouho.
Diky za radu
Dobrý den, jistě. Upravte si CSS. Jak jsem koukal, úplně by stačilo zrušit to odsazení pro blok s kalendářem.
Dobrý den,
díky za videonávod, funguje to bezvadně.
Chtěl jsem se zeptat, jestli máte někdo zkušenost s překladem do češtiny? Přeložil jsem si řetězce v překladu rozhraní (Administrace->Prvky webu->Překlad rozhraní), ale v kalendáři se mi zobrazují přeložené pouze názvy měsíců. Zkratky pro dny jsou stále anglické a výraz "MORE" v náhledu nejbližších akcí také. Cache jsem vyčistil.
Dny jsou uloženy jako jeden řetězec, který je třeba přeložit. Zkuste tohle, mám dojem, že to přeloží komplet: Jak na neustále aktuální český překlad Drupalu.
Moc díky, už to funguje. Já jsem předtím přeložil celý řetězec, ale stejně se mi ten překlad nezobrazoval. Nevím, v čem jsem dělal chybu. Teď už je to dobré. Ještě jednou díky.
Dobrý den,
v sekci upcoming se mi zobrazuje datum akce pouze pokud jsem přihlášen jako administrátor. Ostatním rolím se nezobrazuje. Už jsem koukal všude do práv i nastavení zřejmě jsem něco přehlédl, nevíte prosím čím by to mohlo být?
Děkuji
Děkuji jsem slepy jako patrona.
Dobry den,
diky za super navod!
Dotaz 1:
Potreboval bych ale poradit jestli je mozne aby mi z vygenerovaneho bloku kalendare data odkazovaly rovou na patricne nody/akce a ne do dalsiho views s dennim/tydenim/mesicim zobrazenim.
Dotaz 2:
Jak na to aby v bloku kalendar byla kazda akce zvyraznena jinak barevne v zavislosti na zvolenem typu akce.?
Velice dekuji za kazdou radu. MnIT
Dobrý deň.
Vďaka tomuto videu som dokázal vytvoriť kalendár akcii, som začiatočník.
avšak sa my vyskytol takýto problem, omylom som vytvoril dva kalendáre ... mám obe vo views.
v sekcii "vytvoriť obsah" mám typ obsahu Akcia, no po jeho otvorení mám dve okná pre zadávanie dátumu akcie s jedným titulkom.
Chcel by som obe kalendáre odstrániť a odstrániť aj všetko ostatné čo som v kalendároch skúšobne zverejnil , a začať s tvorbou kalendára akcii odznova.
Prosím Vás o radu ako to uskutočniť, aby som mal views v stave (čisté) ako pred prvou tvorbou kalendára,
aby som mohol začať odznova.
Ďakujem ... prajem pekný deň.
Dobrý den, snadná pomoc. V Prvky webu > Views prostě ta nepovedená View smažte. je na to odkaz. Pak můžete třeba vypnout ještě modul pro kalendář a datum, následně jej odinstalovat, čímž smažete všechna data s ním spojená, znovu jej zapnout a zkusit to postavit znovu.
Dakujem za pomoc, fakt jednoducjhe a uz mi funguje uplen novy kalendarik, idem teraz dumať a pátrať ako ho nastylovať a preložiť do SK. :-)
Dobrý den,
vytvořil jsme dle Vašeho návodu modul kalendář pro akce v drupal 7 a k němu přidal políčko město pro pozdější filtrování ve výpisu. Chtěl bych se zeptat zda a jak je možné toto pole před vyplnit podle aktuálně přihlášeného uživatele, který zadává tuto akci. K uživateli jsem přidal také pole město při registraci jako povinné.
Dobrý den, to půjde asi jedině přes nějaký doplňkový modul, nemělo by být složité jej vytvořit. Jen vezmete funkci hook_form() a upravíte výchozí hodnotu v políčku.
Dobrý deň.
TAk ako som uz minule spominal, kalndar mi podla vasho videonavodu funguje pekne.
mam vsak tentokrat otazku ohladom upravy jeho vzhladu nakolko sa mi na stranke zobrazuje akýsi rozhádzaný a velký. teda:
- bolo by množné veľkosť zobrazovaného kalendárika v (mam ho v pravo) bloku zmensit?
- ako ma urobit aby mi ikonky pre posúvanie mesiacov neprekrývali názov mesiaca?
- a čo celková úprava vzhľadu kalendárika v bloku? viac sa mi páči ten ktorý je v jednoduchom module "Calendar Block".
- na čo slúži modul "fullcalendar" ?
vdaka za rady a odpovede .
pekný úspešný týždeň prajem .
Dobrý den, vzhled kalendáře lze samozřejmě upravit, stačí do tématu vzhledu doplnit upravené CSS. Otázka je, zda to zvládáte, nebo ne.
Dobrý deň.
Správna otázka a odpoveď je jednoznačná, samozrejme nezvládam.
ako som spomenul som začiatočík ale posnažím sa nejako si poradiť, kdesi vygooglim návod.
vďaka za pomoc.
DD, postupoval jsem podle video-návodu a vše je ok až do doby, kdy chci vytvořit událost. Když dám typ obsahu Akce, zobrazí se jen pole pro zadání data. Pole pro zadání času se nezobrazuje. Mám D6 poslední verze a aktualizován modul date. Nevíte, kde může být problém? Celé jsem to prolezl a nemůžu přijít na to, kde dělám chybu. Děkuji
dobry den postupoval jsem podle videonavodu a neco sem asi prehledl Muzete mi prosim poradit ?
- strict warning: Non-static method view::load_views() should not be
called statically in
/www/doc/www.radimlecian.cz/www/modules/views/views.module on line 864. - strict warning: Declaration of
calendar_plugin_display_page::options_submit() should be compatible with
views_plugin_display_page::options_submit(&$form, &$form_state)
in
/www/doc/www.radimlecian.cz/www/modules/calendar/includes/calendar_plugin_display...
on line 297. - strict warning: Declaration of
calendar_plugin_display_page::options() should be compatible with
views_object::options() in
/www/doc/www.radimlecian.cz/www/modules/calendar/includes/calendar_plugin_display...
on line 297. - strict warning: Declaration of
calendar_plugin_display_block::options() should be compatible with
views_object::options() in
/www/doc/www.radimlecian.cz/www/modules/calendar/includes/calendar_plugin_display...
on line 78. - strict warning: Declaration of
calendar_plugin_display_attachment::options_submit() should be
compatible with
views_plugin_display_attachment::options_submit(&$form,
&$form_state) in
/www/doc/www.radimlecian.cz/www/modules/calendar/includes/calendar_plugin_display...
on line 242. - strict warning: Declaration of
calendar_plugin_display_attachment::options() should be compatible with
views_object::options() in
/www/doc/www.radimlecian.cz/www/modules/calendar/includes/calendar_plugin_display...
on line 242. - strict warning: Declaration of
calendar_plugin_display_ical::options_submit() should be compatible with
views_plugin_display_page::options_submit(&$form, &$form_state)
in
/www/doc/www.radimlecian.cz/www/modules/calendar/calendar_ical/calendar_plugin_di...
on line 217. - strict warning: Non-static method view::load() should not be
called statically in
/www/doc/www.radimlecian.cz/www/modules/views/views.module on line 906. - strict warning: Non-static method view::load() should not be
called statically in
/www/doc/www.radimlecian.cz/www/modules/views/views.module on line 906. - strict warning: Declaration of
date_handler_field_multiple::pre_render() should be compatible with
content_handler_field_multiple::pre_render($values) in
/www/doc/www.radimlecian.cz/www/modules/date/date/date_handler_field_multiple.inc
on line 185. - strict warning: Declaration of
views_handler_filter::options_validate() should be compatible with
views_handler::options_validate($form, &$form_state) in
/www/doc/www.radimlecian.cz/www/modules/views/handlers/views_handler_filter.inc
on line 607. - strict warning: Declaration of
views_handler_filter::options_submit() should be compatible with
views_handler::options_submit($form, &$form_state) in
/www/doc/www.radimlecian.cz/www/modules/views/handlers/views_handler_filter.inc
on line 607. - strict warning: Declaration of
views_handler_filter_boolean_operator::value_validate() should be
compatible with views_handler_filter::value_validate($form,
&$form_state) in
/www/doc/www.radimlecian.cz/www/modules/views/handlers/views_handler_filter_boole...
on line 159. - strict warning: Declaration of
views_plugin_row::options_validate() should be compatible with
views_plugin::options_validate(&$form, &$form_state) in
/www/doc/www.radimlecian.cz/www/modules/views/plugins/views_plugin_row.inc
on line 134. - strict warning: Declaration of views_plugin_row::options_submit()
should be compatible with views_plugin::options_submit(&$form,
&$form_state) in
/www/doc/www.radimlecian.cz/www/modules/views/plugins/views_plugin_row.inc
on line 134. - user warning: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near 'akce ON node.vid = node_data_field_Datum akce.vid
WHERE ((node.status = 1) AND ' at line 3
query: SELECT COUNT(*) FROM (SELECT node.nid AS nid
FROM node node
LEFT JOIN content_type_terminy node_data_field_Datum akce ON node.vid =
node_data_field_Datum akce.vid
WHERE ((node.status = 1) AND (node.type in ('terminy')))
AND (DATE_FORMAT(node_data_field_Datum akce.field_Datum akce_value,
'%Y-%m-%d') >= '2013-07-12')
) count_alias in
/www/doc/www.radimlecian.cz/www/modules/views/includes/view.inc on line
805. - user warning: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near '.field_Datum akce_value AS node_data_field_Datum
akce_field_Datum akce_value,
' at line 3
query: SELECT node.nid AS nid,
node.title AS node_title,
node_data_field_Datum akce.field_Datum akce_value AS
node_data_field_Datum akce_field_Datum akce_value,
node_data_field_Datum akce.field_Datum akce_value2 AS
node_data_field_Datum akce_field_Datum akce_value2,
node.type AS node_type,
node.vid AS node_vid
FROM node node
LEFT JOIN content_type_terminy node_data_field_Datum akce ON node.vid =
node_data_field_Datum akce.vid
WHERE ((node.status = 1) AND (node.type in ('terminy')))
AND (DATE_FORMAT(node_data_field_Datum akce.field_Datum akce_value,
'%Y-%m-%d') >= '2013-07-12')
ORDER BY node_data_field_Datum akce_field_Datum akce_value ASC
LIMIT 0, 5 in
/www/doc/www.radimlecian.cz/www/modules/views/includes/view.inc on line
810. - strict warning: Non-static method view::load() should not be
called statically in
/www/doc/www.radimlecian.cz/www/modules/views/views.module on line 906.
Toto souvisí s verzí PHP, nemělo by to mít vliv na funkci. Stačí si ukrýt chybová hlášení.
Díky za podělení se o zkušenosti.