Διαδικτυακό Ημερολόγιο



Σχετικά έγγραφα
Καταστατικό του επιστημονικού σωματείου με την επωνυμία ΕΝΤΟΜΟΛΟΓΙΚΗ ΕΤΑΙΡΕΙΑ ΕΛΛΑΔΟΣ. Άρθρο 1 ο Ίδρυση Επωνυμία Έδρα

ΙΣΤΟΡΙΚΟ ΛΕΞΙΚΟ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΟΡΩΝ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ

Ξεκινώντας τον απολογισμό της χρήσης του 2014 θα εξετάσουμε ορισμένα θεμελιώδη μεγέθη των Οικονομικών Καταστάσεων στα οποία παρατηρούνται τα εξής:

FORUM ΣΥΝΕΡΓΑΣΙΑ ΑΡΙΣΤΕΡΩΝ ΑΡΧΙΤΕΚΤΟΝΩΝ

Σχεδίαση και Υλοποίηση μιας Διαδικτυακής Βάσης Δεδομένων για Δεδομένα Τουρισμού

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Ομήρου Ιλιάδα Ραψωδία Α και Λοιμός, Μῆνις. Διδακτικό σενάριο

Από τον νεοφιλελευθερισμό στον οικονομικό πόλεμο:

της, την προστασία της.

ΡΑΔΑΝΘΥΣ ΝΕΟΝΑΚΗΣ -ΕΜΜΑΝΟΥΗΛ Γ. ΔΡΑΚΑΚΗΣ

ΑΝΑΠΛΑΣΗ ΠΛΑΤΕΙΑΣ ΧΡΥΣΟΣΤΟΜΟΥ ΣΜΥΡΝΗΣ

Α Π Ο Σ Π Α Σ Μ Α. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΒΟΙΩΤΙΑΣ ΔΗΜΟΣ ΟΡΧΟΜΕΝΟΥ Αρ.Πρωτ.: 298/

ΟΔΗΓΟΣ ΜΕΛΕΤΗΣ ΕΝΝΟΙΩΝ επιμέλεια: Μαρία Κάππου ΕΝΝΟΙΕΣ Γ ΛΥΚΕΙΟΥ. Οδηγός μελέτης και επανάληψης. Επιμέλεια: Μαρία Κάππου [1]

«Μορφές Εξαρτημένης Εργασίας»

ΕΝΗΜΕΡΩΤΙΚΟΣ ΟΔΗΓΟΣ ΣΠΟΥΔΩΝ

ΠΗΓΗ: [1]

Η οικονομική κρίση και ύφεση ανασχεθούν δεν θα αποφύγει να μετεξελιχθεί οι προοπτικές της ευρω- ζώνης αναιμικές η Ευρώπη Κινητήρια δύναμη

ΜΑΝΟΛΗΣ ΚΑΛΟΜΟΙΡΗΣ, ΚΥΚΛΟΣ ΤΡΑΓΟΥΔΙΩΝ ΜΑΓΙΟΒΟΤΑΝΑ. Πτυχιακή εργασία της Άλμας Τότσκα 25/04

Εισήγηση για τον Προϋπολογισμό 2011 του Δήμου Κηφισιάς

74 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Θεσσαλονίκη, Δεκεμβρίου 2013

Project «Διατροφή μέσω των αιώνων»

H ΚΛΗΡΟΝΟΜΙΑ ΤΟΥ ΜΕΓΑΛΟΥ ΑΛΕΞΑΝΔΡΟΥ

ME TO ΒΛΕΜΜΑ ΣΤΡΑΜΜΕΝΟ ΣΤΟ ΜΕΛΛΟΝ. ΟΡΙΖΟΥΣΕΣ ΚΑΙ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΙ ΓΙΑ ΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΣΤΟΝ 21 ο ΑΙΩΝΑ

ΕΤΗΣΙΑ EKΘΕΣΗ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ 2014

ΥΠΟΜΝΗΜΑ ΘΕΣΕΙΣ ΤΗΣ ΟΒΕΣ ΓΙΑ ΤΟ ΣΧΕΔΙΟ ΤΟΥ ΝΕΟΥ ΝΟΜΟΥ ΓΙΑ ΤΑ ΕΥΡΩΠΑΙΚΑ ΣΥΜΒΟΥΛΙΑ ΕΡΓΑΖΟΜΕΝΩΝ

ΠΡΟΛΟΓΟΣ ΑΚΙΝΗΤΗ ΑΞΙΑ

ολική άρνηση στράτευσης

Το μέλλον των Κρητικών Οργανώσεων τον 21ο αιώνα

Θέσεις ΤΕΕ για τα Δημόσια Έργα και τις υποδομές τους

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΓΟΝΕΙΣ ΚΑΙ ΚΟΙΝΩΝΙΚΟΣΥΝΑΙΣΘΗΜΑΤΙΚΗ ΑΝΑΠΤΥΞΗ ΤΟΥ ΠΑΙΔΙΟΥ ΚΑΚΟΠΟΙΗΣΗ - ΑΙΤΙΑ - ΕΠΙΠΤΩΣΕΙΣ

ΑΙΤΗΣΗ ΓΙΑ ΜΕΤΑΘΕΣΗ ΕΚΠΑΙΔΕΥΤΙΚΩΝ Π.Ε. ΜΕ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΝΟΗΜΑΤΙΚΗ ΓΛΩΣΣΑ ΤΩΝ ΚΩΦΩΝ ΚΑΙ ΣΤΗ ΓΡΑΦΗ BRAILLE ΤΩΝ ΤΥΦΛΩΝ

Εκσυγχρονισμός αγροτικών εκμεταλλεύσεων με χρήση νέων τεχνολογιών

591 Κ.Ι\ ΘΕΜΑ: ΚΑΩΣΤΟΥΦΑΝΤΟΥΡΓΙΑ & ΠΕΡΙΒΑλλΟΝ ΕΙΣΗΓΗΤΗΣ: ΤΜΗΜΑ ΚΛΩΣΤΟΥΦΑΝΤΟΥΡΓΙΑΣ. Τ.Ε.Ι Πειραιά για την απόκτηση του πτυχίου.

ΑΝΑΛΥΤΙΚΟ ΤΕΥΧΟΣ ΠΡΟΚΗΡΥΞΗΣ ΔΗΜΟΣΙΟΥ ΑΝΟΙΚΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ

Ο ρόλος και η θέση της γυναίκας μεταβάλλονται στο χρόνο!!!

ΓΙΑ ΤΑ ΕΠΑΓΓΕΛΜΑΤΙΚΑ ΔΙΚΑΙΩΜΑΤΑ ΤΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΟΝ ΠΟΛΥΝΟΜΟ ΤΟΥ ΑΠΡΙΛΗ

Απαντήσεις Λογοτεχνίας

ΘΕΜΑ: Ανακοίνωση-Πρόσκληση για εκδήλωση ενδιαφέροντος σχετικά με μετάταξη υπαλλήλων στο Εθνικό Αστεροσκοπείο Αθηνών (Ν.Π.Δ.Δ.)

ΔΗΛΩΣΗ ΤΗΣ ΟΛΓΑΣ ΜΟΥΣΙΟΥ-ΜΥΛΩΝΑ ΓΙΑ ΤΗ ΣΥΝΕΝΤΕΥΞΗ ΤΟΥ ΠΡΟΕΔΡΟΥ ΤΗΣ ΜΕΛΙΤΗΣ κ. Π. ΑΝΑΣΤΑΣΙΑΔΗ

72(Ι)/2014 Ο ΠΕΡΙ ΙΔΡΥΣΕΩΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑΣ ΣΥΝΔΕΣΜΩΝ ΠΡΟΣΤΑΣΙΑΣ ΦΥΤΩΝ ΝΟΜΟΣ ΤΟΥ 2014

καταλογίζονται η μείωση των επαναλαμβανόμενων επισκέψεων, ο κίνδυνος μείωσης της προσέλευσης του κοινού, η μείωση των εσόδων καθώς αποφεύγουν οι

ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΜΟΥΣΕΙΟΥ ΣΧΟΛΙΚΗΣ ΖΩΗΣ ΚΑΙ ΕΚΠΑΙΔΕΥΣΗΣ ΠΡΟΓΡΑΜΜΑΤΑ ΓΙΑ ΠΑΙΔΙΑ ΚΑΙ ΓΟΝΕΙΣ

Π Ρ Ο Κ Η Ρ Υ Σ Σ Ε Ι

ΠΡΟΣ: Υπουργό Παιδείας Θεσσαλονίκη 26 / 2 / 2008 κ. Ευριπίδη Στυλιανίδη Αρ. Πρωτ. 4775

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ

Ο ΕΘΙΣΜΟΣ ΤΩΝ ΦΟΙΤΗΤΩΝ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΤΟ ΟΝΕΙΡΟ ΖΕΙ, γεννιέται και πεθαίνει μέσα στην αφάνεια.

ΒΙΒΛΙΟΚΡΙΣΙΑ. Η ΔΕΥΤΕΡΗ ΑΠΑΣΧΟΛΗΣΗ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΑΓΟΡΑ ΕΡΓΑΣΙΑΣ Κριτική παρουσίαση της μελέτης των Κ. Κασιμάτη και Άλλισον Ε.

> ΑΠΟΣΠΑΣΜΑΤΑ ΓΙΑ ΤΟ ΝΟΗΜΑ ΤΗΣ ΖΩΗΣ (χρονικό διάστημα ) < 1

ΠΑΡΑΡΤΗΜΑ Β ΔΙΑΚΗΡΥΞΗ ΑΝΟΙΧΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ. (Τύπος Β) Για έργα που δεν εμπίπτουν στο πεδίο εφαρμογής των Οδηγιών 2004/18 και 2004/17

ΠΡΟΣ : ΘΕΜΑ : ΑΝΑΚΟΙΝΩΣΗ - ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΜΕΤΑΤΑΞΕΙΣ ΥΠΑΛΛΗΛΩΝ ΣΤΟ ΔΗΜΟ ΜΥΚΟΝΟΥ Σχετ :

ΛΑΟΓΡΑΦΙΚΟ ΜΟΥΣΕΙΟ ΣΑΡΑΚΑΤΣΑΝΩΝ ЕТНОГРАФСКИ МУЗЕЙ НА КАРАКАЧАНИТЕ. Λεύκωμα ΣΑΡΑΚΑΤΣΑΝΩΝ АЛБУМ НА КАРАКАЧАНИТЕ. Κείμενα και λεζάντες: ΤΣΑΟΥΣΗΣ ΒΑΣΙΛΗΣ

Δημόσιες συμβάσεις. Νομική βάση. Στόχοι. Επιτεύγματα

ΚΕΙΜΕΝΑ ΝΕΟΕΛΛΗΝΙΚΗΣ ΛΟΓΟΤΕΧΝΙΑΣ

ΔΕΗ Ανανεώσιμες: Το μέλλον της ΔΕΗ Ομιλία του κ. Τάκη Αθανασόπουλου Προέδρου & Διευθύνοντος Συμβούλου ΔΕΗ Α.Ε


ΤΡΑΙΝΟΣΕ ΜΕΤΑΦΟΡΕΣ ΜΕΤΑΦΟΡΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΕΠΙΒΑΤΩΝ ΚΑΙ ΦΟΡΤΙΟΥ Α.Ε. Τι πρέπει να γνωρίζετε όταν ταξιδεύετε μαζί μας. Πρόλογος

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ ΤΗΣ ΕΡΕΥΝΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. (Εγκρίθηκε στη 299/ Συνεδρίαση της Συγκλήτου)

«ΑΝΑΠΤΥΞΙΑΚΕΣ ΠΡΟΟΠΤΙΚΕΣ ΣΤΑΘΜΟΥ ΕΜΠΟΡΕΥΜΑΤΟΚΙΒΩΤΙΩΝ Σ.ΕΜΠΟ Ο.Λ.Π.» Η ΔΙΑΧΕΙΡΙΣΗ ΤΩΝ ΛΙΜΕΝΩΝ ΣΤΗΝ ΕΛΛΑΔΑ

Η ΕΛΛΗΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ ΤΟΥ 1821 ΣΤΗ ΜΑΚΕΔΟΝΙΑ ΚΑΙ ΣΤΗΝ ΚΡΗΤΗ ГРЕЧЕСКОЕ ВОССТАНИЕ 1821 ГОДА В МАКЕДОНИИ И НА КРИТЕ

