Active Calendar Class v1.0.6 Dokumentation
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU Lesser General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren. |
Der Author wäre für Ihre Anregungen oder Empfehlungen sehr dankbar. Bitte besuchen Sie die Active Calendar Website, falls Sie den Author kontaktieren möchten. |
Inhalt
Über die 'Active Calendar' Klasse
'Active Calendar' ist eine PHP Klasse für die dynamische Berechnung und Anzeige von Kalendern (Monats- und Jahresansicht) in HTML (XHTML-Valid).
Active Calendar basiert auf den nativen PHP Datum Funktionen (Voreinstellung) und unterstützt bei Bedarf auch die ADOdb Date Library.
Anwendung der 'Active Calendar' Klasse
$cal = new activeCalendar([$year,$month,$day,$gmt_zone]); |
Erzeugen Sie zuerst einer Instanz der Klasse. Die Parameter $year, $month and $day sind optional. Falls diese Parameter nicht gesetzt werden, das aktuelle Jahr, der aktuelle Monat und der aktuelle Tag werden vom Programm errechnet und bearbeitet. Der Parameter $year muß ein vierstelliges Format aufweisen z.B. "2005" oder "1996", der Parameter $month muß einstellig sein, z.B. "1" für Januar oder "10" für Oktober, und der Parameter $day muß zweistellig sein, z.B. "4" für den 4. des Monats oder "24" für den 24. des Monats. Also, für das Datum 7. Januar 2005 setzen Sie $cal = new activeCalendar("2005","1","7"). Der Parameter $gmt_zone ist ebenfalls optional. Mittels dieses Parameters können Sie eine GMT (Greenwich Mean Time) Zone für die Berechnung des aktuellen Datums bestimmen (z.B 9 für Osaka Japan, 2 für Athen Griechenland, -5 für New York USA). Falls $gmt_zone nicht gesetzt ist, wird die lokale Zeit des Servers verwendet. |
$cal->enableMonthNav([$link,$arrowBack,$arrowForw]); |
Rufen Sie diese Methode auf, wenn die Monatsansicht des erzeugten Kalenders Navigationslinks enthalten soll. Der Parameter $link ist optional. Mittels diesen Parameters können Sie die URL für die links des Kalenders setzen (z.B. "mycalendar.php" oder "mycalendar.php?mode=4&item=test", falls Sie komplexere Urls benötigen). Sie sollten die private Methode mkUrl() modifizieren, falls Sie die allgemeine Struktur der generierten links ändern möchten. Die Parameter $arrowBack und $arrowForw sind ebenfalls optional: Mittels dieser Parameter können Sie andere als die voreingestellten Navigationspfeile setzen (z.B ein image link). |
$cal->enableYearNav([$link,$arrowBack,$arrowForw]); |
Rufen Sie diese Methode auf, wenn die Jahresansicht des erzeugten Kalenders Navigationslinks enthalten soll. Der Parameter $link ist optional. Mittels diesen Parameters können Sie die URL für die links des Kalenders setzen (z.B. "mycalendar.php" oder "mycalendar.php?mode=4&item=test", falls Sie komplexere Urls benötigen). Sie sollten die private Methode mkUrl() modifizieren, falls Sie die allgemeine Struktur der generierten links ändern möchten. Die Parameter $arrowBack und $arrowForw sind ebenfalls optional: Mittels dieser Parameter können Sie andere als die voreingestellten Navigationspfeile setzen (z.B ein image link). |
$cal->enableDatePicker([$startYear,$endYear,$link,$button]); |
Rufen Sie diese Methode auf, wenn die Monatsansicht des erzeugten Kalenders einen 'Date Picker' enthalten soll. Die Parameter $startYear and $endYear bestimmen welche Jahre ausgewählt werden können (z.B. $startYear=2000, $endYear=2010). Die Jahresauswahl wird jedoch von den privaten Varablen der Klasse $startYear und $endYear begrenzt. Bitte modifizieren Sie die voreingestellten Werte, falls nötig. Der Parameter $link ist optional. Mittels diesen Parameters können Sie die URL für die links des Kalenders setzen (z.B. "mycalendar.php" oder "mycalendar.php?mode=4&item=test", falls Sie komplexere Urls benötigen). Sie sollten die private Methode mkUrl() modifizieren, falls Sie die allgemeine Struktur der generierten links ändern möchten. Der Parameter $button ist ebenfalls optional. Mittels diesen Parameters können Sie einen anderen als den voreingestellten Wert (value) für das 'Date Picker button' setzen. |
$cal->enableDayLinks([$link,$javaScript]); |
Rufen Sie diese Methode auf, wenn der erzeugte Kalender Tageslinks enthalten soll. Der Parameter $link ist optional. Mittels diesen Parameters können Sie die URL für die links des Kalenders setzen (z.B. "mycalendar.php" oder "mycalendar.php?mode=4&item=test", falls Sie komplexere Urls benötigen). Sie sollten die private Methode mkUrl() modifizieren, falls Sie die allgemeine Struktur der generierten links ändern möchten. Der Parameter $javaScript ist ebenfalls optional. Mittels diesen Parameters können Sie eine JavaScript Funktion statt einer URL für die links des Kalenders setzen. Wenn Sie also $cal->enableDayLinks(false,"selectDate") setzen, folgender link wird z.B. am 27 Mai 2007 generiert: ..href="javascript:selectDate(2007,5,27)".. Der Inhalt der Javascript Funktion 'selectDate' wird nicht von der Klasse generiert. Bitte entwickeln Sie ihn je nach Bedarf. |
$cal->setMonthNames($monthNamesArray); |
Rufen Sie diese Methode auf, falls die Klasse andere als die voreingestellten Monatsnamen erzeugen soll. Der Parameter $monthNamesArray muss ein Array mit 12 Monatsnamen sein und mit Januar beginnen. |
$cal->setDayNames($dayNamesArray); |
Rufen Sie diese Methode auf, falls die Klasse andere als die voreingestellten Wochentagsnamen erzeugen soll. Der Parameter $dayNamesArray muss ein Array mit 7 Wochentagsnamen sein und mit Sonntag beginnen. |
$cal->setEvent($year,$month,$day,[$id,$eventUrl]); |
Rufen Sie diese Methode auf, wenn der erzeugte Kalender eine HTML td class=$id am Datum $day/$month/$year enthalten soll. Sie können dann jedes 'event' in Ihrem CSS so konfigurieren, dass es z.B eine andere 'background' Farbe hat. Der Parameter $id ist optional. Falls Sie kein $id setzen, eine voreingestellte HTML class='event' wird erzeugt. Der Parameter $eventUrl ist ebenfalls optional: Falls er gesetzt wird, ein link (..href='$eventUrl'..) wird am 'event' Tag generiert, selbst wenn Sie die Methode $cal->enableDayLinks($link) nicht aufgerufen haben. |
$cal->setEventContent($year,$month,$day,$content,[$contentUrl,$id]); |
Rufen Sie diese Methode auf, wenn der erzeugte Kalender ein neues HTML table mit dem Inhalt $content am Datum $day/$month/$year enthalten soll. Der Parameter $content kann entweder ein String oder ein Array sein. Falls $content ein String ist, generiert die Klasse ein HTML table mit einer Reihe, die den String darstellt. Ist es ein Array, generiert die Klasse ein HTML table mit so vielen Reihen, wie die Länge des Arrays, und jede Reihe enthält einen Array Wert. Der Parameter $contentUrl ist optional: Falls er gesetzt wird, ein link (..href='$contentUrl'..) wird im 'event' Inhalt generiert, selbst wenn Sie die Methode $cal->enableDayLinks($link) nicht aufgerufen haben. Der Parameter $id ist ebenfalls optional und setzt den Namen der generierten HTML Klasse des jeweiligen Inhaltes (voreingestellt: 'eventcontent'). |
$cal->showMonth([$showNoMonthDays]); |
Diese Methode erzeugt den HTML Code für die Monatsansicht des Kalenders. Der Kalender wird durch "print $cal->showMonth()" angezeigt. Diese Methode ruft einige private Funktionen der Klasse auf, die jeden tr tag des Kalenders generieren. Falls Sie also die Struktur des Kalenders modifizieren möchten, können Sie einfach die Reihenfolge ändern, in der diese private Funktionen aufgerufen werden (mkMonthHead() sollte allerdings immer als Erstes und mkMonthFoot() immer als Letztes aufgerufen werden). Der Parameter $showNoMonthDays ist optional. Falls dieser Parameter auf true gesetzt ist, enthält der generierte Kalender auch die Tage, die nicht zum aktuellen Monat gehören (voreingestellt: false). Bitte beachten Sie, dass diese Tage keine 'events' oder 'event contents' enthalten! |
$cal->showYear([$columns]); |
Diese Methode erzeugt den HTML Code für die Jahresansicht des Kalenders. Der Kalender wird durch "print $cal->showYear()" angezeigt. Diese Methode ruft einige private Funktionen der Klasse auf, die jeden tr tag des Kalenders generieren. Falls Sie also die Struktur des Kalenders modifizieren möchten, können Sie einfach die Reihenfolge ändern, in der diese private Funktionen aufgerufen werden (mkYearHead() sollte allerdings immer als Erstes und mkYearFoot() immer als Letztes aufgerufen werden). Der Parameter $columns ist optional. Mittels diesen Parameters können Sie die Anzahl der Monaten in jeder Reihe der Jahresansicht setzen (voreingestellt: 4). |
<?php require_once("activecalendar.php"); $cal = new activeCalendar(); echo $cal->showMonth(); ?> |
<?php require_once("activecalendar.php"); $myurl=$_SERVER['PHP_SELF']; // the links url is this page $yearID=false; // init false to display current year $monthID=false; // init false to display current month $dayID=false; // init false to display current day extract($_GET); // get the new values (if any) of $yearID,$monthID,$dayID $cal = new activeCalendar($yearID,$monthID,$dayID); $cal->enableMonthNav($myurl); echo $cal->showMonth(); ?> |
<?php require_once("activecalendar.php"); $myurl=$_SERVER['PHP_SELF']; // the links url is this page $yearID=false; // init false to display current year $monthID=false; // init false to display current month $dayID=false; // init false to display current day extract($_GET); // get the new values (if any) of $yearID,$monthID,$dayID $cal = new activeCalendar($yearID,$monthID,$dayID); $cal->enableDatePicker(2000,2010,$myurl); echo $cal->showMonth(); ?> |
<?php require_once("activecalendar.php"); $myurl=$_SERVER['PHP_SELF']; // the links url is this page $cal = new activeCalendar("2007","11"); $cal->enableDayLinks($myurl); echo $cal->showMonth(); ?> |
<?php require_once("activecalendar.php"); $cal = new activeCalendar("2007","11"); $cal->setEvent("2007","11","17","meeting"); //it will create a class="meeting" $cal->setEvent("2007","11","7","birthday"); //it will create a class="birthday" //The following will create a class="myevent" and an <a href="myevent.html"> $cal->setEvent("2007","11","20","myevent","myevent.html"); echo $cal->showMonth(); ?> |
<?php require_once("activecalendar.php"); $cal = new activeCalendar(); echo $cal->showYear(2); // 2 months in each row ?> |
<?php require_once("activecalendar.php"); $myurl=$_SERVER['PHP_SELF']; // the links url is this page $yearID=false; // init false to display current year $monthID=false; // init false to display current month $dayID=false; // init false to display current day extract($_GET); // get the new values (if any) of $yearID,$monthID,$dayID $cal = new activeCalendar($yearID,$monthID,$dayID); $cal->enableYearNav($myurl); echo $cal->showYear(); ?> |
<?php require_once("activecalendar.php"); $myurl=$_SERVER['PHP_SELF']; // the links url is this page $cal = new activeCalendar("2007"); $cal->enableDayLinks($myurl); echo $cal->showYear(); ?> |
<?php require_once("activecalendar.php"); $cal = new activeCalendar("2007"); $cal->setEvent("2007","1","24","meeting"); $cal->setEvent("2007","5","12","birthday"); $cal->setEvent("2007","6","24","event"); $cal->setEvent("2007","6","25"); echo $cal->showYear(); ?> |
<?php require_once("activecalendar.php"); $cal = new activeCalendar("2007"); $cal->setEventContent("2007","1","24","meeting"); $cal->setEventContent("2007","5","12","birthday"); $cal->setEventContent("2007","6","24","Google","http://www.google.com"); $multipleLinesEvent=array("Title: News","Time: 16.00","Status: ok"); $cal->setEventContent("2007","6","25",$multipleLinesEvent); echo $cal->showYear(); ?> |
Die äußerliche Erscheinung der produzierten Kalender kann durch CSS beeinflusst werden. Die 'Aktive Calendar' Klasse generiert HTML Tags mit unterschiedlichen Klassen, die dazu benutzt werden können, die Kalendererscheinung im Browser zu steuern. Bitte überprüfen Sie foldende CSS (basiert auf den voreingestellten Werten): |
.year {border-style: outset; border-width: 1px; background-color: #cbeaca; text-align: center;} .month {border-style: none; background-color: #cbeaca; text-align: center;} .yearname {text-align: center; font-size: 20px; font-weight: bold;} .monthname {text-align: center; font-size: 13px; height: 30px; background-color: #e9e9e9;} .yearnavigation {background-color: #dddddd;} .monthnavigation {background-color: #dddddd;} .datepicker {background-color: #ffffff;} .datepickerform {margin: 0px;} .monthpicker {background-color: #eeeeee;} .yearpicker {background-color: #eeeeee;} .pickerbutton {background-color: #eeeeee; border-style: none;} .dayname td {text-align: center; font-size: 13px; background-color: #dddddd;} .nomonthday {background-color: #cbeaca; height:25px; width:25px;} .monthday {text-align: center; background-color: #e9e9e9; height:25px; width:25px;} .today {text-align: center; background-color: #ffff99; height:25px; width:25px;} .selectedday {text-align: center; background-color: #66ff66; height:25px; width:25px;} .sunday {text-align: center; font-weight: bold; color: red; height:20px; width:20px;} .sunday a {color: red;} .saturday {text-align: center; font-weight: bold; color: red; height:20px; width:20px;} .saturday a {color: red;} .event {text-align: center; color: red; background-color: #ffff99; height:20px; width:20px;} .event a {background-color: #ffff99; color: red;} .selectedevent {text-align: center; color: red; background-color: #ffff99; height:20px; width:20px;} .selectedevent a {background-color: #ffff99; color: red;} .todayevent {text-align: center; color: red; background-color: #ffff99; height:20px; width:20px;} .todayevent a {background-color: #ffff99; color: red;} .eventcontent {font-size: 10px; border-style: outset; border-width: 1px;} |
Es folgt eine Liste mit den Klassen der von der 'Active Calendar' Klasse generierten HTML Tags, sowie Ihre Kongfigurationsvariablen. Um Konflikte mit bereits existierenden CSS Namen zu vermeiden, können Sie die generierten Namen in der Active Calendar Konfiguration verändern. | ||
Konfigurationsvariable | HTML Klasse | HTML TAG |
$cssYearTable | year | table tag: Jahresansicht |
$cssYearTitle | yearname | td tag: Titel der Jahresansicht |
$cssYearNav | yearnavigation | td tag: Navigation der Jahresansicht |
$cssMonthTable | month | table tag: Monatsansicht |
$cssMonthTitle | monthname | td tag: Titel der Monatsansicht |
$cssMonthNav | monthnavigation | td tag: Navigation der Monatsansicht |
$cssWeekDay | dayname | tr tag: Wochentage |
$cssPicker | datepicker | td tag: 'Date Picker' |
$cssPickerForm | datepickerform | form tag: 'Date Picker' Form |
$cssPickerMonth | monthpicker | select tag: Monatsauswahl |
$cssPickerYear | yearpicker | select tag: Jahresauswahl |
$cssPickerButton | pickerbutton | input (submit) tag: 'Date Picker button' |
$cssMonthDay | monthday | td tag: Tage, die zum aktuellen Monat gehören |
$cssNoMonthDay | nomonthday | td tag: Tage, die nicht zum aktuellen Monat gehören |
$cssToday | today | td tag: der heutige Tag |
$cssSelecDay | selectedday | td tag: der ausgewählte Tag |
$cssSunday | sunday | td tag: alle Sonntage |
$cssSaturday | saturday | td tag: alle Samstage |
$cssEvent | event | td tag: 'Event' Tag durch setEvent(). Verschiedene Klassen können generiert werden (z.B. 'meeting') |
$cssPrefixSelecEvent | selected | td tag: 'Event' Tag durch setEvent(), falls er ausgwählt wird. Das prefix wird vor dem 'event' Klassennamen hinzugefügt (z.B. 'selectedevent'). Verschiedene Klassen können generiert werden (z.B. 'selectedmeeting') |
$cssPrefixTodayEvent | today | td tag: 'Event' Tag durch setEvent(), falls er der heutige Tag ist. Das prefix wird vor dem 'event' Klassennamen hinzugefügt (z.B. 'todayevent'). Verschiedene Klassen können generiert werden (z.B. 'todaymeeting') |
$cssEventContent | eventcontent | table tag : 'Event' Inhalt durch setEventContent(). Verschiedene Klassen können generiert werden (z.B. 'meetingcontent') |
1. Bearbeiten Sie den Konfigurationsbereich der Klasse in der 'Active Calendar Class' Datei activecalendar.php, falls Sie die Voreinstellungen ändern möchten.
2. Kopieren Sie einfach die 'Active Calendar Class' Datei activecalendar.php auf Ihren Webserver und binden Sie sie in Ihren Scripten ein.
(c) 2005 - 2006 Giorgos Tsiledakis, Kreta Griechenland |