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 »

 
<< December 2017 >>
Mo Tu We Th Fr Sa Su
Friday December 1.
Honoree Iva - EdmundWeek 48.
1
Sunday December 2.
Honoree Blanka - BibianaWeek 48.
2
Saturday December 3.
Honoree Svatoslav - SvatomírWeek 48.
3
Monday December 4.
Honoree Barbora - BarbaraWeek 49.
4
Tuesday December 5.
Honoree Jitka - LianaWeek 49.
5
Wednesday December 6.
Honoree Mikuláš - NikolasWeek 49.
6
Thursday December 7.
Honoree Ambrož - BenjamínWeek 49.
7
Friday December 8.
Honoree Květoslava - KvětomilaWeek 49.
8
Sunday December 9.
Honoree Vratislav - VratislavaWeek 49.
9
Saturday December 10.
Honoree Julie - JuliánaWeek 49.
10
Monday December 11.
Honoree Dana - DanušeWeek 50.
11
Tuesday December 12.
Honoree Simona - ŠimonaWeek 50.
12
Wednesday December 13.
Honoree Lucie - LuciánWeek 50.
13
Thursday December 14.
Honoree Lýdie - LivieWeek 50.
14
Friday December 15.
Honoree Radana - RadanWeek 50.
15
Sunday December 16.
Honoree Albína - AlbínWeek 50.
Outdated Event16
Saturday December 17.
Honoree Daniel - DanWeek 50.
17
Today - Monday December 18.
Honoree Miloslav - MiloradWeek 51.
Event in today18
Tuesday December 19.
Honoree Ester - DariusWeek 51.
19
Wednesday December 20.
Honoree Dagmar - DagWeek 51.
Future Event20
Thursday December 21.
Honoree Natálie - NoelWeek 51.
21
Friday December 22.
Honoree Šimon - SimonWeek 51.
22
Sunday December 23.
Honoree Vlasta - NikéWeek 51.
23
Saturday December 24.
Honoree Adam a Eva
Štědrý den
Week 51.
24
Monday December 25.
Boží hod vánoční
1. svátek vánoční
Week 52.
25
Tuesday December 26.
Honoree Štěpán - Sokrat
2. svátek vánoční
Week 52.
26
Wednesday December 27.
Honoree Žaneta - MelánieWeek 52.
27
Thursday December 28.
Honoree Bohumila - DonikaWeek 52.
28
Friday December 29.
Honoree Judita - NatanWeek 52.
29
Sunday December 30.
Honoree David - DavidaWeek 52.
30
Saturday December 31.
Honoree Silvestr - HorstWeek 52.
31
   December 16. - Outdated Event
 December 18. - Event in today
 December 20. - Future Event  Today - 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