ΠΡΟΣΧΕΔΙΟ ΝΟΜΟΥ «ΕΓΓΥΗΣΕΙΣ ΚΑΤΑ ΤΗΣ ΕΡΓΑΣΙΑΚΗΣ ΑΝΑΣΦΑΛΕΙΑΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ» ΑΡΘΡΟ 1 ΕΙΔΙΚΕΣ ΜΟΡΦΕΣ ΑΠΑΣΧΟΛΗΣΗΣ

ΠΑΡΑΡΤΗΜΑ Β ΔΙΑΚΗΡΥΞΗ ΑΝΟΙΧΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ. (Τύπος Β) Για έργα που δεν εμπίπτουν στο πεδίο εφαρμογής των Οδηγιών 2004/18/ΕΚ και 2004/17/ΕΚ

ΔΕΚΑΕΞΙ ΜΑΘΗΜΑΤΑ ΠΑΓΚΟΣΜΙΑΣ ΙΣΤΟΡΙΑΣ

Η ΣΩΤΗΡΙΑ ΕΝ ΧΡΙΣΤΩ ΚΑΙ ΤΟ ΘΕΜΑ ΤΗΣ ΑΙΩΝΙΟΥ ΣΩΤΗΡΙΑΣ ΤΟΥ ΠΙΣΤΟΥ

Βιογραφικό Σημείωμα ΝΙΚΟΣ ΚΟΥΝΔΟΥΡΟΣ

Αριστοτέλης Ο πατέρας της Δυτικής Επιστήμης

ΔΕΥΤΕΡΟΝΟΜΙΟΝ. Ενδεκα ημερών πορεία είναι από το όρος Χωρήβ δια του όρους Σηείρ μέχρι της Καδης Βαρνή.

ΠΑΓΚΟΣΜΙΟΠΟΙΗΣΗ ΚΑΙ ΔΙΕΘΝΕΣ ΕΜΠΟΡΙΟ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΥΠΟΜΝΗΜΑ. Στην Επιτροπή Κρίσεως Βαρέων και Ανθυγιεινών επαγγελμάτων του άρθρου 20 ν.3790/2009

κ.ο. ΑΝΑΣΥΝΤΑΞΗ Θέσεις της Πολιτικής Επιτροπής

ΑΠΟΣΠΑΣΜΑ. Από τα πρακτικά της με αριθμό 8/2011, συνεδρίασης του Περιφερειακού Συμβουλίου την Τετάρτη 27 του μηνός Απριλίου 2011.

ΕΜΦΥΤΕΥΣΙΜΟΙ ΚΑΡΔΙΟΜΕΤΑΤΡΟΠΕΙΣ- ΑΠΙΝΙΔΩΤΕΣ. ΤΙ ΠΡΕΠΕΙ ΝΑ ΓΝΩΡΙΖΟΥΜΕ.

Του έργου «Αναβάθμιση αρδευτικών δικτύων Δήμου Σητείας»

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ : Φ.Π.Α. ΚΑΙ ΟΙΚΟΝΟΜΙΚΟ ΑΠΟΤΕΛΕΣΜΑ

ΔΙΑΚΗΡΥΞΗ ΠΡΟΧΕΙΡΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΠΡΟΜΗΘΕΙΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΕΡΙΦΕΡΕΙΑΚΩΝ ΣΥΣΚΕΥΩΝ

ΘΕΜΑ: «ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΡΑΣΗΣ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ » ΠΕΡΙΕΧΟΜΕΝΑ

να καταστεί ανθρώπινος ο άνθρωπος ατόπημα να υπερβεί την κρίση να αποποιηθεί τον ατομικισμό

«ΟΛΥΜΠΙΑΚΟ ΠΑΝΤΕΧΝΟΝ» ΙΣΤΟΡ ΒΙΒΛΙΟ ΙΣΤΟΡΙΑΣ «ΟΛΥΜΠΙΑΚΟΥ ΠΑΝΤΕΧΝΟΥ» / ΓΕΝΙΚΟΣ ΓΡΑΜΜΑΤΕΑΣ Ο.Ε.Ο.Π.

Η ΣΥΣΚΕΥΑΣΙΑ ΚΑΙ Ο ΠΟΣΟΤΙΚΟΣ ΠΟΙΟΤΙΚΟΣ ΕΛΕΓΧΟΣ ΕΝΟΣ ΠΡΟΙΟΝΤΟΣ ΩΣ ΠΑΡΑΓΟΝΤΑΣ ΓΙΑ ΤΗΝ ΒΕΛΤΙΩΣΗ ΤΟΥ

για τη ριζική ανανέωση και αλλαγή της δηµοκρατικής παράταξης και του πολιτικού συστήµατος

ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΚΑΙ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΛΟΓΙΣΤΙΚΗ ΚΑΙ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ. Διπλωματική Εργασία

Κέντρα Προπονητικού Αθλητικού Τουρισμού

ΔΙΑΚΗΡΥΞΗ υπ. αριθμ 09/2013. Πρόχειρος Πλειοδοτικός Διαγωνισμός για την Εκποίηση Άχρηστων Βρώσιμων Ελαίων και λιπών. ΣΥΝΟΠΤΙΚΑ ΣΤΟΙΧΕΙΑ

ΠΡΩΤΟ ΜΕΡΟΣ ΣΤΡΑΤΗΓΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ

ενώ πλέον είχαμε μπει στην πέμπτη δεκαετία από την απελευθέρωση της Θεσσαλονίκης, δεν βρέθηκε κάποιος να σηκώσει στην πλάτη του την χρόνια αυτή

ΤΟ ΣΥΜΒΟΛΟ ΠΙΣΤΕΩΣ ΤΩΝ ΑΠΟΣΤΟΛΩΝ

ΕΓΚΥΚΛΙΟΣ. Θέμα: Μέτρα πρόληψης κατά της διασποράς της γρίπης

Μεταμόσχευση νεφρού. Τι είναι οι νεφροί;

μπορούσαμε και θα έπρεπε να το αντισταθμίσουμε με νέες πολιτικές, με άλλες κατακτήσεις και ωφέλειες. Ο κίνδυνος της αποβιομηχάνισης ήταν βέβαια

Δεν μπορεί να μείνει αναπάντητη η επίθεση κυβέρνησης - ΕΕ - εφοπλιστών

ΘΕΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟΝ ΥΠΕΥΘΥΝΟ ΣΙΤΙΣΗΣ ΚΑΙ ΣΤΕΓΑΣΗΣ ΤΟΥ Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ

«Σε μια ρώγα από σταφύλι» Εκπαιδευτικό Πρόγραμμα για το Αμπέλι, το Σταφύλι & το Κρασί

Έχουμε σήμερα Δημοκρατία; Κυριακή, 23 Σεπτέμβριος :35

ΘΕΜΑ: «Συζήτηση και λήψη αποφάσεων για τη διαθεσιμότητα υπαλλήλων, περικοπή πόρων, και δημιουργία Παρατηρητηρίου στον Δήμο μας».

ΔΙΑΚΗΡΥΞΗ. Ασφάλιση οχημάτων, μηχανημάτων έργου, φωτοβολταϊκών συστημάτων και του Δημαρχιακού Καταστήματος Δήμου Αλεξανδρούπολης για το έτος 2016

ΚΕΝΤΡΟ ΣΤΗΡΙΞΗΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑΣ ΔΗΜΟΥ ΑΘΗΝΑΙΩΝ

Πρόγραμμα Σπουδών για τα Μαθηματικά στην Υποχρεωτική Εκπαίδευση

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α ΤΑΞΗΣ ΕΠΑ. Λ ΝΕΑΣ ΖΙΧΝΗΣ ΓΝΩΡΙΖΩ ΤΟΝ ΤΟΠΟ ΠΟΥ ΜΕΝΩ

Transcript:

Τ.Ε.Ι ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ Διαδικτυακό Ημερολόγιο Πατσιαβουρίδου Μαγδαλένα (Α.Ε.Μ.: 1723) Επόπτης Καθηγητής: Χατζής Βασίλειος Μαϊος 2014

Περιεχόμενα Περιεχόμενα ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΦΑΛΜΑ! ΔΕΝ ΕΧΕΙ ΟΡΙΣΤΕΙ ΣΕΛΙΔΟΔΕΙΚΤΗΣ. ΚΕΦΑΛΑΙΟ 1Ο 4 Εισαγωγή 4 1.1 Γενικά 4 1.2 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ 5 1.3 ΔΙΑΔΙΚΤΥΑΚΟ ΗΜΕΡΟΛΟΓΙΟ 7 ΚΕΦΑΛΑΙΟ 2Ο 10 Τεχνικά Χαρακτηριστικά 10 2.1 Ανάλυση απαιτήσεων και λειτουργικά χαρακτηριστικά της εφαρμογής 10 2.2 Προϋποθέσεις σωστού σχεδιασμού και καλής λειτουργίας της εφαρμογής 11 ΚΕΦΑΛΑΙΟ 3Ο 13 Τεχνολογίες 13 3.1 H HTML και το Internet 13 3.2 Η γλώσσα PHP 16 3.3 - Βάσεις Δεδομένων SQL 20 3.4 jquery 26 3.5 CSS (Cascading Style Sheets) 27 ΚΕΦΑΛΑΙΟ 4 Ο 28 Υλοποίηση 28 4.1 Εγκατάσταση της εφαρμογής 28 4.2 Παρουσίαση της διεπαφής του ημερολογίου 31 4.3 Αρχεία κώδικα 35 ΒΙΒΛΙΟΓΡΑΦΙΑ 60 Σελίδα 2 από 61

Ευρετήριο Εικόνων και Πινάκων Ευρετήριο εικόνων και πινάκων Εικ 1.1 Η πρώτη μορφή του internet... 6 Εικ. 1.2 Στατιστικα χρηστών internet...7 Εικ 3.1 Operators...22 Εικ3.2 Πίνακας notes... 24 Εικ 3.3 Πίνακας Tasks...25 Εικ 3.4 Σύνταξη Css...27 Εικ 4.1 Λειτουργία xampp... 29 Εικ4.2 Πρόσβαση στο μενού τοπικού server... 29 Εικ4.3Βάσεις δεδομένων στον τοπικού server... 29 Εικ4.4Βάσεις δεδομένων στον τοπικού server...30 Εικ4.4 Import Βάσεως δεδομένων στον τοπικού server... 31 Εικ4.5 Διεπαφή ημερολογίου... 32 Εικ4.6 Task σε κάθε ημέρα... 33 Εικ4.7 Σημειωματάριο ημέρας...33 Εικ4.8 Αναφορά ημέρας...34 Εικ 4.9 Προσθήκη συμβάντος... 35 Σελίδα 3 από 61

