Jak vytvořit PHP kalendář akcí?

How to create in PHP the Events Calendar?

Zobrazit stránku v češtině » Show this site in English »

 
<< Prosinec 2017 >>
Po Út St Čt So Ne
pátek 1. prosince
Svátek slaví Iva - Edmund48. týden
1
sobota 2. prosince
Svátek slaví Blanka - Bibiana48. týden
2
neděle 3. prosince
Svátek slaví Svatoslav - Svatomír48. týden
3
pondělí 4. prosince
Svátek slaví Barbora - Barbara49. týden
4
úterý 5. prosince
Svátek slaví Jitka - Liana49. týden
5
středa 6. prosince
Svátek slaví Mikuláš - Nikolas49. týden
6
čtvrtek 7. prosince
Svátek slaví Ambrož - Benjamín49. týden
7
pátek 8. prosince
Svátek slaví Květoslava - Květomila49. týden
8
sobota 9. prosince
Svátek slaví Vratislav - Vratislava49. týden
9
neděle 10. prosince
Svátek slaví Julie - Juliána49. týden
10
pondělí 11. prosince
Svátek slaví Dana - Danuše50. týden
11
úterý 12. prosince
Svátek slaví Simona - Šimona50. týden
12
středa 13. prosince
Svátek slaví Lucie - Lucián50. týden
13
čtvrtek 14. prosince
Svátek slaví Lýdie - Livie50. týden
14
pátek 15. prosince
Svátek slaví Radana - Radan50. týden
15
sobota 16. prosince
Svátek slaví Albína - Albín50. týden
Akce v minulosti16
neděle 17. prosince
Svátek slaví Daniel - Dan50. týden
17
Dnes je pondělí 18. prosince
Svátek slaví Miloslav - Milorad51. týden
Dnešní akce18
úterý 19. prosince
Svátek slaví Ester - Darius51. týden
19
středa 20. prosince
Svátek slaví Dagmar - Dag51. týden
Budoucí akce20
čtvrtek 21. prosince
Svátek slaví Natálie - Noel51. týden
21
pátek 22. prosince
Svátek slaví Šimon - Simon51. týden
22
sobota 23. prosince
Svátek slaví Vlasta - Niké51. týden
23
neděle 24. prosince
Svátek slaví Adam a Eva
Štědrý den
51. týden
24
pondělí 25. prosince
Boží hod vánoční
1. svátek vánoční
52. týden
25
úterý 26. prosince
Svátek slaví Štěpán - Sokrat
2. svátek vánoční
52. týden
26
středa 27. prosince
Svátek slaví Žaneta - Melánie52. týden
27
čtvrtek 28. prosince
Svátek slaví Bohumila - Donika52. týden
28
pátek 29. prosince
Svátek slaví Judita - Natan52. týden
29
sobota 30. prosince
Svátek slaví David - Davida52. týden
30
neděle 31. prosince
Svátek slaví Silvestr - Horst52. týden
31
   16. prosince - Akce v minulosti
 18. prosince - Dnešní akce
 20. prosince - Budoucí akce  Dnes je 18. 12. 2017 
 

   Před několika lety jsem si postavil malou meteostanici, která posílala data na tyto stránky, kde je ukládala do denních logů. Hledal jsem tehdy cestu, jakým způsobem tato data zobrazovat návštěvníkům a při pátrání na síti jsem narazil na blog na stránkách www.rjwebdesign.net, kde autor popisuje návod na malý PHP kalendář. Onehdá jsem jej lehce poupravil a bylo tak možné zobrazovat data z meteostanice ze dnů, kdy probíhalo měření. Naneštěstí, po pár měsících měření jedno zařízení potřebné k přenosu dat "zdechlo" bez zjevné příčiny a "bylo vymalováno". Už jsem nechtěl investovat, tak jsem ambice amatérského meteorologa uložil k ledu.
   Na výše uvedeném blogu jsem tehdy zanechal v diskusi odkaz na zmíněný meteo kalendář a pár lidí ke mě zbloudilo. Před pár lety jsem si začal opět hrát a stvořil tu věc vlevo, snad se to může někomu hodit, tak jí dávám k dispozici world wide na této stránce. Předem případné rýpaly varuji, že nejsem "echt" kodér, jen si rád hraju s grafikou, poněvadž hodně fotím, tak tedy...

   A few years ago I did built a small electronic weather station, which did send data on this websites to daylogs. I was looking for some solution, how to display data to visitors and I had found one blog on www.rjwebdesign.net, where is described the calendar in PHP. At this time I has modified this calendar for possibility to display weather station data (only in CZ language) in graphical form. If you will click on any day in this meteo-calendar, you can see the measured data in graphs (temperature, dew point, relative humidity and athmospheric pressure). Unfortunately, one device from data sending chain broken down after a few months of measuring and it meant end of my amateur meteorologist ambitions.
   Some time ago I has started working on this calendar again and created the thing, which you can see left. It can be fit for someone, so here is it world wide for free use. I must warn - I'm not the programmer, only a guy which like the photography and handle a little bit computer graphics.


   ...nejdřív uvedu několik výhod/nevýhod tohoto řešení, jak to vidím online i offline:

   Several advantages/disadvantages, how it seems to me online and offline:

  1. PHP skript kalendáře je umístěn v samostatném adresáři a je vkládán do stránky příkazem require_once.
  2. Calendar script is located in the separate directory, in this way can be include to more sites by require_once() PHP command, anywhere into the site code where we want to display this calendar.
  3. Pro zobrazení jednotlivých měsíců používá skript metodu GET, čímž obnovuje celou stránku a otravuje život těm brouzdalům, kteří v prohlížeči vehementně klikají na tlačítko zpět.
  4. For calendar months screening was used method GET, which reloading all the site containing calendar. It can be confusing for some visitors who are using the browser back-button for "madness" clicking.
  5. Kalendář nepoužívá žádnou databázi, jen pár externích "texťáků" s příslušnými daty pro zobrazení jmenin, svátků a akcí.
  6. Calendar not use some database, only a few external txt files with appropriate data for names, saint's days, public holidays and selected days.
  7. Kalendář používá pro zobrazení (ořez) obrázků na pozadí funkce z rodinky image..., tudíž by jste měli mít nainstalované na lokále PHP s podporou knihovny GD, o hostingu ani nemluvě.
  8. Calendar use GD image functions for resize and crop the background images, it is necessary to have got instaled PHP with GD support on your local server, not to speak about your webhosting.
  9. Všechna výše uvedená omezení/neomezení si můžete lehce upravit dle svého gusta, fantazii se meze nekladou!
  10. All this limiting/not limiting things you can easy modify by yourself skill and imagination.

   Následuje kód skriptu, který je snad dostatečně okomentovaný, níže pod ním ukázka textového souboru se jmeninami, státními svátky a významnými dny. Zvýrazněné odkazy ve skriptu je třeba upravit podle struktury vašeho webu a dosadit vlastní cesty, totéž platí o stylopisu! Nemusíte se obtěžovat s kopírováním kódů přes clipboard, všechny jsou pro případné zájemce zabaleny níže na stránce v úhledném balíčku včetně základních grafických prvků a stylopisu.    Now you can review the script code, which is perhaps satisfactory commented, followed by one illustration txt file with Czech name days, sait's days and public holidays and one illustration txt file for selected day in conclusion (Volunteer Firefighters Ball in our village). Links in the script you must modify by yourself website structure, it is important for CSS file too! Don't copy this codes via clipboard, all the needed files including self script, CSS file, some txt files and basic graphic elements are packed in the zip file, which you can download down on this website.


   Ukázka souboru se svátky a jmeninami, výše uvedený skript z něj "pumpuje" detaily pro titulky jednotlivých dnů. Takových texťáků je potřeba 12, pro každý měsíc jeden, anebo je třeba nebýt líný a vytvořit databázi. Toto je leden:
   Illustration file with name days, saint's days and public holidays in Czech Republic. Foregoing script "pumping" this data for day's titles and this files exist in 12 versions - for every month the one. There can be used a database. This is list for Czech month January:

Mečislav / Mečislava - Nový rok - Státní svátek / Den obnovy samostatného českého státu
Karina / Vasil
Radmila / Radomil
Diana / Dajana
Dalimil / Dalimila
Kašpar / Melichar / Baltazar - Tři králové
Vilma / Vilemína
Čestmír / Erhard
Vladan / Vladana / Valtr
Břetislav / Břetislava
Bohdana / Teodora
Pravoslav / Pravoslava
Edita / Leontýna
Radovan / Radovana
Alice / Alison - Den památky Jana Palacha
Ctirad / Ctislav
Drahoslav / Drahoš
Vladislav / Vladislava
Doubravka / Fabián
Ilona / Sebastián
Běla / Bianka
Slavomír / Slavomíra
Zdeněk / Raimund
Milena / Timotej
Miloš / Miloň
Zora / Zoran
Ingrid / Ingeborg - Den památky obětí holocaustu a předcházení zločinům proti lidskosti
Otýlie / Manfréd
Zdislava / Zdislav
Robin / Erna
Marika / Marieta

   Ještě musím zmínit zobrazení vybraných akcí. Na těchto stránkách zobrazuji velké fotografie, ale i některé jiné věci v Lyteboxu, což je odnož známějšího Lightboxu. Stejně je tomu i u vybraných akcí v kalendáři, které jsou zobrazovány ve formě html stránky uvnitř upraveného Lyteboxu - to je ten atribut rel="zframe".
   Poslední ukázkou je tedy texťák s parametry konkrétní akce, který je skriptem vkládán do zobrazené stránky v Lyteboxu. Tady je důležité číslování - řádek jedna je pak zobrazen jako nadpis akce, řádky 2-9. obsah a konečně poslední desátý řádek je cesta k obrázku na pozadí. Teoreticky by v tomto uspořádání stačily řádky 3 - nadpis, obsah, pozadí, ale takhle je to přehlednější (a parser se ne..sere). Soubor totiž může obsahovat tagy pro formátování, protože data jsou vkládána do html stránky, ta je součástí adresáře "events" a nazval jsem ji events.php (naleznete ji případně v balíčku). Tato stránka je pak zobrazována uvnitř Lyteboxu. Odkazy na akce, které již nejsou aktuální, jsou směrovány do fotogalerie.
   Zobrazování na vašem webu je nutné upravit, pokud nemáte rádi javascriptová "udělátka", stačí směřovat odkaz třeba na jinou stránku na vašem webu či musíte stvořit nějaký vyskakovací objekt na bázi CSS :hover, kde budou podrobnosti akce vypsány. Pokud žádné "udělátko" nepoužijete, zobrazí se jen vizitka akce - samotná stránka events.php - příklad tohoto:
   Here I must say more about events messages display. All photos and some other objects (eg. html reports) on this sites are shown in Lytebox, what is one modification of known Lightbox. This same way of show is used for events messages in calendar, which are shown like a html site inside Lytebox - this is that attribute rel="zframe" in PHP script.
   Next illustration show one of the txt files with concrete event's parameters, which is inserted to html site inside Lytebox by foregoing script. Here is important numbering of rows in this file, where 1st row mean event's header, rows 2-9. mean contain and last 10th row mean background image path. In this order is possible it could have only 3. rows - header, contain and path, but in the following arrangement is it clearly, isn't it? The event's file can contain a html tags for message formating, because data are included to html site. This site named events.php is included in "events" directory together with particular txt event's files. Not actual event links are automatically redirected to events photo gallery.
   You must modify the events imaging on your web, if you don't like JavaScript widgets, you can route the link to any site on your web or you must create some CSS object for event's display. If you will not to create or use some object for message display, the event's message will be shown like this link. There is displayed file:

