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
Zdravím, nevím o tom. Leda si to ručně přeložit pomocí Administrace|Prvky webu|Překlad rozhraní.
A ještě se chci optat, když chci posunout třeba na další měsíc, tak se reloaduje celá stránka. Dá se to nějak nastavit, aby se měnil jen kalendář?
Tak teoreticky by mělo stačit, pokud v definici Views zapnete volbu Use Ajax v sekci Basic Settings. Ovšem zkoušel jsem to a stejně se načítá celá stránka při jakékoli změně období.
Máte pravdu, ani po zapnutí to nefunguje. Zjistil jsem ještě jednu chybku, když chci zobrazit přehled akcí na celý rok, tak kliknutím na year mi vyskočí toto:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 50860966 bytes) in /www/cz/r/rrvysocina.cz/web/includes/bootstrap.inc on line 735
Díky za návod, zkusil jsem použít i předpřipravený pohled "Archive", který přidá blok "Monthly archive", ale bohužel se mi nedaří pohled přesvědčit, aby měsíce řadil sestupně (od aktuálního k nejstarším). V konfiguraci views je nastaveno Sort criateria na Node: Post date desc (default view i block view) - náhled zobrazuje, to co má, ale v bloku na stránce je výstup po uložení konfigurace view stále vzestupný. Poradíte, co s tím?
BTW. ajax v bloku taky nefunguje, stránkování měsíců v archívu překreslí celou stránku :-/
Mám to, problém byl mezi židlí a klávesnicí :-/
Dobrý večer, velmi pěkný článek. Lze pomocí nějakého modulu zajistit, aby se jednotlivé události odesílaly automaticky na zadaný seznam e-mailů. Nejlépe k datu přidání a pak v zadaný počet dní před událostí. Děkuji za odpověď.
Dobrý den, myslím, že by to šlo pomocí standardního modulu Action.
Pěkný den,
poté co nainstaluji modul date_api se změní stránka s nastavením formátu data a času. Předdefinované formáty a také vlastní formáty se vypisují pouze anglicky a nedokáži je nijak nastavit na české. Prostě třeba PHP zápis "D, j. M Y H:i" se zobrazí jako Tue, 4. Aug 2009 22:09 namísto aby byl "Út, 4. Srp 2009 22:09".
Existuje řešení?
Děkuji velice za odpověď.
Dobrý den. Zkuste to přeložit v Překladovém rozhraní. Já jsem se smířil s tím, že v administraci je to anglicky, ale v článcích a jinde, kde se datum vypisuje, je to česky.
Dobry den,
pouzivam modul Calendar pro vytvoreni ukolnicku v ramci firmy. V kalendari se potom zobrazuji ukoly na urcite dny. Zaroven mam k dispozici fields, kde definuju pro koho je ukol urcen a pomoci modulu Workflow se nastavuje stav ukolu. V praxi to vypada asi takto: http://nielo.xf.cz/ukolnik.jpg
Potreboval bych nejakym zpusobem rozlisovat dokoncene a nedokoncene ukoly a zaroven pro kazdeho uzivatale jinou barvu. Dokoncene ukoly budou mit napr. zeleny border, nedokoncene zadny. Podklad ukoly je implicitne zluty, chtel bych pro kazdeho uzivatele jinou barvu. Staci nadefinovat staticky stylem if (uzivatel=novak) ... Pravdepodobne bude cesta pres nejaky tpl.php, ale nevim si rady s promennyma. Pomuzete?
Dobrý den. Takto naslepo to asi nezvládnu. V definici Views bych rozklepl seznam šablon, vytvořil příslušný soubor v tématu vzhledu a v něm doplnil nějaké class podle pravidla, které zmiňujete. Ve style.css pak už stačí doplnit barvu.
Dobrý deň,
chcem sa spýtať, akým spôsobom sa dá urobiť, aby som bol po kliknutí na konkrétny deň v kalendári presmerovaný priamo na zoznam článkov vytvorený v ten deň, ale nie v tej kalendárovej tabuľke, ale ako výpis článkov (napr. ako môže byť na titulnej strane).
Chcem ešte pochváliť knižku Drupal, ktorá mi veľmi pomohla, je to skvelá pomoc pre všetkých, výborne napísaná.
Nech sa darí, Mišo BA
Dobrý den. Tohle myslím nejde. Muselo by se dělat nějaké dynamické View, které by zobrazovalo články podle data. Kalendář je ale vytvořen tak, aby odkazoval na své vlastní zobrazení.
Zdravím,
Mám podobný "problém", ale není k tomu potřeba nic dynamického. Jen se mi nelíbí, že se konkrétní událost vypíše vmizerném plovoucím okně (většinou utíká pod obrazovku). Jak by se mohl vypsat rovnou e ne v tomhle okně. Mate mne, že odkaz je stejný.
Tohle lze jednoduše odstranit vypnutím modulu kalendáře. Vypněte v modulech "Calendar Popup"
PF
Ve verzi 2.2 lze attachment pro day/week/month/year view změnit na libovolný styl - nemusíte tedy používat vždy styl kalendáře. Stále vám však v horní části zbyde navigace kalendáře, tu odstranit nelze.
Mam dotaz na zmenu barvy v kalendare. Ktery je zobrazen v bloku. Nevim ktere css jej zahrnuje zkousel jsem .mini .day atd v css calendar modulu ale bez vysledku.
Zkuste Firebug a Web Developer plugin pro Firefox. Odpoví Vám. Já bych řekl, že se stačí kouknout na barvy v #calendar.
Dekuji za odpoved a taky za pekne a docela jednoznacne provedene video. Barvy se mi nakonec podarili dat dohromody, chtelo se to akorat vice vnorit do css. Jeste jednou diky.
Dobrý den, chtel bych se zeptat, jestli pak ste se uz setkali z tim, ze po nakopirovani Date a Calendar modulu a po aktivaci v admin rozhrani, dojde k mnozstvu chybovych hlaseni.
Pokousel sem se to vyselektovat tim, ze sem krok po kroku vypinal soucati modulu dle navaznosti, az sem dosel hned k prvnimu, ktery je potrebny zapnout a to Date API.
Jak vsichni vime, on musi byt zapnuty jako prvni, aby se dali zapnout ostatni, ale jelikos prave on vyhodi chybovou hlasku cely calendar je pak nepouzitelny...
zni asi takhle: "warning: Attempt to modify property of non-object in C:\wamp\www\AEC\modules\date\includes\date_plugin_display_attachment.inc on line 24."
a pak sou tam lines 25,26,28,29,30,31
pro jistotu to vyhodi dva krat takze to zabere peknou cast obrazovky
prosim o odpoved a predem dekuju
PS: vsechny moduly mam "up to date"
Jo, vykřikuje to, ale funguje. Pro jistotu ale připomínám, že je třeba mít PHP 5.
views-6.x-3.0-alpha3 !!! tato verze mi házela chybu po založení prvního obsahu typu Akce. Stránka s kalendářem se vůbec nenačetla. Jelikož jsem měl nastaveno zobrazení kalendáře všude tak jsem byl chvíli bezradný. pomohlo mi se vrátit do administrace (jiné téma bez kalendáře) a po smazání vytvořeného obsahu jsem mohl opět pracovat. Nicméně s touto verzí views jsem to nerozchodil. Jsem začátečník.
Nicméně verze views-6.x-2.10 je v pořádku.
Díky za článek, přesně to jsem potřeboval. JK
Jojo. Používejte raději stabilní vývojovou řadu modulů. Žádné alphy nebo bety.
Dobrý den,
předně musím poděkovat za precizní práci s návodem. Nahradil jsem tímto způsobem kalendář pomocí modulu Event. Je to trochu efektnější, ale mám otázku. Jak přeložím anglické texty z view do češtiny? Pomocí rozhraní v Drupalu nelze.
Děkuji
Překlad by určitě měl jít. Nezapomeňte, že vyhledávání v překladovém rozhraní je citlivé na velikost zadaných textů (malá velká písmenka).
Dobrý deň.
Ja som to vyhľadával asi takto: !day-name Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday a následne som to preložil. Niečo podobné je to aj s mesiacmi atď.
Mám však iný problém. Podľa perfektného videonávodu mi všetko funguje a vďaka prekladu mám slovenské dni, mesiace ... Chcel by som vytvoriť stránku, ktorou chcem pomôcť a ponúknuť niečo pre tých, ktorým to bude blízke. Mal by to byť taký Diár. Okrem iného základ bude tvoriť práve Kalendár a udalosti v ňom. Najjednoduchšie to vysvetlím na jedálnom lístku. Ak kliknem na konkrétny deň načíta sa mi nová stránka s tromi listami (lištami, odkazmi - neviem to pomenovať) A to Raňajky - Obed - Večera medzi ktorými môžem prepínať. Udalosť musí byť rozbalená celá a často bude aj pomerne dlhá.
Za každú dobrú radu budem vďačný a ľudí ktorí sú trpezliví a ochotní pomôcť nováčikom v Drupale si veľmi vážim. Medzi nich patrí samozrejme Ján Polzer. Ešte raz vďaka za stránku a tiež za vydané knihy.
Marek
Hm... Na tu kombinaci by se určitě použilo Views, CCK a spol. ale teď mě z hlavy nenapadá, jak to celé zkombinovat. Možná nějak přes argumenty ve Views?
Dobrý den.
Použil jsem váš videonávod na kalendář, postupoval jsem krok za krokem a nevyskytl se žádný problém. Při zadávání nové akce do kalendáře ovšem nemám nabídku na vložení datumů akce - jen prostý text, takže se ani akce nemá šanci zobrazit v kalendáři. Nevím, kde dělám chybu. Nenapadá vás nějaký tip? děkuji
Dobrý den,
koukněte se, jak máte nastavena políčka CCK, případně jestli máte právo na jejich vkládání.
Trošku jsem narazil, v Administraci-Správa obsahu-Typy obsahu vubec nemám možnosti Add field ani Add group. V Admin-Prvky webu-Moduly mám samozřejmě veškeré součásti CCK zapnuty. Ale nalezl jsem další nesrovnalost, v nastavení Views - Sort criteria mám "Broken/Missing Handler". Je to můj první Drupalovský projekt, některé části jsou pro mě ještě španělská vesnice.
Dobrý večer,
předem děkuji za skvělý videonávod pro vytvoření kalendáře akcí. Dnes jsem ho úspěšně aplikoval na jeden web. Při ukládání první akce se mi však vyskytl velký problém - bílá obrazovka + chyba -Fatal error: Call to a member function advanced_render() on a non-object in....... views/theme/theme.inc on line 205.
Chvíli jsem s tím zápasil a potom jsem zkusil nahrát starou verzi views (2.8) a začalo to chodit. Předtím jsem měl stabilní verzi 6.x-2.11, ale s ní to bohužel nechodilo. Nevíte, kde by mohl být problém?...Uvažoval jsem ještě o verzi PHP na webhostingu mám toto: 5.2.13-pl0-gentoo.
Za Vaši odpověď děkuji
Petr
PHP 5.2 by mělo být v pohodě, pokud vím, zlobí jen PHP 5.3
No zatím tam nechám starou verzi views, s tou to chodí v pohodě. Pokusím se najít nějaký patch na to, aby to fungovalo s novou verzí views.
Dobrý večer, snažim se nainstalovat kalendář a hází mi to chybu:
The jQuery UI plugin is missing. Download and extract it to your jquery_ui module directory. (Právě se používá jQuery UI Not found)
warning: Attempt to modify property of non-object in /home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc on line 47.
warning: Attempt to modify property of non-object in /home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc on line 48.
warning: Attempt to modify property of non-object in /home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc on line 49.
warning: Attempt to modify property of non-object in /home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes
atd...
Stáhla jsem tedy požadovaný modul, pak jsem stáhla i jquery_ui a extrahovala do jQuery UI ale v modulech mi nejde zapnout. Můžete mi prosim vás někdo poradit?
Děkuji l.lenek
Dobrý večer, snažila jsem se tak postupovat - nevím, jestli tak úplně pochopila.
Stále mi to hlásí chybu:
The Date Popup module now requires the jQuery UI module as a source for the datepicker. Please install it immediately.
Poradíte prosím?
Díky
Tak jsem znovu stáhla a přes FTP přetáhla:
jquery_ui-6.x-1.4.tar.gz
a píše mi to:
/home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc
on line 47.
/home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc
on line 48.
/home/users/intermez/skola-design.g6.cz/web/sites/all/modules/calendar/includes/calendar_plugin_display_page.inc
on line 49.
Nepochybně tam máte špatně vytvořené, resp. špatně do sebe zanořené, složky. Hodťe někam screenshot adresářové struktury toho modulu.
Dobrý den, pane Polzere, posílám a děkuji.
1.
http://skola-design.g6.cz/sites/all/themes/framework/chyba/jquery_ui.jpg
2.
http://skola-design.g6.cz/sites/all/themes/framework/chyba/jquery.ui.jpg
3.
http://skola-design.g6.cz/sites/all/themes/framework/chyba/ui.jpg
Aha, pardon. Strukturu máte dobře, ty chyby jsou v PHP. Mám to stejně a chyby mi to nepíše. Tipnul bych si ale, že máte PHP 5.3, kde to zlobí. PHP 5.2 by mělo být v pohodě.
Na druhou stranu je to jenom warning, má to vliv na funkci?
Děkuji. Myslím, že nakci to vliv nemá, zatím všechno šlape. Dá se nějak to hlášení vypnout? Zatím jsem to schovala v css. Ale v kódu to mám pořád.
Ohledně toho kalendáře mne zajímá dost, ale nevím, jestli se můžu dál ptát. Dost se s ním snažím experimentovat, de-facto-nevím, co dělat. Dnes mi přivezou vaší knihu 333 tipů, tak jsem zvědavá - třeba tam nějakou nápovědu najdu.
Dobrý večer,
řeším teď jeden problém s kalendářem a nevím, jak na to. Na webu mám kalendář akcí udělaný(podle Vašeho návodu) pomocí nového typu obsahu a views a k němu mám blok upcoming – nejbližší akce, kde je 5 nejbližších akcí. Chtěl bych však, ještě jeden blok, kde by byly akce pro aktuální den. S tím, že si vytvořím nový kalendář, kde budou speciální akce na určité dny a ty se budou filtrovat do bloku. Nemohu na to nějak přijít, jak by se to dalo udělat. Zkoušel jsem modul Views Date Range Filter, ale nějak jsme to nerozchodil.
Za Vaše rady a nápady moc děkuji
Tak už to mám, ve filtrech upcomig jsem měl nastavený špatný operator – správný je Is equal to a výchozí hodnota data je now
Dobrý den, dobrý návod a funguje to parádně. Existuje na to nějaké počeštění, myslím počeštění toho kalendáře a položek v něm?