Κεφάλαιο 1ο Εισαγωγή 1.1 Γενικά Οι περισσότεροι άνθρωποι σήμερα πολύ δύσκολα μπορούν να φανταστούν τη ζωή τους χωρίς το διαδίκτυο. Το Internet μας παρέχει πρόσβαση σε ειδήσεις, ηλεκτρονικά μηνύματα, αγορές και διασκέδαση κάθε ώρα της ημέρας και της νύκτας. Κάποιοι ισχυρίζονται ότι καμία άλλη εφεύρεση δεν ήταν πιο επαναστατική μετά από την εφεύρεση της τυπογραφίας από τον Gutenberg τον 15ο αιώνα. Το Διαδίκτυο είναι ένα παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών, οι οποίοι χρησιμοποιούν καθιερωμένη ομάδα πρωτοκόλλων, η οποία χρησιμοποιείται για να εξυπηρετεί εκατομμύρια χρηστών καθημερινά σε ολόκληρο τον κόσμο. Οι διασυνδεδεμένοι ηλεκτρονικοί υπολογιστές ανά τον κόσμο, οι οποίοι βρίσκονται σε ένα κοινό δίκτυο επικοινωνίας, ανταλλάσσουν μηνύματα (πακέτα) με τη χρήση διαφόρων πρωτοκόλλων (τυποποιημένοι κανόνες επικοινωνίας), τα οποία υλοποιούνται σε επίπεδο υλικού και λογισμικού. Το κοινό αυτό δίκτυο καλείται Διαδίκτυο. Η επικοινωνία μέσω του διαδικτύου καθίσταται άμεση και αμφίδρομη. Δίνεται η δυνατότητα σε κάθε χρήστη ηλεκτρονικού υπολογιστή συνδεδεμένου στο Διαδίκτυο, να πληροφορηθεί αλλά και να πληροφορήσει ανταλλάσσοντας Σελίδα 4 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας απόψεις μέσω ενός πιο συμμετοχικοί και λιγότερο ελεγχομένου διαύλου επικοινωνίας. Οι χρήστες αποκτούν ολοένα και περισσότερο την ιδιότητα του παγκοσμίου πολίτη. Το Διαδίκτυο, σε συνδυασμό με την ολοένα αναπτυσσόμενη ψηφιακή τεχνολογία, έχει δημιουργήσει μία τεράστια αγορά γνώσεων/πληροφοριών. Από τη στιγμή που το Διαδίκτυο είναι ένα δίκτυο συνδεδεμένων υπολογιστών, κάθε χρήστης έχει την δυνατότητα να μοιραστεί πληροφορίες με άλλους χρήστες γενόμενος, πολλές φορές, ο ίδιος δημιουργός και πάροχος των πληροφοριών αυτών. 1.2 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ Οι πρώτες απόπειρες για την δημιουργία ενός διαδικτύου ξεκίνησαν στις ηπα στη δεκαετία του 1960, και διάφορα δίκτυα ανταλλαγής πακέτων πληροφοριών όπως τα Mark I, ARPANET, CYCLADES, Merit Network, Tymnet και Telenet, αναπτύχθηκαν στις αρχές του 70, με τη χρήση διάφορων τύπων πρωτοκόλλων. Το 1974, από τη μελέτη των Vint Cerf και Bob Kahn, προέκυψε το πρωτόκολλο TCP (Transmission Control Protocol), που αργότερα (1978) έγινε TCP/IP, προστέθηκε δηλαδή το Internet Protocol (IP), ώσπου το 1983 έγινε το μοναδικό πρωτόκολλο που ακολουθούσε το ARPANET, εξαλείφοντας τα μειονεκτήματα προηγούμενων πρωτοκόλλων. Το 1984 υλοποιείται το πρώτο DNS (Domain Name System) σύστημα στο οποίο καταγράφονται 1000 κεντρικοί κόμβοι και οι υπολογιστές του διαδικτύου πλέον αναγνωρίζονται από διευθύνσεις κωδικοποιημένων αριθμών. Ένα ακόμα σημαντικό βήμα στην ανάπτυξη του Διαδικτύου έκανε το Εθνικό Ίδρυμα Επιστημών (National Science Foundation, NSF) των ΗΠΑ, το οποίο δημιούργησε την πρώτη διαδικτυακή πανεπιστημιακή ραχοκοκκαλιά (backbone), το NSFNet, το 1986. Ακολούθησε η ενσωμάτωση και άλλων σημαντικών δικτύων, όπως το Usenet, το Fidonet και το Bitnet. Σελίδα 5 από 61

Κεφάλαιο 1ο Ο όρος Διαδίκτυο/Internet ξεκίνησε να χρησιμοποιείται ευρέως την εποχή που συνδέθηκε το ARPANET με το NSFNet και Internet σήμαινε οποιοδήποτε δίκτυο χρησιμοποιούσε TCP/IP. Η μεγάλη άνθιση του Διαδικτύου όμως, ξεκίνησε με την εφαρμογή της υπηρεσίας του Παγκόσμιου Ιστού από τον Τιμ Μπέρνερς- Λι στο ερευνητικό ίδρυμα CERN το 1989, ο οποίος είναι στην ουσία, η "πλατφόρμα", η οποία κάνει εύκολη την πρόσβαση στο Ίντερνετ, ακόμα και στη μορφή που είναι γνωστό σήμερα. Το Διαδίκτυο εξαπλώθηκε ταχύτατα στην Ευρώπη κατά τη δεκαετία του 80, ενώ στην Ασία στις αρχές του 90. Από τα μέσα της δεκαετίας του 90 το internet είχε τεράστιο αντίκτυπο στον εμπόριο και τον πολιτισμό, με την εξάπλωση της σχεδόν άμεσης επικοινωνίας μέσω email, των άμεσων μηνυμάτων, των τηλεφωνικών κλήσεων VoIP, των αμφίδρομων βιντεοκλήσεων και του Παγκόσμιο Ιστού, με τα blogs, τα forum συζητήσεων, τα μέσα κοινωνικής δικτύωσης (Facebook, Twitter, Google+ κτλ) και τις ιστοσελίδες online αγορών που περιλαμβάνει. To internet συνεχίζει να μεγαλώνει, οδηγούμενο από ακόμα μεγαλύτερους όγκους online πληροφοριών και γνώσης, εμπορίου, διασκέδασης και κοινωνικής δικτύωσης. Τα όλο και αυξανόμενα ποσά των δεδομένων που μεταδίδονται, οδηγούν στην ανάπτυξη όλο και ταχύτερων δικτύων με τη χρήση νέων τεχνολογιών όπως αυτή των οπτικών ινών κτλ. Σελίδα 6 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Worldwide Internet users 2005 2010 2013a World population^- 6 5 billion 6.9 billion 7 1 billion Not using the Internet 84% 70% 61% Using the Internet 16% 30% 39% Users in the developing world 8% 21% 31% Users in the developed world 51% 67% 77% Internet users by region 3 Estimate. 2005b 2010b 2013ab Africa 2% 10% 16% Americas 36% 49% 61% Arab States 8% 26% 38% Asia and Pacific 9% 23% 32% Commonwealth of Independent States 10% 34% 52% Europe 46% 67% 75% 3 Estimate. bper 100 inhabitants. Εικ. 1.2 Σττιστικα χρηστών internet 1.3 ΔΙΑΔΙΚΤΥΑΚΟ ΗΜΕΡΟΛΟΓΙΟ Ανάμεσα στις εκατομμύρια διαδικτυακές εφαρμογές που έχουν αναπτυχθεί κατά καιρούς βρίσκονται και εφαρμογές «Διαδικτυακού Ημερολογίου» ή «Web Calendars». Τέτοια λογισμικά είναι εξαιρετικά χρήσιμα, καθώς πολυάσχολα στελέχη μπορεί να τα συμβουλεύονται ανάμεσα σε συναντήσεις, δημοφιλείς κοσμικοί και διοργανωτές εκδηλώσεων μπορούν να κλείνουν ημερομηνίες και να οργανώνουν αποδοτικότερα χρονικά τα events που πρέπει να διεκπεραιώσουν κτλ. Κι όλα αυτά από οποιοδήποτε μέσο με σύνδεση στο internet, υπολογιστή, laptop, tablet ή κινητό, χωρίς να χρειάζεται να έχουν τίποτα αποθηκευμένο στη συσκευή. Αρκεί ένας web browser για να έχουμε πρόσβαση στα ημερολόγια καθώς όλα τα δεδομένα μας είναι αποθηκευμένα σε ένα cloud server. Υπάρχουν διάφορες εφαρμογές διαδικτυακού ημερολογίου στην αγορά, με πιο δημοφιλές το Google Calendar, και ακολουθούν άλλες όπως τα Yahoo Calendar, Outlook Calendar της Microsoft και το icalendar της Apple. Σελίδα 7 από 61

Κεφάλαιο 1ο εικ 1.3 Διαδικτυακά ημερολόγια του εμπορίου Αυτές οι εφαρμογές επιτρέπουν στο χρήστη να δημιουργούν προσωπικά ή κοινόχρηστα ημερολόγια, τα οποία αποθηκεύονται σε ένα cloud υπολογιστικό σύστημα του εκάστοτε παρόχου της υπηρεσίας. Ο χρήστης δε χρειάζεται κάποιο ιδιαίτερο λογισμικό για να έχει πρόσβαση στα ημερολόγια, παρά μόνο τον web browser της προτίμησής του. Η αποθήκευση των ημερολογίων στο internet κάνει ευκολότερο το μοίρασμα πληροφοριών μεταξύ των χρηστών, και συνεπώς απλοποιείται ο προγραμματισμός εκδηλώσεων και η δημιουργία προσκλήσεων. Επίσης, μπορούν να οριστούν διάφορα επίπεδα προσβασιμότητας και ιδιωτικότητας του κάθε ημερολογίου, προσθήκες υπενθυμίσεων, σημειώσεων, τοποθεσιών, εναλλαγές ανάλογα με την ζώνη ώρας, λειτουργία ατζέντας κτλ, προσφέροντας πολλές δυνατότητες στον χρήστη. Οι τεχνολογίες που χρησιμοποιούνται για τη δημιουργία, τη συντήρηση και την επέκταση των διαδικτυακών ημερολογίων κυμαίνονται από γλώσσες προγραμματισμού όπως η Java, server με λειτουργικό Linux, διεπαφές βασισμένες σε Ajax, χρήση HTML, PHP και βάσεων δεδομένων SQL. Στα πλαίσια αυτής της πτυχιακής εργασίας, βασιζόμενοι στην ιδέα των διαδικτυακών ημερολογίων που ήδη υπάρχουν, κατασκευάσαμε ένα δικό μας από το μηδέν, κάνοντας χρήση τεχνολογιών όπως οι γλώσσες προγραμματισμού PHP και HTML, βάση δεδομένων SQL και των CSS για να κάνουμε πιο ευπαρουσίαστη την εφαρμογή μας. Αναλυτικές πληροφορίες σχετικά με τα εργαλεία που χρησιμοποιήσαμε, τη διαδικασία που ακολουθήσαμε, τον κώδικα που γράψαμε, καθώς και ένα σύντομο εγχειρίδιο χρήσης, θα παρουσιαστούν στα κεφάλαια που ακολουθούν. Σκοπός της εργασίας είναι παρουσίαση των σύγχρονων προαναφερθέντων τεχνολογιών και η εξοικείωση με τη χρήση τους, η κατανόηση της Σελίδα 8 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας αλληλεπίδρασής τους και τελικά η δημιουργία μιας λειτουργικής, ευπαρουσίαστης και σταθερής διαδικτυακής εφαρμογής ημερολογίου. Στο Κεφάλαιο 2 παρουσιάζεται η ανάλυση απαιτήσεων, τα λειτουργικά χαρακτηριστικά της εφαρμογής καθώς και κάποιες προϋποθέσεις για την εύρυθμη λειτουργία και χρήση της. Στο Κεφάλαιο 3 γίνεται παρουσίαση και σύντομη ανάλυση των εργαλείων και τεχνολογιών που χρησιμοποιήσαμε για την κατασκευή της εφαρμογής, όπως οι γλώσσες προγραμματισμού PHP 5.5 και HTML, η βάση δεδομένων SQL (και MySQL ειδικότερα) με τους πίνακες που ορίσαμε, η τεχνική unix timestamp, τα Cascading Style Sheets, η jquery κ.ά. Τέλος στο Κεφάλαιο 4, παραθέτεται αναλυτικά ο κώδικας που γράψαμε με ταυτόχρονη επεξήγηση μέσω σχολίων, οδηγίες εγκατάστασης της εφαρμογής και οπτικές απεικονίσεις του interface του ημερολογίου. Σελίδα 9 από 61