1.Hasičský bál // nadpis// header
2.Dne <b>15. února 2014</b> koná se v sále KD Zbelítov tradiční hasičský bál za zvuku kapely <b>Teplický drak</b><br> // obsah ...// contain ...
3.<br>:: Začátek ve 20:00 hod<br>
4.<br>:: Vstupné: 100,- Kč<br>
5.<br>:: Bohatá tombola, lístek: 25,- Kč
6.
7.
8.
9. // ... obsah// ... contain
10./galerie/lide/soucasnost/ples_110204-01.jpg // cesta k souboru pozadi// background image path

   Závěrem se ještě vrátím ke skriptu, konkrétně tomu "zmatku" kolem zobrazování pozadí. Na mých stránkách mám ve složkách fotogalerie uloženy jak obrázky velké, tak jejich miniatury. Pokud skript při náhodném výběru narazí na miniaturu, tak je provádění přesměrováno na obrázek sousední (-1), poněvadž ten je zpravidla velký. Pokud i toto pravidlo selže, je nastaven obrázek výchozí. Kdo má na svém webu jen obrázky velké, má vystaráno, může algoritmus zjednodušit a zobrazovat pozadí buďto pomocí souboru funkcí z GD knihovny, obrázky se s nimi dají jak ořezávat, tak zmenšovat, anebo jen zmenšovat pomocí stylopisu. Osobně kombinuji obě metody, proti gustu...
   Co se týče stylopisu, upravte si jej podle grafiky svého webu, balíček obsahuje tu nejnutnější grafiku pro zobrazení, jaké vidíte na těchto stránkách, vyjma obrázků na pozadí - krajinek podle ročního období - ty si musíte dosadit ze svých zdrojů a opět nezapomenout na úpravu cest k souborům na vašem webu! Linkování z mého webu má povolen jej gůgl a pár dalších vyhledávačů, stáhnout obrázky si sice můžete, ale to bych poprosil o odkaz.
   Jináč v téhle konstrukci nevidím větších záludností. Zobrazení jsem odzkoušel v mnoha prohlížečích, všechny v pohodě, až na drobnosti v "Exploderech od Mrkvosoftu", ale to je věčná nemoc dětí z jejich dílny.
   Back to the script at the last time, concrete to that "chaos" around background imaging. On my websites are photos saved in directories in two sizes, big for imaging in Lytebox and miniatures for reviews. If the script during random selecting selects any miniature, so implementation will skip on the neighbour image (-1), which is usually big. If this condition fail and neighbour image is miniature too, script will show the default picture. Who have images in website directories only in one size, can this algorithm make easily and show the background by functions from GD, it enable image resize and crop, or resize the background images via CSS. I'm using both of methods.
   As regards the CSS file - modify it for your website graphics, the packet contains only basic graphics for elementary imaging, which you can see here, except the background images - the landscapes on seasons - this pictures you must add from your sources. Of course, you can copy the files from my websites, the paths are visible and worl wide, but you can not linking. This is prohibited via .htaccess. If yet you will use my photos, please add some link on your websites.
   At the last time, in this construction are no other biggest troubles. Imaging the calendar has been tried in more browsers, everywhere was it fine, except for trifles in I.E., but this is a standard disease of MS outgrowths.

