Kalendář v Drupalu 6 (videonávod)

Další pokračování série videonávodů pro redakční systém Drupal vás naučí, jak jednoduše implemenovat kalendářové rozhraní a vytvořit k němu příslušný obsah.

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.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

návštěvník

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?

Profile picture for user Jan Polzer

Zdravím, nevím o tom. Leda si to ručně přeložit pomocí Administrace|Prvky webu|Překlad rozhraní.

návštěvník

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ář?

Profile picture for user Jan Polzer

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í.

návštěvník

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

návštěvník

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 :-/

návštěvník

Mám to, problém byl mezi židlí a klávesnicí :-/

návštěvník

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ěď.

návštěvník

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ěď.

Profile picture for user Jan Polzer

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.

návštěvník

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?

Profile picture for user Jan Polzer

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.

návštěvník

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

Profile picture for user Jan Polzer

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í.

návštěvník

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ý.

návštěvník

Tohle lze jednoduše odstranit vypnutím modulu kalendáře. Vypněte v modulech "Calendar Popup"

PF

návštěvník

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.

návštěvník

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.

Profile picture for user Jan Polzer

Zkuste Firebug a Web Developer plugin pro Firefox. Odpoví Vám. Já bych řekl, že se stačí kouknout na barvy v #calendar.

návštěvník

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.

návštěvník

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"

Profile picture for user Jan Polzer

Jo, vykřikuje to, ale funguje. Pro jistotu ale připomínám, že je třeba mít PHP 5.

návštěvník

k běhu je potřeba ještě modul Content, ale nedaří se mě ho najít. Nacházím jen samé rozšíření tohoto modulu, ale samotný Content ne

návštěvník

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

Profile picture for user Jan Polzer

Jojo. Používejte raději stabilní vývojovou řadu modulů. Žádné alphy nebo bety.

návštěvník

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

Profile picture for user Jan Polzer

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).

návštěvník

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

Profile picture for user Jan Polzer

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?

návštěvník

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

Profile picture for user Jan Polzer

Dobrý den,
koukněte se, jak máte nastavena políčka CCK, případně jestli máte právo na jejich vkládání.

návštěvník

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.

Profile picture for user Jan Polzer

Zkuste se ujistit, že nemáte DEV verze modulů, ale stabilní verze. Vypněte CCK, odinstalujte jej a zapněte znovu.

návštěvník

Mockrát děkuji. Měl jste pravdu, modul Date jsem měl -dev. Moc si vážím vaší pohotové a účinné pomoci. S přáním hezkého dne, Jan Nagy ;-)

návštěvník

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

návštěvník

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.

návštěvník

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

 

návštěvník

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:

  • 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.
  •  

    Profile picture for user Jan Polzer

    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.

    Profile picture for user Jan Polzer

    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?

    návštěvník

    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.

    Profile picture for user Jan Polzer

    Nastavení webu > Hlášení chyb > Zapsat chyby do logu. Na obrazovce tak nebudou vidět.

    návštěvník

    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

    návštěvník

    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

    Přidat komentář

    Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

    reklama
    Moje kniha o CMS Drupal

     

    Kniha 333 tipů a triků pro Drupal 9


    Více na KnihyPolzer.cz

    Sledujte Maxiorla na Facebooku

    Maxiorel na Facebooku

    Poslední komentáře
    Hosting pro Drupal a WordPress

    Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

    @maxiorel na Twitteru

    Maxiorel na Twitteru