Jax Calendar v1.31
Dokumentation
Was ist Jax Calendar? - Wozu braucht man es?
Leistungsmerkmale (Features)
Systemvoraussetzungen
Lizenz
Wie kann man das Kalender-Steuerelement direkt
in seine eigene Webseite einbauen?
Wie kann man die Farben und Schriftarten anpassen?
Wie kann man die Zeitraumbeschränkung an/abschalten?
Wie öffne ich die Eventliste in einem eigenen Fenster?
Wie kann man mehrere Kalendarien gleichzeitig
betreiben?
Wie ändert man die Datei-Zugriffsrechte
auf dem Webserver?
Wieviele Einträge kann Jax Calendar speichern?
Wo erhalte ich Informationen über Updates und
Änderungen?
Projekt: | Jax Calendar (Online Event-Kalendar) | |
Version: | 1.31 | |
Interpreter: | PHP 4.3+ | |
Code: | Andreas John | |
Design: | Andreas John | |
Homepage: | www.jtr.de/scripting/php/calendar/ | |
Lizenz: |
Copyright (C) 2002-2004, Andreas John [ Jack (tR) ] Dieses Programm ist Freeware im Sinne der "General Public License"
Version 2 oder neuer! Den genauen Wortlaut dieser Lizenz finden Sie
in der beiliegenden Datei gpl.txt, bzw. auf der Website der Free Software
Foundation unter http://www.fsf.org/copyleft/gpl.html Bitte beachten Sie, dass ich keinerlei Haftung für Schäden übernehme, die im Zusammenhang mit der Nutzung dieser Software auftreten... |
Ich möchte allen Leuten ein großes Dankeschön aussprechen, die dieses und viele andere Open Source Projekte durch ihre Hinweise, Übersetzungen, liebevollen Anpassungen und Links auf ihren Webseiten unterstützen...
Mein persönliches Dankeschön geht vor allem an:
http://www.fuldas-tauchertreff.de | |
Carmine Santoro
|
http://www.webdomus.net |
Daniele MORO | |
Eduardo H. Sabbi |
http://www.drgate.com.br/ |
Gerard Farràs Ballabriga | http://www.ctfc.es |
Guttorm Hveem | |
Helge Larsen | |
Jarno Ristaniemi | http://www.vihrealiitto.fi/lappi |
Jan Brünig | http://www.stb-vs-devils.de |
Jan van Thiel | http://www.taveres.nl |
Klaus-Peter Lexow | http://www.hell-is-open.de |
Marc Gavage | http://portix.be |
Martin Sondermann | http://www.kunstphotografie.de |
Mitsuhiro Yoshida | http://mitstek.com/ |
Nikityuk Victor | http://nikvic.mlcorp.ru |
Pawel Wagner | http://www.gry.skokinarciarskie.com |
Peter Dauth | http://www.action-sport.de |
Roberto Lizana Ramirez (TreYDo) |
|
Roger Simestad | http://www.rsweben.net |
Sigrid Henning-Bellwinkel | http://bellwinkel.de |
Wojciech Dorosz | |
InteractiveTools.com (bzw. die Entwickler von HTMLarea) | http://www.interactivetools.com/ |
Mihai Bazon (Entwickler des DHTML Kalendar) | http://students.infoiasi.ro/~mishoo/ |
Jax Calendar ist ein Online-Event-Kalendersystem, das Sie ohne Programmiererfahrungen in Ihre Homepage einbauen und beliebig anpassen können.
In einem Online-Event-Kalender können Sie die Termine und Fristen bevorstehender Ereignisse eintragen. Je nach aktuellem Datum bekommen Ihre Besucher eine entsprechend zusammengefasste Liste der bevorstehenden Ereignisse präsentiert.
Eine Demoversion von Jax Calendar finden Sie unter: http://www.jtr.de/scripting/php/calendar/calendar/jax_calendar.php
Jax Calendar bietet Ihnen neben den typischen Funktionen eines WWW-Kalendars viele zusätzliche Leistungsmerkmale. Besonders hervorzuheben ist an dieser Stelle die sehr flexible Unterstützung verschiedener Datenquellen, die es Ihnen ermöglicht, das Kalendarsystem sowohl mit einfachen CSV-Textdateien als auch mit einem MySQL-Datenbanksystem zu betreiben.
Nachfolgend finden Sie eine Übersicht der wesentlichen Leistungsmerkmale von Jax Calendar:
Jax Calendar wurde in PHP 4 geschrieben, einer serverseitigen Programmiersprache, mit der man dynamisch erzeugte Webseiten erstellen kann! (Fragen Sie gegebenenfalls Ihren Web-Provider nach PHP-Unterstützung!)
Jax Calendar ist in der Lage, die Daten sowohl in einfachen Textdateien, alsauch in einem MySQL-Datenbanksystem abzulegen, dadurch läuft es auch ohne MySQL-Datenbank-Anbindung!
Jax Calendar und seine Einzel-Bestandteile unterliegen den Bedingungen der
GPL - General Public License in der
Diese Lizenz erlaubt es Ihnen vor allem, die Software frei weiterzugeben und natürlich weiterzuentwickeln. Desweiteren sind Sie hiermit verpflichtet, einen Copyrighthinweis, bzw. einen Link zum Originalskript (http://www.jtr.de/scripting/php/calendar) beizubehalten!
Jax Calendar enthält ausserdem das Modul htmlArea, das einer BSD-ähnlichen Lizenz unterliegt, die sie evtl. gesondert berücksichtigen müssen.
Jax Calendar wurde in PHP 4 geschrieben, einer serverseitigen Programmiersprache, mit der man dynamisch erzeugte Webseiten erstellen kann! (Fragen Sie gegebenenfalls Ihren Web-Provider nach PHP-Unterstützung!)
Jax Calendar ist in der Lage, die Daten in einfachen Textdateien, sowie in einem MySQL-Datenbanksystem abzulegen, es läuft auch ohne MySQL-Datenbank-Anbindung!
Verfügen Sie für Ihre Website bereits über PHP-Unterstützung, dann tun
Sie bitte folgendes:
Jax Calendar wurde so entworfen, dass es sowohl einfache Textdateien, als auch MySQL-Datenbanktabellen zur Speicherung der Einträge verwenden kann. Der Betrieb mit einem MySQL-Datenbanksystem ist bei großen Kalendarien mit mehreren tausend Einträgen in der Regel schneller als die CSV-Variante...
Verfügen Sie über MySQL-Unterstützung dann tun Sie bitte folgendes:
CREATE TABLE mycalendar (
id int(11) NOT NULL auto_increment,
event_start varchar(30) default NULL,
event_end varchar(30) default NULL,
x24 int(11) NOT NULL default '0',
reminder_start varchar(30) default NULL,
reminder_end varchar(30) default NULL,
status varchar(30) NOT NULL default '',
event_title varchar(255) NOT NULL default '',
event_key varchar(32) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM; CREATE TABLE myevents (
id int(11) NOT NULL auto_increment,
event_key varchar(32) NOT NULL default '',
event_description text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
Beim Anlegen von neuen Terminen im Kalendar-Verwaltungssystem wird zwischen zwei verschiedenen Arten von Zeiträumen unterschieden:
1. Ereigniszeitraum
Der Ereigniszeitraum gibt an, von wann bis wann ein Ereignis stattfindet. Diese Information ist nur Inhaltlich von Bedeutung, beeinflusst den Zeitpunkt der Anzeige der Termine nicht!
Wird bei einem Termin das Häkchen bei "ganztägig" gesetzt, so wird für den Termin später nur das Datum, ohne Uhrzeit in der Eventliste des Kalendars angezeigt. Ist der Startzeitpunkt gleich dem Endzeitpunkt, so wird nur der Startzeitpunkt angezeigt.
2. Erinnerungszeitraum
Der Erinnerungszeitraum gibt an, von wann bis wann der Termin in der Eventliste angezeigt werden soll! Dieser dürfte in der Mehrzahl der Fälle identisch mit dem Ereigniszeitraum sein.
Seit der v1.3 werden die Werte vom Ereigniszeitraum automatisch für den Erinnerungszeitraum übernommen.
Ändern Sie den Erinnerungszeitraum nur, wenn Sie genau wissen, wozu! Mit diesem Wert können Sie die Anzeige eines Ereignisses auch über den Ansichtszeitraum-Filter hinweg erzwingen. Änderungen an diesen Werten führen damit evtl. dazu, dass das Ereignis angezeigt wird, obwohl es eigentlich nicht in die Ansicht gehört. (z.B. kann ein Termin (in der Tages-Übersicht) an jedem Tag innerhalb des aktuellen Monats angezeigt werden, obwohl es nur an einem Tag stattfindet)
Beispiel:
Sie möchten einen Termin für die Internationale Grüne Woche, die vom 17. bis 26. Januar 2003 in Berlin stattfindet in Ihren Kalendar eintragen, und möchten, dass dieser Termin mind. 3 Monate vor der Messe angezeigt wird.
In diesem Fall tragen Sie als Ereigniszeitraum die Zeit vom 17.1.2003 -26.1.2003 ein, machen ein Häkchen bei ganztägig und tragen als Erinnerungszeitraum die Zeit vom 17.10.2002-26.1.2003 ein...
Das Feld Status ist im Moment übrigens noch nicht vollständig implementiert. Bisher haben Sie die Möglichkeit dort Buchstabenkürzel einzugeben, um Ihre Termine zu kennzeichnen, bzw. hervorzuheben. Für die nächste Version ist die "Bestückung" mit benutzerdefinierten Icons geplant. Ihre bisherigen Buchstaben-Einträge werden dadurch natürlich nicht beeinflusst.
Nachdem Sie den Kalendar wie in Kapitel II beschrieben installiert haben, können Sie Ihre Webseiten mit dem Skript verlinken. Dabei haben Sie die Möglichkeit, über die Parameter nach dem Fragezeichen Einfluss auf die Ausgaben des Skript zu nehmen.
http://www.meinedomain.tld/calendar/jax_calendar.php?Y=2003&m=4&d=17&cal_id=0&language=english
Über die Parameter Y und m können Sie festlegen für welches Jahr und für welchen Monat der Kalendar angezeigt werden soll.
cal_id gibt den verwendeten Kalendar an (falls Sie mehrere Kalendarien über das Skript verwalten -> siehe FAQ: Verwaltung mehrerer Kalendarien)
language gibt die Sprache an, in der die Wochentage und Meldungen des Kalendars angezeigt werden sollen. Wichtig ist, dass für die in der URL angegebene Sprache auch eine entsprechende Sprachvorlage im Verzeichnis languages existiert! Andernfalls wird die Sprache gewählt, die in calendar.settings.inc.php festgelegt wurde.
Jax Calendar besteht aus zwei Modulen. Die Module calendar.inc.php und eventlist.inc.php stellen jeweils die beiden Steuerelemente für den Kalendar und die Eventliste bereit. Wie Sie die Module am einfachsten einbinden, ist in der Datei jax_calendar.php anschaulich demonstriert.
Wenn Sie die Module von einer Datei, in einem anderen Verzeichnis als dem Standardverzeichnis calendar/jax_calendar.php aufrufen wollen, müssen Sie mit dem HTML-Tag <BASE href="www.yourdomain.tld/..../calendar"> sicherstellen, dass die Stylesheets und JavaScriptdateien im richtigen Verzeichnis gefunden werden!
Falls Sie die Module direkt in Ihre eigenen Webseiten einbinden möchten, vergessen Sie bitte nicht den Urheberrechtsvermerk, bzw. einen Link zur Download-Seite von Jax Calendar mitzuübernehmen!
Dafür stehen im Verzeichnis css verschiedene vordefinierte Stylesheets zur Verfügung, die man nach Belieben mit einem Texteditor verändern kann.
Für den Anzeigezeitraum sind zurzeit 3 Ansichten vordefiniert. (Tag, Monats-, Jahresansicht). Diese Ansichten werden über den GET-Parameter view gesteuert.
http://../jax_calendar.php?cal_id=1&view=d1
Wenn Sie eine Ansicht (z.B. auf Jahresansicht) vordefinieren möchten, ändern Sie in der calendar.settings.inc.php folgende Zeile:
$view_default = "m12";
Wenn Sie die Eventliste in einem Fenster, getrennt vom Calendar-Steuerelement öffnen möchten, tun sie folgendes:
1. Bereiten Sie eine php-Datei vor (z.B. myeventlist.php) die NUR die Datei eventlist.inc.php einbindet.
2. Ändern Sie die folgenden Zeilen in calendar.settings.inc.php:
$calendar_open_url = "http://.../myeventlist.php";
$calendar_open_target = "_blank";
Möchten Sie dem Skript mehr als einen Kalendar betreiben, können Sie den entsprechenden Kalendar mit dem Parameter cal_id auswählen. z.B:
http://../jax_calendar.php?cal_id=1
Aus Sicherheitsgründen kann der Dateiname des Kalendars nicht direkt mit der URL weitergegeben werden. Die Zuordnung zwischen Kalender-ID und Kalendername müssen Sie zur Zeit noch von Hand in der Datei calendar.settings.inc.php vornehmen.
...
// Title and Data Source
$calendars[0]->title = "Jax Calendar";
$calendars[0]->data_source = "csvfile";
$calendars[1]->title = "Ein zweiter Kalendar";
$calendars[1]->data_source = "mysql";
$calendars[0]->css = "styles/default.css";
$calendars[1]->css = "styles/ice.css";
$calendars[0]->calendar_file = "mycalendar";
$calendars[0]->event_file = "myevents";
$calendars[1]->calendar_file = "mycalendar";
$calendars[1]->event_file = "myevents";
...
Im Beispiel wird ein weiterer Kalendar mit dem selben Skript benutzt:
Ein Kalendar auf Basis der MySQL-Tabelle secondbook ist über die URL
http://../jax_calendar.php?calendar_id=1
erreichbar Äquivalent wird mit der URL
http://../jax_calendar.php?calendar_id=2
eine dritte Kalendardatei zur Speicherung verwendet, usw...
Sie können für jeden einzelnen Kalendar die Datenquelle (mysql/csvfile) frei wählen!
Wenn Ihr Webserver unter Unix arbeitet (Apache) müssen Sie den Unix-Befehl chmod zum Ändern der Dateirechte verwenden. (Wie Sie das bequem von Ihrem FTP-Client aus machen können, ist weiter unten beschrieben)
Die Syntax von chmod lautet:
chmod rwxrwxrwx
filename
r = lesen
w = schreiben
x = ausführen
Der Befehl erwartet drei 3er-Tupel welche die Zugriffsrechte für die "Gruppen"
angeben: [rwx][rwx][rwx]
Die Gruppen von rechts nach links:
Alle Benutzer
Alle Benutzer der gleichen Gruppe wie Besitzer
Nur der Besitzer
Die Tupel kann man sich auch in Binärdarstellung vorstellen:
chmod [rwx][rwx][rwx]
wäre äquivalent mit
chmod [111][111][111]
bzw. in dezimalschreibweise mit
chmod [7][7][7]
und da haben wir auch schon den fertigen chmod
Befehl um "allen" Zugriff auf die Dateien zu geben:
chmod 777 calendar.csv
(Die benötigten Dateirechte hängen von der Webserver-Konfiguration
ab. Wenn Sie misstrauisch sind, und dem Skript nicht die vollen Rechte (777)
geben wollen, erhöhen Sie die Rechte langsam, bis das Skript fehlerfrei
läuft!)
Die meisten FTP-Clients, wie z.B. WS-FTP
unterstüzen den chmod-Befehl bequem
von der Oberfläche aus. Man muss bei WS-FTP z.B. nur mit der rechten
Maustaste auf eine Datei im Ftp-Fenster klicken, dann auf chmod, dann die zu
setzenden Attribute usw...
Zur Zeit teste ich das Skript auf einer meiner Websiten mit ca. 200 Terminen im CSV-Format. Theoretisch müsste das Skript in Abhängigkeit von der verfügbaren Rechenzeit/-leistung ihres Webservers und der Datenquelle problemlos mehrere 1000 Einträge verwalten können. Für größere Kalendare bietet sich die Verwendung von MySQL als Datenquelle an...
Nutzen Sie das Forum für Jax Calendar:
unter http://boards.jtr.de habe ich ein kleines deutschsprachiges phpBB-Forum
aufgesetzt, in dem Sie Fragen oder Erkenntnisse mit andern Anwendern teilen
können.
Jax Calendar speichert nur einen Eintrag, bzw. zeigt immer den gleichen
Eintrag an!
Sie haben wahrscheinlich nicht die Beispieltabellen (im admin-Verzeichnis) verwendet,
und vergessen das Feld "id"
(Pflichtfeld!!) anzulegen
Bugfix: verschobener Wochentag im Kalendermodul
Sollten Sie Fehler finden, oder haben Sie Fragen oder Verbesserungsvorschläge, zögern Sie bitte nicht, und wenden Sie sich einfach direkt an mich!
RTFM !!! :
Leider habe ich keine Zeit kostenlosen Installationssupport für dieses
Programm zu leisten! Wenn Sie ein Problem haben dessen Lösung durch diese
Dokumentation beschrieben oder ausreichend angedeutet wird, sehe ich mich aus
Zeitgründen gezwungen, Ihre e-mail-Anfrage komplett zu ignorieren...
Bitte sparen Sie mir und sich die Zeit und lesen Sie sich vor dem Kontakt unbedingt die Dokumentation vollständig durch! Hinweise auf fehlende Erklärungen in dieser Dokumentation nehme ich jedoch gern entgegen...
Berlin, 09.04.2004 - Jack (tR)