Κεφάλαιο 2ο Τεχνικά Χαρακτηριστικά 2.1 Ανάλυση απαιτήσεων και λειτουργικά χαρακτηριστικά της εφαρμογής Σε αυτή την ενότητα παρουσιάσουμε την ανάλυση απαιτήσεων της εφαρμογής παράλληλα με τα λειτουργικά χαρακτηριστικά της. S Δημιουργία ηλεκτρονικού ημερολογίου. S Πρώτα μας μέλημα είναι η παρουσίαση του ημερολογιακού μήνα, άρα : Είναι απαραίτητη η δυνατότητα επιλογής συγκεκριμένου μήνα και έτους. Προσθήκη πλήκτρων για μετάβαση στον επόμενο ή προηγούμενο μήνα. Αν δεν επιλεχθεί η προβολή κάποιου συγκεκριμένου μήνα, θα ορίσουμε σαν αυτόματη επιλογή την προβολή του τρέχοντος μήνα. Χρήσιμος και καλαίσθητος είναι ο χρωματικός διαχωρισμός των τελευταίων ημερών του προηγούμενου μήνα, των ημερών του τρέχοντος μήνα και των πρώτων ημερών του μήνα που ακολουθεί. Όσον αφορά της μέρες του μήνα που διανύουμε, κι αυτές με τη σειρά τους είναι θεμιτό να διαφοροποιούνται χρωματικά σε μέρες που έχουν περάσει, στη σημερινή μέρα, και σε αυτές που ακολουθούν. Για κάθε εμφανιζόμενη μέρα, θέλουμε υποσημείωση του πλήθους των συμβάντων που έχουμε προγραμματίσει γι αυτή. Απαραίτητος είναι ο αυτόματος υπολογισμός των «δίσεκτων» ετών. Κάθε απεικόνιση ημέρας, θα πρέπει να έχει ένα ενεργό link για την προβολή των λεπτομερειών της. S Όσον αφορά την παρουσίαση λεπτομερειών ημέρας, αυτές περιλαμβάνουν : Εμφάνιση της επιλεγμένης ημερομηνίας Εμφάνιση της ημέρας της εβδομάδας στην επιλεγμένης ημερομηνίας Προβολή του «Σημειωματάριου» της ημέρας, με δυνατότητα εισαγωγής κειμένου και αποθήκευση, εμφάνιση κειμένου που έχει εισαχθεί στο παρελθόν και επεξεργασία προγενέστερου κειμένου και αποθήκευση του. Παρουσίαση «Συμβάντων» ημέρας, με δυνατότητα προσθήκης νέου συμβάντος, διάρκειάς του (όλη μέρα, επιλογή ώρας εκκίνησης και λήξης με ακρίβεια 5 λεπτών), επανάληψης συμβάντος πχ. κάθε μέρα, ανά Σελίδα 10 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας εβδομάδα (ισχύς για την επιλεγμένη ημερομηνία και κάθε αντίστοιχη μέρα της εβδομάδας για κάθε εβδομάδα μετά την παρούσα), ανά μήνα (ισχύς για την επιλεγμένη ημερομηνία και κάθε αντίστοιχη μέρα του μήνα μετά την επιλεγμένη) και κάθε χρόνο (ισχύς για την επιλεγμένη ημερομηνία και κάθε αντίστοιχη μέρα του χρόνου, για κάθε χρόνο μετά από αυτόν που διανύουμε). Επίσης, δίνεται η δυνατότητα προσθήκης περιγραφής συμβάντος με την εισαγωγή κειμένου. Εμφάνιση συμβάντων ημέρας, αυτών που αντιστοιχούν ακριβώς στην επιλεγμένη ημερομηνία, καθώς και εμφάνιση συμβάντων αντιστοιχισμένα σε επιλεγμένη ημερομηνία από «επαναλήψεις» προηγούμενων ημερών. Διαγραφή συμβάντος. 2.2 Προϋποθέσεις σωστού σχεδιασμού και καλής λειτουργίας της εφαρμογής Ο ακρογωνιαίος λίθος σε κάθε σχεδιασμό και ανάπτυξη μιας εφαρμογής είναι η κατανόηση του προβλήματος που καλούμαστε να αντιμετωπίσουμε. Τα περισσότερα λάθη όσον αφορά στην ανάπτυξη, την προσβασιμότητα και τη λειτουργικότητα ιστοσελίδων και εφαρμογών είναι αποτέλεσμα της ελλειπούς επίγνωσης του προβλήματος και όχι αδιαφορίας ή έλλειψης τεχνογνωσίας. Για να είναι επιτυχημένο, ως προς την ανάπτυξή του, ένα λογισμικό θα πρέπει να υπακούει σε 4 βασικές αρχές. Να είναι : S Αντιληπτό, δηλαδή διαθέσιμο στις αισθήσεις είτε μέσω ενός φυλλομετρητή είτε μέσω άλλων ειδικών τεχνολογιών. S Εύχρηστο, δηλαδή οι χρήστες να μπορούν να αλληλεπιδρούν με όλα τα ελεγκτικά και διαδραστικά στοιχεία του λογισμικού, αξιοποιώντας στο έπακρο τις δυνατότητές του. S Κατανοητό, δηλαδή τα περιεχόμενα να είναι ξεκάθαρα και σαφή και να αποφεύγεται σύγχυση και αμφισημία. S Ανθεκτικό, δηλαδή να γίνεται χρήση τεχνολογιών που καθιστούν το λογισμικό σταθερό και τη λειτουργία του εύρυθμη. Κάποιες άλλες αρχές, χρήσιμες στην ανάπτυξη κυρίως των web εφαρμογών, όπως είναι το διαδικτυακό ημερολόγιο που κατασκευάσαμε στα πλαίσια της παρούσας πτυχιακής εργασίας, παρουσιάζονται στη συνέχεια. S Προσφορά κατάλληλου εναλλακτικού κειμένου, σαν λύση σε μη κειμενικά περιεχόμενα ιστοσελίδων, χάριν επεξήγησης. S Χρήση κεφαλίδων σε πίνακες δεδομένων, για τη διευκόλυνση στην οργάνωση, πλοήγηση και κατανόηση των δεδομένων. Σελίδα 11 από 61

Κεφάλαιο 2ο S Εξασφάλιση άρτιας συμπλήρωσης και αποστολής φορμών από το χρήστη. S Εξασφάλιση ότι οι σύνδεσμοι (links) είναι κατανοητοί και χωρίς επιπλέον κείμενο, και αποφυγή πλεονασμών. S Ύπαρξη διαθέσιμων υπότιτλων σε πολυμέσα για καλύτερη κατανόηση S Προσβασιμότητα σε μη-html περιεχόμενα, όπως αρχεία PDF, Word, PowerPoint και Flash. S Επιλογή στο χρήστη να υπερπηδά και να αποφεύγει επαναλαμβανόμενα στοιχεία σε μια σελίδα, για αμεσότερη πρόσβαση στο κυρίως περιεχόμενο. S Χρήση χρώματος για υποδείξεις και ενίσχυση της κατανόησης, αποκλειστική χρήση του σαν μέσο μετάδοσης πληροφορίας. αλλά όχι S Ευανάγνωστο και σαφές κείμενο, με χρήση αναγνώσιμων γραμματοσειρών και κατάλληλη χρήση κεφαλίδων και λιστών. S Σχεδίαση βάσης προτύπων, καθώς οι ιστοσελίδες που συμμορφώνονται με την HTML και είναι προσβάσιμες, είναι ανθεκτικότερες και βελτιστοποιούν τη θέση τους στις μηχανές αναζήτησης. Τα CSS επιτρέπουν το διαχωρισμό των περιεχομένων από την παρουσίαση, προσφέροντας μεγαλύτερη ελαστικότητα και προσβασιμότητα στην πληροφορία. Σελίδα 12 από 61

Κεφάλαιο 3ο Τεχνολογίες 3.1 H HTML και το Internet Κάθε σελίδα που εμφανίζεται στο Internet είναι ένα αρχείο γραμμένο με τη γλώσσα HTML (HyperText Markup Language, Γλώσσα Χαρακτηρισμού Υπερ-Κειμένου), που περιλαμβάνει το κείμενο της σελίδας, τη δομή της και τους συνδέσμους προς άλλα έγγραφα, εικόνες ή άλλα μέσα. Ο φυλλομετρητής (Web browser) παίρνει τις πληροφορίες από τον web server, τις μορφοποιεί και τις εμφανίζει κατάλληλα για το σύστημά μας. Διαφορετικά προγράμματα φυλλομετρητή μπορεί να μορφοποιούν και να εμφανίζουν το ίδιο αρχείο με διαφορετικό τρόπο, ανάλογα με τις δυνατότητες του συστήματος στο οποίο τρέχουν και τις επιλογές διαμόρφωσης του προγράμματος του φυλλομετρητή. Μια web σελίδα ή ιστοσελίδα (web page) είναι ένα μεμονωμένο στοιχείο μιας παρουσίασης για το Web και περιέχεται σ ένα αρχείο στον δίσκο, το οποίο ανακτάται από έναν web server και μορφοποιείται μέσω ενός φυλλομετρητή. Η αρχική σελίδα (home page) είναι η πρώτη ή κορυφαία σελίδα μιας παρουσίασης για το Web, είναι δηλαδή το σημείο εισόδου ή εκκίνησης για τις υπόλοιπες σελίδες της παρουσίασης και η πρώτη σελίδα που θα συναντήσουν οι αναγνώστες της παρουσίασής μας. Η αρχική σελίδα περιέχει συνήθως μια σύνοψη του περιεχομένου της παρουσίασης με τη μορφή ενός πίνακα περιεχομένων ή μιας ομάδας εικονιδίων. 3.1.1 Τι είναι η HTML Η HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language, δηλ. Γλώσσα Χαρακτηρισμού Υπερ-Κειμένου και βασίζεται στη γλώσσα SGML, Standard Generalized Markup Language, που είναι ένα πολύ μεγαλύτερο σύστημα επεξεργασίας εγγράφων. Η HTML ορίζει ένα σύνολο κοινών στυλ για τις Web σελίδες, όπως τίτλοι (titles), επικεφαλίδες (headings), παράγραφοι (paragraphs), λίστες (lists) και πίνακες (tables). Ορίζει επίσης στυλ χαρακτήρων, όπως η έντονη γραφή (boldface) και οι ενότητες κώδικα. Σελίδα 13 από 61

