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

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.

návštěvník

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

návštěvník

To budu asi vědět já:

editace obsahu -  kde to chcete změnit (tyty obsahu) - Manage fields - a upravíte typ CCK, který zobrazuje to datum. Já to mám v "Datetime"

návštěvník

Nastavil jsem to ve fieldu daného views :-), díky za rady

návštěvník

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

Profile picture for user Jan Polzer

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.

návštěvník

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

Profile picture for user Jan Polzer

Když zadáte adresu neco.cz/admin/build/modules, tak se Vám nezobrazí správa modulů?

návštěvník

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

návštěvník

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

návštěvník

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?

Profile picture for user Jan Polzer

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.

návštěvník

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

Profile picture for user Jan Polzer

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.

návštěvník

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

Profile picture for user Jan Polzer

Dobrý den, jistě. Upravte si CSS. Jak jsem koukal, úplně by stačilo zrušit to odsazení pro blok s kalendářem.

návštěvník

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.

návštěvník

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.

návštěvník

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

návštěvník

Děkuji jsem slepy jako patrona.

návštěvník

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

návštěvník

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

Profile picture for user Jan Polzer

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.

návštěvník

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

návštěvník

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

Profile picture for user Jan Polzer

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.

návštěvník

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 . 

 

Profile picture for user Jan Polzer

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.

návštěvník

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.

návštěvník

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

návštěvník

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.

 

Profile picture for user Jan Polzer

Toto souvisí s verzí PHP, nemělo by to mít vliv na funkci. Stačí si ukrýt chybová hlášení.

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
Nové diskuze
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