V současné době (začátek roku 2017), je nejaktuálnější skript použit v kalendáři na hlavní straně zbelitovsko.cz. Starší, ale plně funkční verzi kalendáře si můžete stáhnout v zip balíčku, cca 70 "kilobytejch". In present days (early 2017) are newest version of Callendar used on home page zbelitovsko.cz. Older, but fully usable version are here in ZIP, approx. 70kB.

Nemáte-li stále jasno, najdete-li chybu v mém programátorském neumětelství či mi chcete sdělit cokoliv jiného, můžete mi napsat přes kontaktní formulář. For urgent cases - eg. swear about my language or programmer intellects ;-) you can contact me via Contact Form.

Poslední aktualizace stránky:
8.4.2017
- Úprava stylopisu pro plynulejší zobrazení - přidána CSS vlastnost transition pro některé prvky.
16.3.2017 - Bylo přidáno zobrazování Velkého pátku jako státního svátku.
12.2.2017 - Úprava odkazů na stránce (něco se děje ;-)
26.11.2014 - Oprava zobrazení akcí v aktuálním dni.
2.6.2014 - Úprava komentářů a úprava zobrazování odkazů proběhlých akcí.
26.5.2014 - Úprava zobrazování jmenin, svátků a náhledů vybraných akcí. Původní zobrazování v "bublinách" tagu title bylo nahrazeno náhledy používající CSS. K možnosti zobrazení pozvánky uložené v textovém souboru byla přidána možnost zobrazení pozvánky na akci ve formě grafického souboru - plakátu.
15.4.2014 - Úprava zobrazování vybraných akcí v minulosti, přesměrování odkazu na fotografie z akcí ve fotogalerii.
6.2.2014 - Úprava zobrazení kódu, zobrazování čísla týdne v titulcích dnů.
5.2.2014 - Automatické zobrazování data Velikonoc a změny letního času
4.2.2014 - Experimentální zobrazení lunárních fází, prozatím není součástí skriptu.
Last site updates:
8.4.2017
- CSS has been corrected - added transition property for some elements.
16.3.2017 - Easter Goog Friday has been added like the new Czech holiday.
12.2.2017 - On site links update (there's something afoot ;-)
26.11.2014 - In actual day Event's imaging correction.
2.6.2014 - Comments corrections and old Events links displaying corrections.
26.5.2014 - Name days, public holidays and Events overviews displaying correction. Primitive displaying in "bubbles" by the title tags was replaced by CSS styled overviews. Another modification is, that now can be shown Event invitation cards from other external directory containing any graphical files as a posters, not only from the txt files as before.
15.4.2014 - Not actual event liks correction. Now are automatically redirected to event photos in the gallery.
6.2.2014 - Week number imaging in Day's titles, code imaging correction.
5.2.2014 - Easter and Summer time change automatical settings.
4.2.2014 - Experimental imaging of lunar phases, yet not included in script.

Valid HTML 4.01 Transitional

Ověřit CSS!

  • Počítadlo:
  • Přesný čas:
  • přesný čas