Κεφάλαιο 3ο Κάθε στοιχείο έχει ένα όνομα και περιέχεται μέσα στα σύμβολα <>, που αποκαλούνται tags (ετικέτες). Όταν γράφουμε μια Web σελίδα με την HTML, στην ουσία δίνουμε τίτλους στα διάφορα στοιχεία της σελίδας μ αυτά τα tags. Οι φυλλομετρητές, μαζί με τη δυνατότητά τους να ανακτούν σελίδες από το Web, λειτουργούν επίσης και σαν μορφοποιητές για την HTML. Όταν διαβάζουμε μια σελίδα γραμμένη με την HTML σ έναν φυλλομετρητή, ο φυλλομετρητής διαβάζει (διερμηνεύει) τα tags της HTML και μορφοποιεί το κείμενο και τις εικόνες στην οθόνη. Διαφορετικοί φυλλομετρητές, οι οποίοι τρέχουν σε διαφορετικούς υπολογιστές, μπορεί να αντιστοιχίζουν διαφορετικά στυλ σε κάθε στοιχείο μιας σελίδας. Αυτό σημαίνει ότι οι σελίδες που δημιουργούμε με την HTML μπορεί να δείχνουν εντελώς διαφορετικές από σύστημα σε σύστημα και από φυλλομετρητή σε φυλλομετρητή. Δηλαδή, οι πραγματικές πληροφορίες και οι σύνδεσμοι που περιέχουν οι σελίδες μας θα είναι πάντα εκεί, αλλά η εμφάνιση των σελίδων στην οθόνη θα είναι διαφορετική. 3.1.2 Δομή μιας HTML σελίδας Οι σελίδες που γράφουμε με την HTML είναι απλά αρχεία κειμένου σε μορφή ASCII, που σημαίνει ότι δεν περιέχουν πληροφορίες για κάποιο λειτουργικό σύστημα ή πρόγραμμα, αλλά μπορούν να διαβαστούν από οποιονδήποτε συντάκτη υποστηρίζει απλό κείμενο. Τα αρχεία της HTML περιέχουν τα ακόλουθα : Το κείμενο της σελίδας. Τα tags (ετικέτες) της HTML, τα οποία υποδεικνύουν τα στοιχεία, τη δομή και τη μορφοποίηση των σελίδων, καθώς επίσης και τους συνδέσμους υπερ-κειμένου προς άλλες σελίδες ή προς αρχεία άλλων μορφών (πχ πολυμέσα) Τα περισσότερα tags έχουν την εξής μορφή : <ΌνομαTag> Επηρεαζόμενο κείμενο </ΟνομαΤβ9> Τα tags της HTML έχουν γενικά μια ετικέτα αρχής (ανοίγματος) και μια τέλους (κλεισίματος), τα οποία περικλείουν το κείμενο που επηρεάζουν. To tag αρχής ενεργοποιεί μια λειτουργία ή ένα χαρακτηριστικό, όπως για παράδειγμα την έντονη γραφή, ενώ το tag τέλους την απενεργοποιεί. Τα tags τέλους έχουν το ίδιο όνομα με τα tag αρχήςμ αλλά με πρόθεμα τον χαρακτήρα /. Δεν αποτελούν ζευγάρι όλα τα tags της HTML, καθώς ορισμένα είναι «μονομελή», ενώ άλλα περιέχουν επιπλέον πληροφορίες και κείμενο ανάμεσα στα σύμβολα < και >. Επίσης, όλα τα tags στην HTML δεν κάνουν διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων, δηλαδή μπορούμε να γράφουμε είτε με κεφαλαία είτε με μικρά, ακόμα και με οποιονδήποτε συνδυασμό τους. Γενικά είναι προτιμότερο να τα γράφουμε κεφαλαία ώστε να είναι πιο ευδιάκριτα μέσα στο κείμενο της σελίδας. Σελίδα 14 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Τα αρχεία της HTML πρέπει να τα γράφουμε σε συντάκτες κειμένων, δηλαδή προγράμματα που μπορούν να αποθηκεύσουν αρχεία κειμένου σε μορφή ASCII, όπως είναι το Notepad, Notepad++, Wordpad, το Edit του DOS και τα vi, emacs και pico του UNIX. To όνομα του αρχείου θα πρέπει να έχει επέκταση.html ή htm. H HTML χρησιμοποιεί τρία tags για την περιγραφή της συνολικής δομής μιας σελίδας, τα οποία περιέχουν ορισμένες απλές πληροφορίες κεφαλίδας. Αυτά προσδιορίζουν τη σελίδα μας στους φυλλομετρητές και παρέχουν απλές πληροφορίες γι αυτήν, όπως τον τίτλο ή το συγγραφέα της, πριν από τη φόρτωση ολόκληρης της σελίδας. To tag <HTML> : η πρώτη ετικέτα που ελέγχει τη δομή μιας σελίδας γραμμένης σε κώδικα HTML και υποδεικνύει ότι το περιεχόμενο του αρχείου περιέχει κώδικά γραμμένο σε αυτή τη γλώσσα. Όλο το κείμενο και οι εντολές σε μια HTML σελίδα θα πρέπει να τοποθετούνται ανάμεσα σε tags αρχής και τέλους <HTML>, ως εξής : <HTML>... Κείμενο σελίδας... <HTML> Το tag <HEAD> : προσδιορίζει ότι οι γραμμές που περιέχονται ανάμεσα στην αρχή και στο τέλος του είναι ο πρόλογος για το υπόλοιπο του αρχείου. Σε αυτή την ενότητα συνήθως τοποθετούμε μόνο τον τίτλο της σελίδας. <HTML> <HEAD> <TITLE> Τίτλος </TITLE> </HEAD> </HTML> Το tag <BODY> : το υπόλοιπο της HTML σελίδας, δηλαδή όλο το κείμενο και οποιοδήποτε άλλο περιεχόμενο, όπως σύνδεσμοι, εικόνες κτλ περικλείεται σε μια τέτοια ετικέτα. <HTML> <HEAD> <TITLE> Τίτλος </TITLE> </HEAD> <BODY>...κυρίως κείμενο.. </BODY> </HTML> Όλες οι ετικέτες της HTML σχηματίζουν ξεχωριστές, ένθετες ενότητες κειμένου και θα πρέπει να δίνεται ιδιαίτερη προσοχή ώστε να μην υπάρχει επικάλυψη μεταξύ των tags. Το tag <TITLE> : Κάθε HMTL σελίδα χρειάζεται έναν τίτλο, ο οποίος θα υποδεικνύει το περιεχόμενό της, και θα εμφανίζεται στη γραμμή τίτλου των δημοφιλέστερων φυλλομετρητών. Σελίδα 15 από 61

Κεφάλαιο 3ο Οι ετικέτες <TITLE> τοποθετούνται πάντα μέσα στο ζευγάρι των tags <HEAD> όπως φαίνεται στο προηγούμενο σχήμα. Τα tags επικεφαλίδων : Οι επικεφαλίδες χρησιμοποιούνται για το διαχωρισμό των ενοτήτων κειμένου, όπως ακριβώς και σε ένα βιβλίο. Έχουν τη μορφή <H1> Επιθυμητός τίτλος </H1> και ορίζονται με ετικέτες από H1 έως H6. Οι επικεφαλίδες δεν αριθμούνται όταν εμφανίζονται στην οθόνη, αλλά έχουν κάποιο χαρακτηριστικό που τις ξεχωρίζει από το υπόλοιπο κείμενο, όπως μεγαλύτερο μέγεθος, εντονότερο κείμενο ή υπογράμμιση. Το μέγεθος του κειμένου ελαττώνεται πηγαίνοντας από το H1 στο H6. Τα tags παραγράφων : είναι τα <P> και </P> (η συγκεκριμένη ετικέτα τέλους είναι προαιρετική) και η αλλαγή παραγράφου σημαίνει το ξεκίνημα μιας νέας γραμμής και επιπλέον κατακόρυφη απόσταση μεταξύ των παραγράφων. Το <br> είναι κενό στοιχείο, δεν έχει περιεχόμενο, ούτε χρειάζεται ετικέτα τερματισμού. Παρουσιάσαμε εν συντομία κάποια βασικά στοιχεία της γλώσσας HTML. Επιπλέον αισθητικές παρεμβάσεις στη σελίδα μας μπορούμε να κάνουμε χρησιμοποιώντας κάποια tags, όπως το <STYLE> ή CSS (Cascade Style Sheets) για τα οποία θα μιλήσουμε στη συνέχεια. 3.2 Η γλώσσα PHP 3.2.1- Εισαγωγή στην PHP H PHP είναι μια γλώσσα προγραμματισμού για web servers, ιδιαίτερα χρήσιμη για δυναμικές ιστοσελίδες, οι οποίες μπορούν να διασυνδεθούν με κάποιες βάσεις δεδομένων. Η PHP είναι δωρεάν για χρήση, και αρκετά δημοφιλής σε πλατφόρμες Unix, Linux αλλά και Windows. Η γλώσσα προγραμματισμού PHP (Hypertext PreProcessor) έχει το ιδιαίτερο χαρακτηριστικό ότι ο κώδικάς της πρώτα μεταγλωττίζεται στον server και έπειτα φορτώνεται σαν ένα κανονικό html έγγραφο, χωρίς ο χρήστης να είναι σε θέση να δει τον αρχικό κώδικα. Με την τεχνολογία της PHP μπορούμε να δημιουργήσουμε δυναμικές ιστοσελίδες (dynamic web pages). Ανταγωνιστικές τεχνολογίες είναι η ASP (Active Server Pages) της εταιρίας Microsoft, καθώς και η CFML (Cold Fusion Markup Language). Ένα μικρό παράδειγμα κώδικα σε PHP είναι το ακόλουθο : echo ""; echo "Hello"; echo "";?> Σελίδα 16 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Μπορούμε να γράψουμε τις παραπάνω γραμμές κώδικα σε ένα Notepad των Windows, να αποθηκεύσουμε το αρχείο σε έναν web server και αν αυτός υποστηρίζει την τεχνολογία PHP, θα εμφανιστεί το μήνυμα «Hello» στην οθόνη μας. Αν επιχειρήσουμε να δούμε τον πηγαίο κώδικα (source code) θα υπάρχουν μόνο τα tags της HTML, χωρίς τις επισημάνσεις της Php. Οι ετικέτες χρησιμοποιούνται για να δηλώσουμε ένα block κώδικα της Php, την αρχή και το τέλος του, ώστε να μπορεί το επεξεργαστεί ο web server. Επίσης, μπορούμε να τοποθετήσουμε κώδικα σε HTML μέσα σε αντίστοιχο της Php, και θα εκτελεστεί κανονικά. Η εντολή echo χρησιμοποιείται για να στείλουμε ένα κείμενο (string) στον φυλλομετρητή. Όλες οι εντολές της Php πρέπει να τελειώνουν με το χαρακτήρα «;» και μπορούν επεκταθούν και σε περισσότερες από μια γραμμές. 3.2.2 Οι μεταβλητές στην PHP Στην PHP χρησιμοποιούνται μεταβλητές (variables) για την αποθήκευση και ανάκτηση δεδομένων, τα οποία χρησιμοποιούνται συχνά και μπορεί να περιέχουν κείμενο ή και αριθμούς. Όλες οι μεταβλητές πρέπει να αρχίζουν με το χαρακτήρα $ και το όνομά τους μπορεί να αποτελείται από γράμματα και ψηφία, να περιέχει τον χαρακτήρα «_» (underscore), ξεκινώντας υποχρεωτικά όμως με γράμμα. Οι εντολή ελέγχου if και επανάληψης for χρησιμοποιούνται παρομοίως με τις υπόλοιπες γλώσσες προγραμματισμού. Η PHP μας παρέχει τη δυνατότητα να εξακριβώσουμε ποιον φυλλομετρητή (browser) χρησιμοποιεί ο επισκέπτης της ιστοσελίδας μας. Ένα από τα δυνατότερα χαρακτηριστικά της είναι ο τρόπος που χειρίζεται τις φόρμες της HTML, καθώς όλα τα στοιχεία της μεταβλητής δημιουργούν μια μεταβλητή με το ίδιο όνομα. Μια κανονική έκφραση (regular expression) είναι ένα κομμάτι κειμένου (string) που περιέχει ειδικές εντολές, οι οποίες του δίνουν τη δυνατότητα να χρησιμοποιηθεί με κάποιες συναρτήσεις της PHP για εντοπισμό και διαχείριση κειμένου. Η βασικότερη απ αυτές είναι η ereg() και μπορεί να χρησιμοποιηθεί για να καθορίσουμε αν μια κανονική έκφραση ικανοποιείται από ένα συγκεκριμένο string κειμένου. Αξιοποιώντας τις δυνατότητες που μας δίνονται μπορούμε να κάνουμε αντικατάσταση strings με regular expressions, χρήση tags, δημιουργία έντονου και πλάγιου κειμένου, παραγράφων, χρήση υπερσυνδέσμων και σελιδοποίηση. Ακόμα, μπορούμε να επέμβουμε σε βάσεις δεδομένων SQL, κάνοντας ταξινόμηση, αυτόματη υποβολή περιεχομένου, διαλογή και κλείδωμα πινάκων, μετονομασία, ομαδοποίηση και δημιουργία κανονισμών χρήσης τους. Αναφερθήκαμε επιγραμματικά στα παραπάνω, καθώς θα χρειαζόταν ένα ολόκληρο πολυσέλιδο κεφάλαιο για να αναλυθούν αυτές τις δυνατότητες της PHP, πράγμα που δεν εμπίπτει στα πλαίσια της παρούσας πτυχιακής εργασίας. Σελίδα 17 από 61

