Active Calendar Class Εγχειρίδιο χρήσης v1.0.6
Το πρόγραμμα αυτό είναι ελεύθερο. Μπορείτε να το μεταδώσετε ή να το αλλάξετε σύμφωνα με τις προυποθέσεις της GNU Lesser General Public License, όπως έχει δημοσιευθεί από την Free Software Foundation. |
Ο δημιουργός αυτού του προγράμματος θα ήταν ευγνώμων για οποιαδήποτε πρόταση ή κριτκή σας. Παρακαλώ επισκευτείτε το δικτυακό τόπο του Active Calendar, σε περίπτωση που θέλετε να επικοινωνήσετε μαζί του. |
Περιεχόμενα
Τι είναι η class 'Active Calendar'
Η 'Active Calendar' είναι μια class της γλώσσας προγραμματισμού PHP για τον δυναμικό υπολογισμό και την εμφάνιση ημερολογίων (μηνιαία ή ετήσια προβολή) σε HTML (XHTML-Valid).
Η class Active Calendar βασίζεται στις εσωτερικές λειτουργίες χρόνου της PHP (προεπιλογή) και υποστηρίζει επίσης την ADOdb Date Library.
Χρήση της class 'Active Calendar'
$cal = new activeCalendar([$year,$month,$day,$gmt_zone]); |
Η βασική λειτουργία της class. Οι παραμέτροι $year, $month και $day είναι προαιρετικές. Σε περίπτωση που δεν οριστούν αύτές οι παραμέτροι, το πρόγραμμα υπολογίζει αυτόματα τις τρέχουσες τιμές του έτους, του μήνα και της ημέρας και δημιουργεί στη συνέχεια το ανάλογο ημερολόγιο. Η παράμετρος $year πρέπει να δοθεί σε τετραψήφια μορφή π.χ. "2005" ή "1996", η παράμετρος $month πρέπει να είναι μονοψήφια, π.χ. "1" για τον Ιανουάριο ή "10" για τον Οκτώβριο, και η παράμετρος $day πρέπει να είναι μονοψήφια ή διψήφια ανάλογα, π.χ. "4" για την τέταρτη ημέρα του μήνα ή "24" για την εικοστή τέταρτη ημέρα του μήνα. Για την ημερομηνία π.χ. 7 Ιανουαρίου 2005 πρέπει λοιπόν να οριστεί $cal = new activeCalendar("2005","1","7"). Η παράμετρος $gmt_zone είναι επίσης προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί η ζώνη GMT (Greenwich Mean Time) για τον υπολογισμό της τρέχουσας ημερομηνίας (π.χ. 9 για Οζάκα Ιαπωνία, 2 για Αθήνα, -5 για Νέα Υόρκη Η.Π.Α). Αν δεν θέσετε την $gmt_zone, θα χρησιμοποιηθεί η τοπική ώρα του διακομιστή (server). |
$cal->enableMonthNav([$link,$arrowBack,$arrowForw]); |
Καλέστε αυτή τη λειτουργία για την ενεργοποίηση των links πλοήγησης της μηνιαίας προβολής. Η παράμετρος $link είναι προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί το URL των links του ημερολογίου (π.χ. "mycalendar.php" ή "mycalendar.php?mode=4&item=test", αν χρειάζεστε πιο περίπλοκα urls). Μπορείτε να τροποποιήσετε την εσωτερική λειτουργία mkUrl(), αν θέλετε να αλλάξετε την γενική δομή των παραγόμενων links. Οι παραμέτροι $arrowBack και $arrowForw είναι επίσης προαιρετικές. Μέσω αυτών τών παραμέτρων μπορεί να οριστούν διαφορετικά σύμβολα πλοήγησης από αυτά που έχουν καθοριστεί στις αρχικές ρυθμίσεις. |
$cal->enableYearNav([$link,$arrowBack,$arrowForw]); |
Καλέστε αυτή τη λειτουργία για την ενεργοποίηση των links πλοήγησης της ετήσιας προβολής. Η παράμετρος $link είναι προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί το URL των links του ημερολογίου (π.χ. "mycalendar.php" ή "mycalendar.php?mode=4&item=test", αν χρειάζεστε πιο περίπλοκα urls). Μπορείτε να τροποποιήσετε την εσωτερική λειτουργία mkUrl(), αν θέλετε να αλλάξετε την γενική δομή των παραγόμενων links. Οι παραμέτροι $arrowBack και $arrowForw είναι επίσης προαιρετικές. Μέσω αυτών τών παραμέτρων μπορεί να οριστούν διαφορετικά σύμβολα πλοήγησης από αυτά που έχουν καθοριστεί στις αρχικές ρυθμίσεις. |
$cal->enableDatePicker([$startYear,$endYear,$link,$button]); |
Καλέστε αυτή τη λειτουργία για την ενεργοποίηση του 'επιλογέα ημερομηνίας'. Οι παραμέτροι $startYear και $endYear καθορίζουν το αρχικό και τελικό έτος, που μπορούν να επιλεγούν (π.χ. $startYear=2000, $endYear=2010). Το εύρος των ετών, που μπορούν να επιλεγούν, περιορίζεται απο τις εσωτερικές παραμέτρους της class $startYear και $endYear. Παρακαλώ τροποποιήστε τις, αν είναι απαραίτητο. Η παράμετρος $link είναι προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί το URL των links του ημερολογίου (π.χ. "mycalendar.php" ή "mycalendar.php?mode=4&item=test", αν χρειάζεστε πιο περίπλοκα urls). Μπορείτε να τροποποιήσετε την εσωτερική λειτουργία mkUrl(), αν θέλετε να αλλάξετε την γενική δομή των παραγόμενων links. Η παράμετρος $button είναι επίσης προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί διαφορετική τιμή (value) για το κουμπί του 'επιλογέα ημερομηνίας' από αυτή που έχει καθοριστεί στις αρχικές ρυθμίσεις. |
$cal->enableDayLinks([$link,$javaScript]); |
Καλέστε αυτή τη λειτουργία για την ενεργοποίηση των links ημέρας. Η παράμετρος $link είναι προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί το URL των links του ημερολογίου (π.χ. "mycalendar.php" ή "mycalendar.php?mode=4&item=test", αν χρειάζεστε πιο περίπλοκα urls). Μπορείτε να τροποποιήσετε την εσωτερική λειτουργία mkUrl(), αν θέλετε να αλλάξετε την γενική δομή των παραγόμενων links. Η παράμετρος $javaScript είναι επίσης προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί μια λειτουργία JavaScript αντί κάποιο URL για τα links του ημερολογίου. Αν λοιπόν ορίσετε $cal->enableDayLinks(false,"selectDate"), το παρακάτω link θα δημιουργηθεί π.χ. στις 27 Μαίου 2007: ..href="javascript:selectDate(2007,5,27)".. Το περιεχόμενο της λειτουργίας JavaScript 'selectDate' δεν θα δημιουργηθεί αυτόματα από την class. Παρακαλώ αναπτύξτε το με βάση τις ανάγκες σας. |
$cal->setMonthNames($monthNamesArray); |
Καλέστε αυτή τη λειτουργία, αν θέλετε να ορίσετε διαφορετικά ονόματα για τους μήνες του ημερολογίου από αύτα που έχουν καθοριστεί στις αρχικές ρυθμίσεις. Η παράμετρος $monthNamesArray πρέπει να είναι ένα array με 12 ονόματα μηνών, ξεκινώντας με τον Ιανουάριο. |
$cal->setDayNames($dayNamesArray); |
Καλέστε αυτή τη λειτουργία, αν θέλετε να ορίσετε διαφορετικά ονόματα για τους ημέρες της εβδομάδας του ημερολογίου από αύτα που έχουν καθοριστεί στις αρχικές ρυθμίσεις. Η παράμετρος $dayNamesArray πρέπει να είναι ένα array με 7 ονόματα ημερών, ξεκινώντας με την Κυριακή. |
$cal->setEvent($year,$month,$day,[$id,$eventUrl]); |
Καλέστε αυτή τη λειτουργία, αν θέλετε να δημιουργηθεί μια HTML td class=$id την ημερομηνία, που καθορίζεται απο τις παραμέτρους $year, $month και $day. Με την βοήθεια των CSS, μπορείτε λοιπον να ρυθμίσετε κάθε 'event', έτσι ώστε να παρουσιάζεται π.χ. με διαφορετικό χρώμα φόντου. Η παράμετρος $id είναι προαιρετική. Αν δεν θέσετε κάποιο $id, μια προκαθορισμένη HTML class='event' θα δημιουργηθεί. Η παράμετρος $eventUrl είναι επίσης προαιρετική. Αν θέσετε κάποιο $eventUrl, ένα link (..href='$eventUrl'..) θα δημιουργηθεί την συγκεκριμένη ημέρα 'event', ακόμα και αν δεν έχετε καλέσει την λειτουργία $cal->enableDayLinks($link). |
$cal->setEventContent($year,$month,$day,$content,[$contentUrl,$id]); |
Καλέστε αυτή τη λειτουργία, αν θέλετε να δημιουργηθεί ένα νέο HTML table με περιεχόμενο $content την ημερομηνία, που καθορίζεται απο τις παραμέτρους $year, $month και $day. Η παράμετρος $content μπορεί να είναι ένα string ή ένα array. Αν είναι string, το HTML table, που θα δημιουργηθεί, θα περιέχει μία σειρά με περιεχόμενο την τιμή της $content. Αν είναι array, το HTML table, που θα δημιουργηθεί, θα περιέχει τόσες σειρές όσο και το μήκος του array και σε κάθε σειρά θα εμφανιστεί μία τιμή του array. Η παράμετρος $contentUrl είναι προαιρετική: Αν θέσετε κάποιο $contentUrl, ένα link (..href='$contentUrl'..) θα δημιουργηθεί στο 'event content' της συγκεκριμένης ημέρας, ακόμα και αν δεν έχετε καλέσει την λειτουργία $cal->enableDayLinks($link). Η παράμετρος $id είναι επίσης προαιρετική και καθορίζει το όνομα της HTML table class για το συγκεκριμένο περιεχόμενο (προκαθορισμένο: 'eventcontent') |
$cal->showMonth([$showNoMonthDays]); |
Αυτή η λειτουργία δημιουργεί τον απαιτούμενο HTML κώδικα για την μηνιαία προβολή του ημερολογίου. Το ημερολόγιο θα προβληθεί μέσω της εντολής "print $cal->showMonth()". Αυτή η λειτουργία καλεί κάποιες εσωτερικές λειτουργίες της class, οι οποίες δημιουργούν κάθε tr tag του πίνακα του ημερολογίου. Αν θέλετε λοιπόν να αλλαξετε την δομή του ημερολογίου, μπορείτε να αλλάξετε απλά την σειρά, με την οποία καλούνται οι εσωτερικές αυτές λειτουργίες (η mkMonthHead() πρέπει να παραμείνει πρώτη και η mkMonthFoot()πρέπει να παραμείνει τελευταία). Η παράμετρος $showNoMonthDays είναι προαιρετική: αν παρει την τιμή true, θα προβληθούν στο ημερολόγιο και οι μέρες, που δεν ανήκουν στον τρέχων μήνα (προκαθορισμένο: false). Σημειώστε οτι αυτές οι μέρες δεν θα περιέχουν events ή event contents! |
$cal->showYear([$columns]); |
Αυτή η λειτουργία δημιουργεί τον απαιτούμενο HTML κώδικα για την ετήσια προβολή του ημερολογίου. Το ημερολόγιο θα προβληθεί μέσω της εντολής "print $cal->showYear()". Αυτή η λειτουργία καλεί κάποιες εσωτερικές λειτουργίες της class, οι οποίες δημιουργούν κάθε tr tag του πίνακα του ημερολογίου. Αν θέλετε λοιπόν να αλλαξετε την δομή του ημερολογίου, μπορείτε να αλλάξετε απλά την σειρά, με την οποία καλούνται οι εσωτερικές αυτές λειτουργίες (η mkYearHead() πρέπει να παραμείνει πρώτη και η mkYearFoot()πρέπει να παραμείνει τελευταία). Η παράμετρος $columns είναι προαιρετική. Μέσω αυτής της παραμέτρου μπορεί να οριστεί διαφορετικός αριθμός μηνών σε κάθε γραμμή του ημερολογίου κατα την προβολή του έτους από αυτόν που έχει καθοριστεί στις αρχικές ρυθμίσεις. |
<?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(); ?> |
Η εμφάνιση του ημερολογίου μπορεί να ρυθμιστεί εύκολα μέσω CSS. Η class 'Aktive Calendar' παράγει στοιχεία HTML (tags) με διαφορετικές classes, με την βοήθεια των οποίων καθορίζεται η προβολή του ημερολογίου στον browser. Παρακαλώ ελέγξτε τα παρακάτω CSS (με βάση τις προκαθορισμένες τιμές): |
.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;} |
Στην ακόλουθη λίστα θα βρείτε τα ID's, που παράγονται από την class 'Active Calendar', τα αντίστοιχα στοιχεία HTML καθώς και τις μεταβλητές, που τα παράγουν. Για την αποφυγή τυχών συγκρούσεων των παρακάτω ονομάτων με ήδη υπάρχοντα ονόματα στα CSS σας, έχετε την δυνατότητα να αλλάξετε τις προεπιλογές της class 'Active Calendar'. | ||
Μεταβλητή | HTML Class | Στοιχείο HTML |
$cssYearTable | year | table tag: προβολή έτους |
$cssYearTitle | yearname | td tag: τίτλος της προβολής έτους |
$cssYearNav | yearnavigation | td tag: πλοήγηση της προβολής έτους |
$cssMonthTable | month | table tag: προβολή μήνα |
$cssMonthTitle | monthname | td tag: τίτλος της προβολής μήνα |
$cssMonthNav | monthnavigation | td tag: πλοήγηση της προβολής μήνα |
$cssWeekDay | dayname | tr tag: ημέρες εβδομάδας |
$cssPicker | datepicker | td tag: 'επιλογέας ημερομηνίας' |
$cssPickerForm | datepickerform | form tag: φόρμα 'επιλογέα ημερομηνίας' |
$cssPickerMonth | monthpicker | select tag: 'επιλογέας μήνα' |
$cssPickerYear | yearpicker | select tag: 'επιλογέας έτους' |
$cssPickerButton | pickerbutton | iinput (submit) tag: κουμπί 'επιλογέα ημερομηνίας' |
$cssMonthDay | monthday | td tag: ημέρες του τρέχοντος μήνα |
$cssNoMonthDay | nomonthday | td tag: ημέρες που δεν αντιστοιχούν στον τρέχων μήνα |
$cssToday | today | td tag: η σημερινή ημέρα |
$cssSelecDay | selectedday | td tag: η επιλεγμένη ημέρα |
$cssSunday | sunday | td tag: όλες οι Κυριακές |
$cssSaturday | saturday | td tag: όλα τα Σαββατα |
$cssEvent | event | td tag: 'Event' που καθορίζεται από την setEvent(). Διάφορες classes μπορούν να δημιουργηθούν (π.χ 'meeting') |
$cssPrefixSelecEvent | selected | td tag: 'Event' που καθορίζεται από την setEvent(), όταν έχει επιλεγεί. Η τιμή αυτή θα προστεθεί στο όνομα της event class (π.χ 'selectedevent'). Διάφορες classes μπορούν να δημιουργηθούν (π.χ 'selectedmeeting') |
$cssPrefixTodayEvent | today | td tag: 'Event' που καθορίζεται από την setEvent(), όταν είναι η σημερινή ημέρα. Η τιμή αυτή θα προστεθεί στο όνομα της event class (π.χ 'todayevent'). Διάφορες classes μπορούν να δημιουργηθούν (π.χ 'todaymeeting') |
$cssEventContent | eventcontent | table tag : περιεχόμενο ενός 'event' που καθορίζεται από την setEventContent(). Διάφορες classes μπορούν να δημιουργηθούν (π.χ 'meetingcontent') |
1. Επεξεργαστείτε το αρχείο activecalendar.php της class 'Active Calendar', εάν θέλετε να αλλάξετε τις αρχικές ρυθμίσεις.
2. Αντιγράψτε το αρχείο activecalendar.php στον Webserver σας και ενσωματώστε το στις σελίδες σας.
(c) 2005 - 2006 Γιώργος Τσιλεδάκης, Κρήτη Ελλάδα |