Κεφάλαιο 3ο 3.2.3 Η λειτουργία «date» Θα αναφερθούμε λίγο πιο αναλυτικά στη λειτουργία (function) «date» της PHP, καθώς είναι η βασική λειτουργία που χρησιμοποιήσαμε στην ανάπτυξη της εφαρμογής μας για να παίρνουμε δεδομένα ημερομηνιών και άλλων χρονολογιών. Έχει τη μορφή : string date ( string $format [, int $timestamp = time() ] ) Επιστρέφει ένα κομμάτι κειμένου (string) σύμφωνα με το δεδομένο πρότυπο string χρησιμοποιώντας τον δεδομένο ακέραιο «timestamp» ή την τρέχουσα ώρα, αν δεν έχει προκαθοριστεί κάποιο timestamp. Οι ακόλουθες παράμετροι αναγνωρίζονται στο format string. Μορφή Παράδειγμα Περιγραφή χαρακτήρα τιμών Day επιστρεφόμενω ν D Ημέρα του μήνα, 2 ψηφία αρχίζοντας με μηδέν 01 έως 31 D Αναπαράσταση κειμένου ημέρας, 3 ψηφία Mon έως Sun J Ημέρα του μήνα, χωρίς μηδενικά στην αρχή 1 to 31 l (πεζό 'L') N Πλήρης αναπαράσταση με κείμενο της ημέρας της εβδομάδας ISO-8601 αριθμητική αναπαράσταση της ημέρας της εβδομάδας (προστέθηκε στην PHP 5.1.0) Sunday έως Saturday 1 (για Monday) έως 7 (για Sunday) S Αγγλικό τακτικό επίθεμα της ημέρας του μήνα, 2 χαρακτήρες st, nd, rd or th. W Αριθμητική αναπαράσταση της ημέρας της 0 (για την Sunday) έως 6 (για το εβδομάδας Saturday) Z Ημέρα του χρόνου (ξεκινώντας από το 0) 0 έως 365 Week W ISO-8601 αριθμός εβδομάδας του χρόνου, οι Παράδειγμα: 42 (η 42η εβδομάδα εβδομάδες ξεκινούν από Δευτέρα (προστέθηκε στην PHP του χρόνου) 4.1.0) Month F M M Πλήρης αναπαράσταση του μήνα σε κείμενο, όπως January ή March Αριθμητική αναπαράσταση του μήνα, ξεκινώντας με μηδενικά Σύντομη αναπαράσταση ενός μήνα σε κείμενο, με 3 γράμματα January έως December 01 έως 12 Jan έως Dec Σελίδα 18 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας χαρακτήρα Μορφή Περιγραφή τιμών Παράδειγμα επιστρεφόμενω ν N Αριθμητική αναπαράσταση του μήνα, χωρίς 1 έως 12 μηδενικά στην αρχή T Αριθμός ημερών ενός δεδομένου μήνα 28 έως 31 Year L Αν είναι δίσεκτο έτος 1 αν είναι δίσεκτο, αλλιώς 0. Y Πλήρης αριθμητική αναπαράσταση του έτους, 4 Π.χ.: 1999 ή 2003 ψηφία y Αναπαράσταση του έτους με 2 ψηφία Π.χ.: 99 ή 03 Time a Πεζά γράμματα, προ μεσημβρίας ή μετά am ή pm μεσημβρίας A Κεφαλαία γράμματα, προ μεσημβρίας ή μετά AM ή PM μεσημβρίας B Swatch Internet time 000 έως 999 g 12-ωρη μορφή ώρας χωρίς αρχικά μηδενικά 1 έως 12 G 24- ωρη μορφή ώρας χωρίς αρχικά μηδενικά 0 έως 23 h 12- ωρη μορφή ώρας με αρχικά μηδενικά 01 έως 12 H 24- ωρη μορφή ώρας με αρχικά μηδενικά 00 έως 23 i Λεπτά, με αρχικά μηδενικά 00 έως 59 s Δευτερόλεπτα, με αρχικά μηδενικά 00 έως 59 u Μικροδευτερόλεπτα (προστέθηκε στην PHP Π.χ.: 654321 5.2.2). Σημειώστε ότι η date() πάντα θα παράγει 000000 αφού δέχεται ακέραιη παράμετρο, όπου η DateTime::format() υποστηρίζει τα microseconds. Timezone e Αναγνωριστικό ζώνης ώρας (προστέθηκε στην Π.χ.: UTC,GMT,Atlantic/Azores PHP 5.1.0) I (κεφαλαίο i) Αν είναι ή όχι σε daylight saving time 1 αν Daylight Saving Time, αλλιώς 0. O Διαφορά με την ώρα Greenwich (GMT) σε ώρες. Π.χ.: +0200 P Διαφορά με την ώρα Greenwich (GMT) με Π.χ.: +02:00 διαχωριστικό ανάμεσα στις ώρες και τα λεπτά (προστέθηκε στην PHP 5.1.3) T Συντομογραφία ζώνης ώρας Π.χ. : EST,MDT... Z Απόκλιση ζώνης ώρας σε δευτερόλεπτα. Η -43200 έως 50400 Σελίδα 19 από 61

Κεφάλαιο 3ο χαρακτήρα Μορφή Περιγραφή τιμώ ν Παράδειγμα επ ιστρεφόμενω ν απόκλιση για ζώνες δυτικά του UTC είναι πάντα αρνητική, Full Date/Time και για αυτές ανατολικά του UTC είναι πάντα θετική. --- c ISO 8601 ημερομηνία (προστέθηκε στην PHP 5) 2004-02-12T15:19:21+00:00 r» RFC 2822 μορφοποιημένη ημερομηνία Π.χ.: Thu, 21 Dec 2000 16:01:07 +0200 U Δευτερόλεπτα από την Unix Epoch (January 1 1970 00:00:00 GMT) βλέπε time() 3.2.4 Η λειτουργία timestamp Το Unix Timestamp είναι ένας τρόπος να υπολογίζουμε το χρόνο σαν ένα τρεχούμενο σύνολο δευτερολέπτων. Η απαρχή της καταμέτρησης αυτής θεωρείται η 1η Ιανουαρίου 1970 UTC (Unix Epoch). Ως εκ τούτου, το unix timestamp είναι ο αριθμός των δευτερολέπτων μεταξύ του unix epoch και μια επιλεγμένης ημερομηνίας. Υπάρχει το πλεονέκτημα ότι αυτό το μέγεθος δεν αλλάζει ακόμα κι αν κινούμαστε στην υδρόγειο. Αυτό είναι πολύ χρήσιμο στα πληροφοριακά συστήματα για τον εντοπισμό και την ταξινόμηση χρονολογημένων πληροφοριών σε δυναμικές και κατανεμημένες εφαρμογές τόσο online όσο και μονόπλευρα από τη μεριά του χρήστη. 3.3 Βάσεις Δεδομένων SQL 3.3.1 Εισαγωγή Η SQL (Structured Query Language) είναι μια γλώσσα υπολογιστών, που σχεδιάστηκε για τη διαχείριση δεδομένων, σε ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (Relational Database Management System, RDBMS), η οποία αρχικά βασίστηκε στη σχεσιακή άλγεβρα. Η γλώσσα περιλαμβάνει δυνατότητες ανάκτησης και ενημέρωσης δεδομένων, δημιουργίας και τροποποίησης σχημάτων και σχεσιακών πινάκων, αλλά και ελέγχου πρόσβασης στα δεδομένα. H SQL αναπτύχθηκε στην IBM στην αρχή της δεκαετία του 1970. Αυτή η πρώτη έκδοση που αρχικά ονομαζόταν SEQUEL, είχε ως σκοπό να χειριστεί και να ανακτήσει τα στοιχεία που αποθηκεύτηκαν στο πρώτο RDBMS της IBM, το System R. Την ίδια περίοδο αναπτύχθηκε στο Σελίδα 20 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας ΜΙΤ το πρώτο σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS) και η INGRES στο Πανεπιστήμιο Berkeley. Στα τέλη της δεκαετίας η Relational Software εισήγαγε την πρώτη διαθέσιμη εμπορικά εφαρμογή του SQL, λίγες εβδομάδες νωρίτερα από την IBM. 3.3.2 Γλωσσικά στοιχεία Η γλώσσα SQL υποδιαιρείται σε διάφορα γλωσσικά στοιχεία που περιλαμβάνουν : Clauses, προαιρετικές σε ορισμένες περιπτώσεις, αλλά απαραίτητα συστατικά όλων των δηλώσεων και ερωτήσεων. Expressions, που παράγουν είτε κλιμακωτές τιμές, είτε πίνακες αποτελούμενους από στήλες και σειρές δεδομένων. Predicates, που διευκρινίζουν τους όρους που μπορούν να αξιολογηθούν σαν σωστό ή λάθος. Queries, που ανακτούν τα στοιχεία βασιζόμενες σε ειδικά κριτήρια. Statements, που μπορούν να επιδρούν στα σχήματα και τα στοιχεία, ή να ελέγξουν τη ροή του προγράμματος και τις συνδέσεις με άλλα προγράμματα. Οι εκφράσεις σε SQL περιλαμβάνουν και το χαρακτήρα τερματισμού «;». Το κενό γενικά αγνοείται στις statements και τις queries της SQL, αλλά είναι απαραίτητο για να ξεχωρίζει τα statements, όπως και στην κανονική γραφή κειμένου. 3.3.3 Operators O p e ra to r Π ε ρ ιγ ρ α φ ή = Ισούται με <> για το <>) Δ ε ν ισούται μ ε (τα π ε ρ ισ σ ό τ ε ρ α ϋ Β Μ Θ ε π ίσ η ς δ έχο ντα ι το!= αντί > Μ εγα λύ τερ ο α π ό Σελίδα 21 από 61

Κεφάλαιο 3ο < Μ ικρότερο α π ό >= Μ εγα λύ τερ ο ή ίσο <= Μ ικρότερο ή ίσο BETWEEN Μ εταξύ ε ν ό ς κ α θ ο ρ ισ μ έ ν ο υ ε ύ ρ ο υ ς LIKE Ταιριάζει μ ε έν α π ρ ό τ υ π ο χ α ρ α κ τ ή ρ α IN Ί σ ο μ ε μια α π ό τις π ο λ λ α π λ έ ς δ υ ν α τ έ ς τιμές IS ή IS NOT Σ ύγκριση με το null (κενό δ ε δ ο μ έ ν ω ν ) IS D ISTINC T FROM NOT Ί σ ο μ ε τιμή ή και τα 2 είναι null (κ ενό δ ε δ ο μ έ ν ω ν ) AS εμ φ ά νισ η Χ ρη σιμ οπ οιείτα ι για α λ λα γή του ο ν ό μ α τ ο ς π ε δ ίο υ κατά την Εικ 3.1 Operators Κάποιες από τις σημαντικότερες SQL εντολές είναι : SELECT - άντληση δεδομένων από τη βάση UPDATE - ενημέρωση δεδομένων στη βάση DELETE - διαγραφή δεδομένων από τη βάση INSERT INTO - εισαγωγή νέων δεδομένων στη βάση CREATE DATABASE - δημιουργία νέας βάσης ALTER DATABASE - τροποποίηση της βάσης CREATE TABLE - δημιουργία νέου πίνακα ALTER TABLE - τροποποίηση έναν πίνακα DROP TABLE - διαγραφή ενός πίνακα CREATE INDEX - δημιουργία δείκτη (κλειδί αναζήτησης) Σελίδα 22 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας DROP INDEX - διαγραφή ενός δείκτη Για τον καλύτερο σχεδιασμό και βελτιστοποίηση μιας βάσης δεδομένων συχνά γίνεται χρήση και των ακόλουθων εντολών : FROM - υποδεικνύει από ποιο πίνακα θα τραβήξουμε τα δεδομένα που μας ενδιαφέρουν JOIN - ορίζει τους κανόνες για την ένωση πινάκων. WHERE - θέτει όρους σύγκρισης στα δεδομένα που επιστρέφονται από τη βάση, θέτει φίλτρα αληθείας. GROUP ΒΥ - ομαδοποιεί τα δεδομένα σύμφωνα με ορισμένα κριτήρια ORDER BY - ταξινομεί τα δεδομένα σύμφωνα με ορισμένα κριτήρια Άλλες εντολές για τη μεταχείριση των δεδομένων, διαμόρφωση των πινάκων και τις συναλλαγές μεταξύ τους, είναι πχ η INSERT, UPDATE, DELETE, MERGE, START - SAVE TRANSACTION κτλ. 3.3.4 - Τύποι Δεδομένων Κάθε στήλη πίνακα SQL δηλώνει τι τύπο δεδομένων περιέχει. Η ANSI SQL περιλαμβάνει τους παρακάτω τύπους δεδομένων. String Χαρακτήρων - Χαρακτήρες, κενά, μέγιστου μήκους n, μπορεί να περιέχει και εθνικούς χαρακτήρες. Bit Strings Αριθμούς - Ακέραιους, πραγματικούς, κινητής υποδιαστολής, διπλής υποδιαστολής κτλ Ημερομηνία και Χρόνο -DATE : τιμές για ημερομηνία (πχ 2014-2-21) -TIME : τιμές για χρόνο, ώρα (πχ 15:51:36) -TIME WITH TIMEZONE ή TIMEZ : ίδιο με το TIME, αλλά περιέχει πληροφορίες και για τη ζώνη ώρας -TIMESTAMP : DATE και TIME σε μια μεταβλητή (πχ 2014-2-21 15:51:36) TIMESTAMP WITH TIMEZONE ή TIMESTAMPZ : ίδιο με το timestamp περιέχει και πληροφορίες για τη ζώνη ώρας. Η SQL παρέχει διάφορες λειτουργίες για τη δημιουργία μιας μεταβλητής ημερομηνίας και ώρας, καθώς και να το διαχωρισμό στα επιμέρους στοιχεία της, όπως λεπτά, δευτερόλεπτα κτλ. 3.3.5 MySQL Σε αυτή την υποενότητα θα γίνει αναφορά στην MySQL (MySequel) που είναι και η βάση που χρησιμοποιήσαμε στην κατασκευή της εφαρμογής μας. Είναι το δεύτερο πιο Σελίδα 23 από 61

Κεφάλαιο 3ο διαδεδομένο RDBMS ανοιχτού κώδικα και σήμερα ανήκει στην Oracle Corporation. Είναι μια δημοφιλής επιλογή για χρήση σε εφαρμογές web, καθώς είναι πολύ αξιόπιστη συνδυαζόμενη με τεχνολογίες όπως τα Linux, Apache, PHP και Python. Υπάρχουν πολλές εκδόσεις για εμπορική χρήση, προσφέροντας ακόμα μεγαλύτερη λειτουργικότητα. Εφαρμογές που κάνουν χρήση των βάσεων δεδομένων MySQL περιλαμβάνουν τις Joomla, WordPress, Drupal, MODx, αλλά και κολοσσούς όπως τις Wikipedia, Google, Facebook, Twitter, Flickr και Youtube. Ο χρήστης μπορεί να χρησιμοποιήσει τη γραμμή εντολών (command line) που περιλαμβάνεται, είτε κάποιες γραφικές διεπαφές (front-end) για μεγαλύτερη ευκολία και λειτουργικότητα στη δημιουργία και διαχείριση MySQL βάσεων δεδομένων, την κατασκευή δομών βάσεων, την απόθήκευση, επιθεώρηση και μεταχείριση των δεδομένων. Τέτοιες διεπαφές είναι πχ οι Admirer, DBEdit, HeidiSQL, LibreOffice Base, Navicat, phpmy Admin κ.ά. Είναι γραμμένη σε C/C++ και είναι συμβατή με όλα τα δημοφιλή λειτουργικά, όπως τα Microrsoft Windows, OS X, Linux, UnixWare, Solaris, Symbian κ.ά. 3.3.6 Η δική μας βάση calendar Η βάση μας είναι στημένη σε MySQL. Έχει όνομα calendar και Collation utf8_general_ci. Αποτελείται από 2 πίνακες. Τον πίνακα notes ο οποίος περιέχει τα «σημειωματάρια» της κάθε ημέρας, και τον πίνακα tasks ο οποίος περιέχει τα «συμβάντα» της κάθε ημέρας. Πίνακας notes 2< ο ca^er 'ar'n tes @id : int(255} d date : varcharfloo} d notes : longteoct Εικ3.2 Πίνακας notes Πεδίο id -> Integer. Πρόκειται για το primary_key του πίνακα το οποίο χρησιμοποιείται ως id για την κάθε γραμμή. Λειτουργεί με AUTO-INCREMENT και αυξάνεται αυτόματα με κάθε εισαγωγή νέας γραμμής. Πεδίο «date». Varchar μήκους 100. Εκεί μπαίνει η ημερομηνία στην οποία αντιστοιχεί το σημειωματάριο Πεδίο «notes». Longtext ώστε να παίρνει μεγάλο μήκος χαρακτήρων. Εκεί σώζονται οι σημειώσεις της εκάστοτε ημέρας. Παράδειγμα Query: SELECT * FROM notes WHERE date = 24-05-2014 ; Πίνακας tasks Σελίδα 24 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Εικ 3.3 Πίνακας Tasks Πεδίο id -> Integer. Πρόκειται για το primary_key του πίνακα το οποίο χρησιμοποιείται ως id για την κάθε γραμμή. Λειτουργεί με AUTO-INCREMENT και αυξάνεται αυτόματα με κάθε εισαγωγή νέας γραμμής. Πεδίο «date». Varchar μήκους 100. Εκεί μπαίνει η ημερομηνία στην οποία αντιστοιχεί το σημειωματάριο Πεδίο replication_type. Varchar μήκους 100. Εδώ σώζουμε τον «τύπο» επανάληψης ενός συμβάντος. Πχ. NONE, DAY, MONTH, YEAR. Πεδίο replication_day. Integer. Εδώ, στην περίπτωση επανάληψης τύπου «Εβδομάδα» σώζεται η θέση της ημέρας μέσα στην εβδομάδα και στην περίπτωση επανάληψης τύπου «Μήνας» η μέρα του μήνα. Πεδίο replication_month. Integer. Εδώ σώζεται ο μήνας του χρόνου στην περίπτωση επανάληψης τύπου «χρόνος». Πεδίο notes. Longtext ώστε να παίρνει μεγάλο μήκος χαρακτήρων. Εκεί σώζονται οι σημειώσεις του εκάστοτε συμβάντος. Πεδίο start_time. Varchar μήκους 50. Εδώ σώζεται η ώρα εκκίνησης του συμβάντος. Πεδίο end_time. Varchar μήκους 50. Εδώ σώζεται η ώρα λήξης του συμβάντος. Πεδίο all_day. Bit καθώς χρησιμοποιείται ως Boolean μεταβλητή στον κώδικα. Εδώ δηλώνεται αν ένα συμβάν συμβαίνει «Όλη την ημέρα», οπότε και δεν λαμβάνεται υπόψη η ώρα. Σελίδα 25 από 61

Κεφάλαιο 3ο 3.4 jquery Η jquery είναι μια μικρή σε μέγεθος, απλή, γρήγορη και περιεκτική βιβλιοθήκη (framework) Javascript ανοιχτού κώδικα και πρωτοεμφανίστηκε το 2006. Συνδυάζοντας την απλότητα, την ευελιξία και την επεκτασιμότητα, άλλαξε τον τρόπο με τον οποίο οι προγραμματιστές γράφουν Javascript. Αυτή η βιβλιοθήκη εντολών μας παρέχει δυνατότητες επιλογής και διαμόρφωσης HTML στοιχείων, διαμόρφωσης CSS στοιχείων, διεργασιών HTML γεγονότων, εφέ και animations, χρήσης AJAX και πλήθώρας άλλων εφαρμογών. Για να ενσωματώσουμε την βιβλιοθήκη σε ένα html αρχείο, προσθέτουμε στο <head> μέρος της σελίδας μας τον εξής κώδικα: <script type="text/javascript" src="jquery.js"></script> Η σύνταξή της είναι πολύ απλή : $(επιλογή).δράση() Το $ είναι το σύμβολο που υποδηλώνει την jquery. Ο (επιλογέας) είναι το ερώ τημα^^^) για το HTML στοιχείο που θέλουμε. Η δράση (action) είναι αυτό που θα συμβεί στο επιλεγμένο στοιχείο. Π.χ. $(this).hide() - Κρύβει το επιλεγμένο αντικείμενο. Η jquery έχει τη δυνατότητα να χρησιμοποιεί τα ονόματα των CSS στύλ για να επιλέξει HTML στοιχεία : Π.χ. Το $( p ) επιλέγει όλα τα στοιχεία <p> Κάποια από τα βασικά γεγονότα (events) της jquery είναι : $(document).ready(function) - Έλεγχος ολοκλήρωσης φόρτωσης μιας σελίδας $(selector).click(function) - Έλεγχος για το κλικ σε ένα στοιχείο $(selector).dblclick(function) - Έλεγχος για το διπλό κλικ σε ένα στοιχείο $(selector).focus(function) - Έλεγχος εστίασης σε ένα στοιχείο $(selector).mouseover(function) - Έλεγχος για το hover του ποντικιού σε ένα στοιχείο Κάποια παραδείγματα εφέ της jquery είναι : $(selector).hide() - Απόκρυψη επιλεγμενων στοιχείων $(selector).show() - Εμφάνιση επιλεγμένων στοιχείων $(selector).toggle() - Εμφάνιση/Απόκρυψη επιλεγμένων στοιχείων $(selector).slidedown() - Slide down $(selector).slideup() - Slide up $(selector).slidetoggle() - Slide up/down $(selector).fadein() - Εμφάνιση (fade in) $(selector).fadeout() - Απόκρυψη (fade out) $(selector).fadeto() - Απόκρυψη σε ορισμένο opacity $(selector).animation() - Εφαρμογή animation σε επιλεγμένα στοιχεία Σελίδα 26 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Συνδυάζοντας τις δυνατότητες της jquery με τα CSS (στα οποία θα αναφερθούμε στην επόμενη παράγραφο) μπορούμε να δημιουργήσουμε ένα πολύ καλαίσθητο περιβάλλον, λειτουργικό και με όμορφα animations. 3.5 CSS (Cascading Style Sheets) Όπως είδαμε και σε προηγούμενη παράγραφο, η γλώσσα προγραμματισμού ιστοσελίδων και εφαρμογών HTML, χρησιμοποιείται για τη δημιουργία και την περιγραφή στοιχείων σε μια ιστοσελίδα. Όταν ο browser διαβάζει ένα κείμενο σε μια σελίδα, λαμβάνει υπόψη του τα paragraph tags, τα οποία χρησιμοποιούνται για να περιγράψουν αντικείμενα. Ότι βρίσκεται ανάμεσα σε tags, παίρνει την αντίστοιχες ιδιότητες. Μέσω των επιλογέων (selectors) μπορούμε να επικεντρωθούμε σε συγκεκριμένα στοιχεία στην HTML σελίδα και να τους διαμορφώσουμε στυλ. Η σύνταξη μιας CSS εντολής είναι : ΕΠ ΙΛΟ ΓΗ ΑΓΚΥΛΗ ΕΡΩΤΗΜΑΤΙΚΟ ΔΗΛΩΣΗ ΑΓΚΥΛΗ {color:blue; font-size: 12px;} ΙΔΙΟΤΗΤΑ ΤΙΜΗ ΙΔΙΟΤΗΤΑ Εικ 3.4 Σύνταξη Css Επειδή τα tags στην HTML είναι περιορισμένα, τα CSS μας δίνουν τη δυνατότητα να δηλώσουμε τα δικά μας μοναδικά ή μη στοιχεία, και να τους διαμορφώσουμε το στυλ. Αυτό επιτυγχάνεται με τη χρήση division tags της HTML (divs), ID και CLASS. Τα ID και classes είναι διαφορετικά στοιχεία και επιτρέπεται να έχουν το ίδιο όνομα. Τα ID δηλώνουν μοναδικά στοιχεία και είναι ορθότερο να μην εμφανίζουμε το ίδιο στοιχεία πάνω από μια φορά στη σελίδα μας. Αντίθετα, μπορούμε να έχουμε απεριόριστα αντίγραφα κλάσεων μέσα στη σελίδα μας. Το cascading αναφέρεται στο φαινόμενο του καταρράκτη, και ουσιαστικά υποδεικνύει την κληρονομικότητα που έχουν τα στοιχεία των CSS. Οι σύνδεσμοι (links) είναι μακράν τα πιο σημαντικά στοιχεία που υπάρχουν στην HTML, αφού αυτά ουσιαστικά κάνουν τις σελίδες μας διαδραστικές. Επίσης, χρησιμοποιώντας CSS μπορούμε να δώσουμε χρώμα και εικόνα στο παρασκήνιο (background) της σελίδας ή κάποιου στοιχείου της Σελίδα 27 από 61

Κεφάλαιο 4ο Υλοποίηση Σε αυτό το κεφάλαιο θα παραθέσουμε των κώδικα που γράψαμε για τη δημιουργία του web calendar, σχόλια και screenshots της εφαρμογής, οδηγίες εγκατάστασης και κάποιες οδηγίες χρήσεις, παρουσιάζοντας τις δυνατότητες της εφαρμογής μας. 4.1 Εγκατάσταση της εφαρμογής Αρχικά πρέπει να στήσουν έναν local server ώστε να μπορεί να τρέξει η web εφαρμογή μας. Από την ιστοσελίδα www.apachefriends.org κατεβάζουμε την τελευταία έκδοση του XAMPP, ώστε να υποστηρίζει PHP 5.5, στην οποία είναι γραμμένο μέρος της εφαρμογής μας. Το XAMPP είναι ένα πακέτο προγραμμάτων ελεύθερου λογισμικού, ανοιχτού κώδικα και ανεξαρτήτου πλατφόρμας, το οποίο περιέχει τον εξυπηρετητή ιστοσελίδων Http Apache, τη βάση δεδομένων SQL, και διερμηνέα για κώδικα γραμμένο σε γλώσσες προγραμματισμού PHP και Perl, αλλά εξυπηρετεί και δυναμικές ιστοσελίδες τεχνολογίας PHP και MySQL. Όταν το XAMPP εγκατασταθεί στον υπολογιστή διαχειρίζεται το localhost ως απομακρυσμένο κόμβο, ο οποίος συνδέεται με το πρωτόκολλα μεταφοράς αρχείων FTP. Μετά την εγκατάσταση κάνουμε εκκίνηση (start) στα modules «Apache» και «MySQL». Σελίδα 28 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Εικ 4.1 Λειτουργία xampp Στον Apache HTTP Server τρέχει η PHP και αναλαμβάνει την «εξυπηρέτηση» του website που στήνουμε. MySQL είναι η βάση δεδομένων μας, πάνω στην οποία σώζονται τα δεδομένα του «σημειωματάριου» του ημερολογίου καθώς και τα «συμβάντα» των ημερών. Ανοίγουμε τον browser της προτίμησής μας και πηγαίνουμε στη διεύθυνση «http://localhost/phpmyadmin», όπου θα δημιουργήσουμε τη βάση δεδομένων μας και θα εισάγουμε το sql script με το «σχήμα» των πινάκων που χρειαζόμαστε. Y & phpmyad Q localhost/phpmyadmin/ Εικ4.2 Πρόσβαση στο μενού τοπικού server Το phpmyadmin είναι ένα δωρεάν εργαλείο ανοιχτού κώδικα γραμμένο σε PHP με σκοπό να διευκολύνει στη διαχείριση βάσεων MySQL με τη χρήση web browser. Μπορεί να πραγματοποιήσει διάφορες λειτουργίες όπως δημιουργία, μορφοποίηση και διαγραφή βάσεων δεδομένων, πινάκων και πεδίων, εκτελώντας εντολές SQL. Πατάμε πάνω στο πλήκτρο «databases» phpmyadmin ώ u a m fs 9 y sql S ta tu s ISS U se rs E x p o rt Im p o rt S e ttin g s S y n c h ro n iz e General Settings Εικ4.3Βάσεις δεδομένων στον τοπικού server Κι έπειτα στην εισαγωγή νέας βάσης δεδομένων, βάζουμε για όνομα της βάσης «calendar», collation «utf8_general_ci» και πατάμε «create». Σελίδα 29 από 61

Κεφάλαιο 4ο 127.0.0.1 L.J Databases Ο SQL Status h_=j Users Q Export Θ Import Databases W Create database ^ calendar utfb_general_ci T Create Εικ4.4Βάσεις δεδομένων στον τοπικού server Αφού δημιουργηθεί η βάση, την επιλέγουμε από το μενού αριστερά και πατάμε το πλήκτρο «import». Αφού ανοίξει το μενού import Πατάμε στο «Επιλογή αρχείου» και βρίσκουμε το αρχείο calendar.sql μέσα στο φάκελο _setup\database του project και πατάμε το πλήκτρο Go. Σελίδα 30 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Εικ4.4 Import Βάσεως δεδομένων στον τοπικού server 4.2 Παρουσίαση της διεπαφής του ημερολογίου Γράφοντας http://localhost/calendar στον browser, μπαίνουμε στο project. Αν γνωρίζουμε την IP του υπολογιστή που τρέχει το project μπορούμε να έχουν πρόσβαση κι από άλλο υπολογιστή που βρίσκεται στο ίδιο δίκτυο, χρησιμοποιώντας αντί για localhost την IP. Πχ http://192.168.1.155/calendar. Με επιπλέον ρυθμίσεις στο δίκτυο μας μπορούμε να βγάλουμε το project live και στο internet. Δ ευ τέρ α Τ ρ ίτη Τ ετά ρ τη Π έμ π τη Π α ρ α σ κ ευ ή Σ ά β β α τ ο Κ υ ρ ια κ ή 28 29 30 1 2 3 4 Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α Σ υ μ β ά ν τ α 0 0 0 0 0 0 5 6 7 8 9 Το Σ υ μ β ά ν τ α 0 Σ υ μ β ά ν τ α 0 Σ υ μ β ά ν τ α 0 Σ υ μ β ά ν τ α 0 Σ υ μ β ά ν τ α 0 Σ υ μ β ά ν τ α 0 1 1 L U Σελίδα 31 από 61

Κεφάλαιο 4ο Εικ4.5 Διεπαφή ημερολογίου Αυτή είναι η κεντρική οθόνη της εφαρμογής μας, στο πάνω μέρος τις οποίας υπάρχει μια κεφαλίδα με το όνομα της εφαρμογής και του σχεδιαστή. Όπως απεικονίζεται στο παραπάνω σχήμα, με κίτρινο χρώμα απεικονίζονται οι μέρες του μήνα που έχουν περάσει, με κόκκινο χρώμα η τρέχουσα μέρα ενώ με πράσινο χρώμα οι μέρες του μήνα που ακολουθούν κι απομένουν. Με πορτοκαλί πλαίσιο σημειώνονται στα Σαββατοκύριακα του μήνα. Από το τμήμα Σελίδα 32 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας μπορούμε να επιλέξουμε σε dropdown λίστα το μήνα που χρόνου που μας ενδιαφέρει καθώς και το έτος, πληκτρολογώντας στο αντίστοιχο πεδίο. Τα βέλη μας διευκολύνουν για μεταφορά στον προηγούμενα ή επόμενο μήνα. Παρατηρούμε ότι στα κουτάκια του ημερολογίου υπάρχει κείμενο που αναφέρεται στον αριθμό των συμβάντων που είναι προγραμματισμένα για τη συγκεκριμένη μέρα. Εικ4.6 Task σε κάθε ημέρα Πατώντας με το ποντίκι πάνω σε οποιαδήποτε μέρα, μεταβαίνουμε στην οθόνη των λεπτομερειών της επιλεγμένης ημέρας. Εικ4.7 Σημειωματάριο ημέρας Σελίδα 33 από 61

Κεφάλαιο 4ο Υπάρχει διαθέσιμο πεδίο συμπλήρωσης κειμένου για τη δημιουργία σημειώσεων που αφορούν την επιλεγμένη μέρα στο πάνω μέρος της οθόνης, και πατώντας στο εικονίδιο με τη δισκέτα, αποθηκεύονται. Σημειωματάριο Ημέρας Παρασκευή - 16-5-2014 Η Ακριβώς από κάτω φαίνονται τα ήδη προγραμματισμένα συμβάντα της τρέχουσας ημέρας. Παρουσιάζεται η ώρα που είναι προγραμματισμένο ένα γεγονός, και λεπτομέρειες για το γεγονός αυτό σε μορφή κειμένου. Για να διαγράψουμε το συμβάν, πατάμε με το ποντίκι πάνω στο εικονίδιο «Χ» κάτω δεξιά. Εικ4.8 Αναφορά ημέρας Στη συνέχεια φαίνεται το πεδίο για την προσθήκη και τον ορισμό νέου συμβάντος. Από δύο dropdown λίστες ορίζουμε την ώρα αρχής και το τέλους του συμβάντος, και από μια τρίτη ακριβώς δίπλα, το είδος της επανάληψης που επιθυμούμε. Στο κενό πεδίο ακριβώς από κάτω εισάγουμε σε μορφή κειμένου λεπτομέρειες για το συμβάν που προγραμματίζουμε. Για την επιβεβαίωση της προσθήκης του νέου συμβάντος, επιλέγουμε με τον ποντίκι το εικονίδιο «+» κάτω δεξιά. Σελίδα 34 από 61

Πτυχιακή εργασία της Πατσιαβουρίδου Μαγδαλένας Εικ 4.9 Προσθήκη συμβάντος 4.3 Αρχεία κώδικα Θα ξεκινήσουμε να παραθέτουμε τον κώδικα από τα πιο σημαντικά αρχεία κατ αρχήν, όπως το DateUtil, γραμμένο σε PHP. Για μεγαλύτερη διευκόλυνση την επεξήγηση του κώδικα έχουμε προσθέσει in-line comments στα αρχεία. Σελίδα 35 από 61

Κεφάλαιο 4ο 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 54 57 Π θ $ /* Η function επιστρέφει το όνομα της ημέρας από την αντιστοιχηση από το ISO-8601 */ public static function getdayname ( SdayOfWeek ) { } /* $index = ltrim (SdayOfWeek, O'); $result = DateUtil::getDaysOfWeek: () [Sindex] ; return $result; H function επιστρέφει έναν πίνακα με τα ονόματα των μηνών */ public static function getmonths() { > /* Smonths[ ] = 'Ιανουάριος'; $months[2] = 'Φεβρουάριος'; Smonths[3] = 'Μάρτιος'; $months[4] = 'Απρίλιος'; $months[5] = Μάιος'; $iconths [o ] = Smonths[ ] = 'Ιούνιος'; Ιούλιος'; Smonths[3] = Αύγουστος'; Smonths[9] = 'Σεπτ έμβριος'; Smonths[2:] = 'Οκτώβριος'; Smonths[_1 ] = 'Νοέμβριος'; Smonths[_2] = 'Δεκέμβριος'; return Smonths; H f u n c t i o n ε π ι σ τ ρ έ φ ε ι τ ο ό ν ο μ α τ ο υ π ί ν α κ α π ο υ ζ η τ ε ί τ α ι */ p u b l i c s t a t i c f u n c t i o n g e tm o n th N a m e ( $ m o n t h I n d e x ) { S i n d e x = l t r i m ( $ m o n t h I n d e x, O ' ) ; S r e s u l t = D a t e U t i l : : g e t M o n t h s ( ) [ $ i n d e x j ; r e t u r n $ r e s u l t ; 65 Η 69 Π 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 /* */ H f u n c t i o n ε π ι σ τ ρ έ φ ε ι τ η ν HTML ε ν ό ς SELECT μ ε ό λ ο υ ς τ ο υ ς μ ή ν ε ς τ ο υ χ ρ ό ν ο, ε π ι λ ε γ μ έ ν ο α υ τ ό ν π ο υ έ χ ε ι π ε ρ α σ τ ε ί ω ς ό ρ ι σ μ α, ό ν ο μ α inputkai ID α υ τ ά π ο υ έ χ ο υ ν π ε ρ α σ τ ε ί σ τ ο α ν τ ί σ τ ο ι χ ο ό ρ ι σ μ α p u b l i c s t a t i c f u n c t i o n g e t M o n t h s S e l e c t B o x ( $ s e l e c t e d M o n t h, S s e l e c t N a m e, $ s e l e c t l d ) { $ m o n th s = D a t e U t i l : : g e t M o n t h s (> ; $ r e s u l t = " < s e l e c t n a m e = \" n. S s e l e c t N a m e. " \" i d = \ n ". S s e l e c t l d. f o r ( $ i = l ; $ i < = s i z e o f ( $ m o n t h s ) ; $ i + + ) { S s e l e c t e d = i f ( S s e l e c t e d M o n t h = $ i ) { S s e l e c t e d = ns e l e c t e d = \ " s e l e c t e d \ " n ; I I > $ r e s u l t. = " < o p t i o n v a l u e = \ " ". $ i. " \" ". S s e l e c t e d. ". $ m o n t h s [ $ i ]. " < / o p t i o n > " ; { > S r e s u l t. = " < / s e l e c t > " ; r e t u r n S r e s u l t ; * H f u n c t i o n ε π ι σ τ ρ έ φ ε ι */ p u b l i c static f u n c t i o n timestampfromdate ( Sdate ) { > /* Stimestamp = s t r t o t i m e ( $ d a t e ) ; return Stimestamp; τ ο t i m e s t a m p τ η ς ο ρ ι σ μ έ ν η ς η μ ε ρ ο μ η ν ί α ς H function επιστρέφει τον α ρ ι θ μ ό ημερών που έχει ο μ ή ν α ς που ζητείται στο Γ ρ η γ ο ρ ι α ν ό ημερολόγιο */ p u b l i c static function n u m b e r O f D a y s I n M o n t h ( $month, Syear ) { } $ n u m = c a l _ d a y s _ i n _ m o n th(cal_gregorian, $ m o n t h, S y e a r ); r e t u r n $num; Σελίδα 36 από 61