joomla! - tei emtdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · •...

93
Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ Joomla!" Δημιουργία εφαρμογής (component) για το νέο Συστήματα Διαχείρισης Περιεχομένου (CMS) του ιστοχώρου του τμήματος Διαχείρισης Πληροφοριών και την ενσωμάτωση της ηλεκτρονικής υπηρεσίας «Τράπεζα Θεμάτων» Χρυσοβαλάντης Στεργιόπουλος (ΑΕΜ: 1156) ΜΑΙΟΣ 2009 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ Λεωνίδας Φραγγίδης Εκπονηθείσα πτυχιακή εργασία απαραίτητη για την κτήση του βασικού πτυχίου

Upload: others

Post on 25-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τ.Ε.Ι. ΚΑΒΑΛΑΣ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ

ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ

ΤΜΗΜΑ

ΔΙΑΧΕΙΡΙΣΗΣ

ΠΛΗΡΟΦΟΡΙΩΝ

Joomla!"

Δημιουργία εφαρμογής (component) για το νέο Συστήματα

Διαχείρισης Περιεχομένου (CMS) του ιστοχώρου του τμήματος

Διαχείρισης Πληροφοριών και την ενσωμάτωση της ηλεκτρονικής

υπηρεσίας «Τράπεζα Θεμάτων»Χρυσοβαλάντης Στεργιόπουλος

(ΑΕΜ: 1156)

ΜΑΙΟΣ 2009

ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ

Λεωνίδας Φραγγίδης

Εκπονηθείσα πτυχιακή εργασία απαραίτητη για την κτήση του βασικού πτυχίου

Page 2: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Το βιβλίο αυτό είναι αφιερωμένο

στην οικογένεια μου,

τους καθηγητές μου και στα άτομα

που με στήριξαν σε όλη την

ακαδημαϊκή μου πορεία

Σελίδα 2 από 93

Page 3: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

ΠρόλογοςΤο διαδίκτυο πλέον έχει εισχωρήσει στην ζωή όλων μας. Πλέον η

κατασκευή μίας ιστοσελίδας δε θεωρείται πολυτέλεια αλλά ανάγκη. Όλο

και περισσότερος κόσμος αναζητεί πληροφορίες στο διαδίκτυο. Είτε

πρόκειται για επαγγελματική είτε για προσωπική χρήση, η ιστοσελίδα

βοηθάει στη γνωριμία μας με όλο τον πλανήτη.

Το Joomla! απευθύνεται σε όλους αυτούς που θέλουν να δημιουργήσουν

την δική τους ιστοσελίδα με εύκολα και γρήγορα βήματα.

Η ιστοσελίδες πλέον, δεν χρησιμοποιούν στατική αλλά δυναμική

τεχνολογία, κάτι που σημαίνει άμεση αλλαγή περιεχομένου και

δυνατοτήτων, το Joomla! θα είναι ο καλύτερος σύμμαχος μας για να το

πετύχουμε αυτό.

Με έξυπνα ενθέματα (modules) που υπάρχουν δωρεάν ή επί πληρωμή

στο διαδίκτυο η ιστοσελίδα μας μπορεί να αναδιαμορφωθεί και οι

δυνατότητες της να είναι πραγματικά απεριόριστες.

Η τράπεζα θεμάτων είναι μία δυναμική εφαρμογή που ο κάθε φοιτητής

μπορεί να αντλήσει εύκολα ότι αναζητά, με απλό και εύχρηστο τρόπο, ενώ

οι διαχειριστές/εισηγητές των εγγραφών δεν χρειάζεται να έχουν γνώσεις

προγραμματισμού ή σχεδίασης ιστοσελίδας.

Σελίδα 3 από 93

Page 4: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

ΠεριεχόμεναΠρόλογος.....................................................................................................3

Πίνακας Εικόνων..........................................................................................7

Κεφάλαιο 1: Εισαγωγή.................................................................................9

Κεφάλαιο 2: Γνωριμία με το Joomla!......................................................... 11

2.1 Εισαγωγή.........................................................................................11

2.2 Χαρακτηριστικά του Joomla!............................................................ 11

2.3 Προδιαγραφές εγκατάστασης του Joomla!...................................... 12

Κεφάλαιο 3: Εργαλεία-Γλώσσες προγραμματισμού που

χρησιμοποιήθηκαν για την κατασκευή της τράπεζας θεμάτων..................13

3.1 Εισαγωγή.........................................................................................13

3.2 PHP.................................................................................................. 13

3.2.1 Πλεονεκτήματα χρήσης PHP.................................................... 14

3.2.2 H PHP και το Joomla!................................................................15

3.3 MySQL............................................................................................. 16

3.3.1 Πλεονεκτήματα χρήσης MySQL................................................ 16

3.3.2 Η χρήση της MySQL στην τράπεζα θεμάτων............................18

3.4 Javascript.........................................................................................19

3.5 AJAX................................................................................................ 19

Κεφάλαιο 4: Η δομή του Joomla!.............................................................. 21

4. 1 Εισαγωγή ..................................................................................... 21

4.2 Ενθέματα (Modules)........................................................................ 22

4.2.1 Ενθέματα ιστότοπου................................................................. 22

4.2.2 Διαχείριση ενθεμάτων............................................................... 23

4.3 Εφαρμογές (Components)............................................................... 27

4.4 Πρότυπα (Templates)...................................................................... 27

Σελίδα 4 από 93

Page 5: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 5: Διαφορές της παλαιάς με την νέα τράπεζα θεμάτων...........28

Κεφάλαιο 6: Εγκατάσταση-Απεγκατάσταση της εφαρμογής «τράπεζα

θεμάτων»...................................................................................................32

6.1 Εγκατάσταση της εφαρμογής.......................................................... 32

6.2 Απεγκατάσταση της εφαρμογής...................................................... 34

Κεφάλαιο 7: Τρόπος εισόδου και τύποι λογαριασμών στην τράπεζα

θεμάτων.....................................................................................................35

7.1 Εισαγωγή.........................................................................................35

7.2 Τρόπος εισόδου...............................................................................36

7.3 Είσοδος χωρίς δικαιώματα.............................................................. 37

7.4 Είσοδος ως φοιτητής....................................................................... 38

7.5 Είσοδος ως καθηγητής.................................................................... 39

7.5.1 Μενού Προβολή-Επεξεργασία-Διαγραφή..................................39

7.5.2 Μενού Νέα εγγραφή.................................................................. 40

7.6 Είσοδος ως διαχειριστής................................................................. 42

7.6.1 Μενού Προβολή-Επεξεργασία-Διαγραφή..................................42

7.6.2 Μενού Προβολή-Επεξεργασία-Διαγραφή Καθηγητών............. 43

7.6.3 Μενού Εισαγωγή καθηγητή-τών...............................................44

8.1 Εισαγωγή.........................................................................................46

8.2 Χρήση εφαρμογής από τους φοιτητές.............................................47

8.3 Χρήση εφαρμογής από τους Καθηγητές..........................................49

8.3.1 Εισαγωγή νέας εγγραφής......................................................... 49

8.2.2 Έλεγχοι και αυτόματες τροποποιήσεις της εφαρμογής...........50

8.3.3 Τροποποίηση και διαγραφή εγγραφής......................................53

8.3.4 Τροποποίηση.............................................................................54

8.3.5 Διαγραφή...................................................................................54

Σελίδα 5 από 93

Page 6: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

8.4 Χρήση εφαρμογής από τον διαχειριστή...........................................56

8.4.1 Τροποποίηση και διαγραφή εγγραφών από όλους τους

καθηγητές...........................................................................................56

8.4.2 Προσθήκη..................................................................................57

8.4.3 Τροποποίηση - Διαγραφή........................................................ 58

8.4.4 Τροποποίηση καθηγητή............................................................ 59

8.4.5 Διαγραφή καθηγητή.................................................................. 60

8.5 Μαζική εισαγωγή καθηγητών........................................................... 61

8.5.1 Περιορισμοί της μαζικής εισαγωγής καθηγητών......................63

8.6 Αυτόματη προσθήκη εξαμήνου........................................................ 65

Κεφάλαιο 9: Επίλογος................................................................................66

Αναφορές...................................................................................................67

Βιβλιογραφία..............................................................................................68

Χρήσιμες διευθύνσεις.................................................................................69

Παράρτημα ............................................................................................... 70

Κώδικας εφαρμογής: ............................................................................ 70

admin_vsbank.php..............................................................................70

search_vsbank.php.............................................................................86

vsbank.php.........................................................................................93

Σελίδα 6 από 93

Page 7: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Πίνακας ΕικόνωνΕικόνα 1 Σελίδα διαχείρισης..................................................................... 32

Εικόνα 2 Σελίδα διαχείρισης με επιλεγμένο το μενού εγκατάστασης.......33

Εικόνα 3 Σελίδα διαχείρισης - Εγκατάσταση νέας εφαρμογής

(component)...............................................................................................33

Εικόνα 4 Επιτυχής εγκατάσταση του component.................................... 34

Εικόνα 5 Μήνυμα απεγκατάστασης εφαρμογής........................................34

Εικόνα 6 Είσοδος χρήστη με συμπληρωμένα τα στοιχεία εισόδου και

μενού ιστοσελίδας......................................................................................36

Εικόνα 7 Προσπάθεια εισόδου στην τράπεζα θεμάτων χωρίς να

υπάρχουν στοιχεία εισόδου...................................................................... 37

Εικόνα 8 Βασική σελίδα αναζήτησης φοιτητή............................................38

Εικόνα 9 Εμφάνιση εγγραφών καθηγητή.................................................. 39

Εικόνα 10 Προσθήκη νέας εγγραφής καθηγητή........................................40

Εικόνα 11 Εμφάνιση όλων των εγγραφών - Είσοδος ως διαχειριστής....42

Εικόνα 12 Εμφάνιση όλων των εισηγητών στον διαχειριστή................... 43

Εικόνα 13 Προσθήκη νέου εισηγητή......................................................... 44

Εικόνα 14 Αποτελέσματα αναζήτησης με κριτήριο στο όνομα του

εισηγητή: ΦΡΑΓΓΙΔΗΣ ΛΕΩΝΙΔΑΣ........................................................... 47

Εικόνα 15 Αποτέλεσμα αναζήτησης χωρίς να επιστρέψει κανένα

αποτέλεσμα................................................................................................48

Εικόνα 16 Προσθήκη νέας εγγραφής στην Τράπεζα θεμάτων από

τον χρήστη ΦΡΑΓΓΙΔΗ ΛΕΩΝΙΔΑ............................................................. 49

Εικόνα 17 Επιτυχής εισαγωγή εγγραφής.................................................. 50

Εικόνα 18 Σφάλμα διπλότυπου αρχείου................................................... 52

Εικόνα 19 Σφάλμα λάθους τύπου ή μεγέθους αρχείου.............................52

Εικόνα 20 Σελίδα εγγραφών με σήμανση στα κουμπιά τροποποίησης

και διαγραφής............................................................................................53

Εικόνα 21 Επεξεργασία εγγραφής............................................................ 54

Εικόνα 22 Μήνυμα επιτυχούς διαγραφής εγγραφής.................................55

Εικόνα 23 Εμφάνιση όλων των εγγραφών στον διαχειριστή της

εφαρμογής με δικαιώματα τροποποίησης και διαγραφής.........................56

Σελίδα 7 από 93

Page 8: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Εικόνα 24 Μέθοδοι εισαγωγής εισηγητών πάνω μονή εισαγωγή και

κάτω μαζική εισαγωγή...............................................................................57

Εικόνα 25 Σελίδα διαχείρισης εισηγητών (πρόσβαση μόνο ο

διαχειριστής)..............................................................................................58

Εικόνα 26 Σελίδα τροποποίησης εισηγητή................................................ 59

Εικόνα 27 Επιτυχής διαγραφή εισηγητή.................................................... 60

Εικόνα 28 Μαζική εισαγωγή καθηγητών από αρχείο ίχί.......................... 61

Εικόνα 29 Αλλαγή κωδικοποίησης χαρακτήρων στο αρχείο εισαγωγής .. 62

Εικόνα 30 Τελική εισαγωγή αρχείου στην εφαρμογή.............................. 62

Εικόνα 31 Μήνυμα επιτυχίας μαζικής εισαγωγής......................................63

Εικόνα 32 Μήνυμα λάθους μαζικής εισαγωγής.........................................64

Εικόνα 33 Μήνυμα ενημέρωσης προσθήκης νέου εξαμήνου................... 65

Διάγραμμα 1 Διάγραμμα οντοτήτων συσχετίσεων της τράπεζας θεμάτων......................................................................................................ΐ8

Σελίδα 8 από 93

Page 9: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 1: Εισαγωγή

Στόχος της πτυχιακής εργασίας είναι η μετατροπή μίας υπάρχουσας

ηλεκτρονικής υπηρεσίας, της τράπεζας θεμάτων, ως εφαρμογή

(component) του Joomla, καθώς και να την εκσυγχρονιστεί με νέες

δυναμικότερες τεχνολογίες, φιλικότερο περιβάλλον, ευκολότερη χρήση

φοιτητών και καθηγητών.

Το Joomla! είναι ένα από τα μεγαλύτερα συστήματα διαχείρισης

περιεχομένου που αυτό είναι σε θέση να δημιουργήσει εύκολα έναν

ιστότοπο με μεγάλη ευκολία και δυνατότητες.

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

Οι στατικές ιστοσελίδες είναι πολύ εύκολες αλλά πολύ δύσκολες στην

ανανέωση τους. Αυτό συμβαίνει γιατί όταν θέλουμε να προσθέσουμε ή να

αλλάξουμε τον περιεχόμενο τους πρέπει να ανοίξουμε το κατάλληλο

πρόγραμμα, να κάνουμε τις αλλαγές που θέλουμε, να αποθηκεύσουμε και

στην συνέχεια να "ανεβάσουμε” στον web server τις νέες σελίδες. Όλα

αυτά προϋποθέτουν γνώσεις περισσότερες από τον μέσο χρήστη και

περισσότερο χρόνο.

Οι δυναμικές σελίδες σε αντίθεση με τις στατικές, δε δημιουργούνται στον

υπολογιστή μας αλλά απ’ ευθείας στον web server. Το Joomla δίνει την

δυνατότητα δημιουργίας δυναμικών ιστοσελίδων αλλά και την δυναμική

διαχείριση τους. Δίνοντας τις κατάλληλες εντολές οι ιστοσελίδες μπορούν

να αλλάξουν, να διαγραφούν ή να προστεθούν νέες. Και όλα αυτά

χρησιμοποιώντας μία φιλική προς τον χρήστη περιοχή διαχείρισης τόσο

απλή όσο μία εφαρμογή επεξεργασίας κειμένου.

Το Joomla δεν απαιτεί γνώσεις προγραμματισμού και δεν χρειάζεται

εφαρμογές εργαλείων δημιουργίας ιστοσελίδων (DreamWeaver,

FrontPage) οι μόνες γνώσεις που χρειάζονται είναι αυτές ενός απλού

επεξεργαστή κειμένου.

Σελίδα 9 από 93

Page 10: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Αυτά όμως ισχύουν για τον τελικό χρήστη, για τους προγραμματιστές του

Joomla! τα πράγματα είναι διαφορετικά. H δημιουργία εφαρμογών στο

Joomla! δεν είναι τόσο απλή, λόγω του τρόπου κατασκευής του, οι εντολές

διαφοροποιούνται για να μπορέσουν να συνεργαστούν με το Joomla!

(API). Αυτό οφείλεται στον τρόπο δημιουργίας του Joomla!, οι ιστοσελίδες

που χρησιμοποιεί, θα πρέπει να είναι "χτισμένες” από μία σειρά εργαλείων

και γλωσσών προγραμματισμού που είναι συμβατές μεταξύ τους.

Οι γλώσσες προγραμματισμού που χρησιμοποιήθηκαν για την κατασκευή

της νέας τράπεζας θεμάτων είναι:

• PHP

• MYSQL

• JAVASCRIPT

AJAX

Αυτές τις γλώσσες καθώς και τον τρόπο κατασκευής θα τις δούμε στα

επόμενα κεφάλαια.

Σελίδα 10 από 93

Page 11: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 2: Γνωριμία με το Joomla!

2.1 ΕισαγωγήTo Joomla! είναι μία δωρεάν εφαρμογή ανοιχτού λογισμικού για την

δημιουργία δυναμικών ιστοσελίδων. Μπορεί να χρησιμοποιηθεί για

ερασιτεχνικές και προσωπικές ιστοσελίδες αλλά και για επαγγελματικές.

Ανήκει στην κατηγορία των συστημάτων διαχείρισης περιεχομένου

(content management system CMS). Είναι γραμμένο σε γλώσσα PHP και

τα δεδομένα αποθηκεύονται σε βάση δεδομένων MySQL.

2.2 Χαρακτηριστικά του Joomla!Το κυριότερο χαρακτηριστικό του Joomla! η μεγάλη ευελιξία στη

δημοσίευση περιεχομένου ενώ είναι το ιδανικότερο σύστημα διαχείρισης

περιεχομένου από αρχάριους χρήστες, Cory Webb (2009). Μερικά από τα

επιπλέον χαρακτηριστικά του Joomla! είναι:

• Ανοιχτός κώδικας

• Μεγάλη κοινότητα χρηστών στο www.joomla.org και στο

www.joomla.gr

• Μεγάλη ευελιξία στη δημοσίευση περιεχομένου

• Διαχειριστής αρχείων για μεταφόρτωση και διαχείριση των αρχείων.

• Πανεύκολο στη χρήση

• Δυνατότητες RSS

• Κάδος ανακύκλωσης για τα αντικείμενα περιεχομένου

• Ειδικός μηχανισμός για τις μηχανές αναζήτησης (SEO)

• Διαχείριση διαφημίσεων

• Πολυγλωσσικότητα

• Δεκάδες πρόσθετες εφαρμογές

• Εύκολη εγκατάσταση εφαρμογών και πρόσθετων

• Πολλά επίπεδα χρηστών

Σελίδα 11 από 93

Page 12: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

• Στατιστικά

• Σύστημα ψηφοφοριών

• Σύστημα αξιολόγησης άρθρων

2.3 Προδιαγραφές εγκατάστασης του Joomla!Το Joomla! είναι εύκολο να εγκατασταθεί σε οποιονδήποτε Η/Υ ή Web

Server, αρκεί να έχει εγκατεστημένα κάποια βασικά προγράμματα. Τα

προγράμματα τα οποία χρειάζεται να υπάρχουν ώστε να εγκατασταθεί το

Joomla σύμφωνα με τον Hanser Verlag (2008) είναι τα ακόλουθα:

• Web server, Apache version 1.13.19 ή μεταγενέστερη ενώ με

κάποιες περαιτέρω παραμετροποιήσεις μπορεί να χρησιμοποιηθεί

και ο Microsoft IIS.

• PHP έκδοση 4.3 ή μεταγενέστερη με υποστήριξη για MySQL

• Βάση δεδομένων MySQL από την έκδοση 3.23.x που να

υποστηρίζει κωδικοποίηση UTF8, συνιστάται έκδοση μετά την

4.1.x.

• Φυλλομετρητής συνιστάται ο Firefox

Σελίδα 12 από 93

Page 13: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 3: Εργαλεία-Γλώσσες

προγραμματισμού που χρησιμοποιήθηκαν για

την κατασκευή της τράπεζας θεμάτων

3.1 ΕισαγωγήΣτο δεύτερο κεφάλαιο θα γνωρίσουμε όλα τα εργαλεία και τις γλώσσες

προγραμματισμού που χρειαζόμαστε ώστε να δημιουργήσουμε μία

εφαρμογή συμβατή με το Joomla! και πώς αυτά χρησιμοποιούνται ώστε

να έχουμε το καλύτερο δυνατό αποτέλεσμα σύμφωνα με το API του

Joomla!

3.2 PHPH PHP είναι μια γλώσσα προγραμματισμού για τη δημιουργία σελίδων

web με δυναμικό περιεχόμενο. Μια σελίδα PHP περνά από επεξεργασία

από ένα συμβατό διακομιστή του Παγκόσμιου Ιστού (π.χ. Apache), ώστε

να παραχθεί σε πραγματικό χρόνο το τελικό περιεχόμενο, που θα σταλεί

στο πρόγραμμα περιήγησης των επισκεπτών σε μορφή κώδικα HTML,

David Viney (2008).

Ένα αρχείο με κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση

(π.χ. *.php, *.php4, *phtml κ.ά.). Η ενσωμάτωση κώδικα σε ένα αρχείο

επέκτασης .html δεν θα λειτουργήσει και θα εμφανίσει στον browser τον

κώδικα χωρίς καμία επεξεργασία, εκτός αν έχει γίνει η κατάλληλη ρύθμιση

στα MIME types του server.

Επίσης ακόμη κι όταν ένα αρχείο έχει την επέκταση .php, θα πρέπει ο

server να υποστηρίζει την επεξεργάζεται κώδικα PHP. Ο διακομιστής

Apache, που χρησιμοποιείται σήμερα ευρέως σε συστήματα με τα

λειτουργικά συστήματα Linux και Microsoft Windows, υποστηρίζει εξ

ορισμού επεξεργασία κώδικα PHP, Hanser Verlag (2008).

Σελίδα 13 από 93

Page 14: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

3.2.1 Πλεονεκτήματα χρήσης PHP

Το βασικό πλεονέκτημα της PHP είναι ότι λειτουργεί δυναμικά, τα

αποτελέσματα που παράγει, αλλάζουν σύμφωνα με τις ανάγκες του

χρήστη ενώ ο δυναμικός τρόπος λειτουργίας εφαρμόζεται ακόμα και μέσα

στο εσωτερικό της PHP, James Kennard (2007).

Μερικά ακόμη πλεονεκτήματα:

• Έχει τη δυνατότητα να αλλάζει τον τύπο των μεταβλητών δυναμικά,

σύμφωνα με τα δεδομένα που κάθε χρονική στιγμή είναι

αποθηκευμένα σε αυτές.

• Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων

• Έχει ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες

διαδικασίες διαδικτύου

• Ευκολία μάθησης και χρήσης. Η σύνταξη της Php βασίζεται σε

άλλες γλώσσες προγραμματισμού, βασικά στη C και στην Perl

• Φορητότητα - Είναι διαθέσιμη για πολλά λειτουργικά συστήματα

• Διαθεσιμότητα του κώδικα προέλευσης

• Παρέχεται δωρεάν

Σελίδα 14 από 93

Page 15: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

3.2.2 H PHP και το Joomla!

Όπως είπαμε και στην προηγούμενη ενότητα η PHP για να μπορέσει να

εκτελεστεί σωστά διαφοροποιείτε όταν αυτή είναι σε μία εφαρμογή του

Joomla! έτσι για να είναι σωστή η σύνταξη των εντολών θα πρέπει να ο

κώδικας μας να είναι γραμμένος σύμφωνα με τα πρότυπα (API) του

Joomla! James Kennard (2007)

Για να γίνει πιο κατανοητό αυτό θα δούμε ως παράδειγμα την εκτέλεση

μίας εντολής MySQL από την συμβατή php και πώς αυτή πρέπει να

διαμορφωθεί ώστε να είναι σύμφωνη με το API του Joomla!

Εντολές php

$query = "SELECT * FROM record WHERE rjd= '$rjd "';

$result = mysql_query($query);

$row = mysql_fetch_array($result);

$r_id = $row['r_id'];

$record_date = $row['record_date'];

Εντολές php-joomla

$query = "SELECT * FROM #__vsb_record WHERE r_id =

".$recordjd."";

$database->setQuery( $query );

$rows = $database->loadObjectList();

foreach ($rows as $row) {

$r_id = $row->r_id;

$record_date = $row->record_date;

Σελίδα 15 από 93

Page 16: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

3.3 MySQL

Η MySQL είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων

(relational database management system). Η MySQL είναι ένα πολύ

γρήγορο και δυνατό , σύστημα διαχείρισης βάσεων δεδομένων , Adhicipta

R. Wirawan (2009).

Μια βάση δεδομένων σας επιτρέπει να αποθηκεύετε , να αναζητάτε , να

ταξινομείτε και να ανακαλείτε τα δεδομένα αποτελεσματικά . Ο MySQL

διακομιστής ελέγχει την πρόσβαση στα δεδομένα σας , για να μπορούν να

δουλεύουν πολλοί χρήστες ταυτόχρονα, για να παρέχει γρήγορη

πρόσβαση και να διασφαλίζει ότι μόνο πιστοποιημένοι χρήστες μπορούν

να έχουν πρόσβαση , Yuhefizar (2009). Συνεπώς η MySQL είναι ένας

πολυνηματικός διακομιστής πολλαπλών χρηστών. Χρησιμοποιεί την SQL (

Structured Query Language ) την τυπική γλώσσα ερωτημάτων για βάσεις

δεδομένων, παγκόσμια , Tessa Blakeley Silver (2007)..

Με τη χρήση της MySQL είναι εύκολη η πρόσβαση σ' αυτές τις

πληροφορίες χρησιμοποιώντας μια γλώσσα συγγραφής σεναρίων στην

πλευρά του διακομιστή (server-side scripting languages), όπως είναι η

PHP.

3.3.1 Πλεονεκτήματα χρήσης MySQL

• Είναι ένα πολύ γρήγορο και δυνατό σύστημα διαχείρισης βάσεων

δεδομένων

• Ο MySQL διακομιστής ελέγχει την πρόσβαση στα δεδομένα, για να

μπορούν να δουλεύουν πολλοί χρήστες ταυτόχρονα

• Μπορούν να υπάρχουν ταυτόχρονα περισσότερες από μια

συνδέσεις με τη βάση χωρίς να υπάρχουν πολλαπλά αντίγραφά

της, όπως συμβαίνει με άλλα συστήματα βάσεων δεδομένων

• Η απόδοσή της είναι καλύτερη σε μεγαλύτερο όγκο δεδομένων

Σελίδα 16 από 93

Page 17: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

• Είναι πιο κατάλληλη για χρήση στο Internet

• Παρέχει ευκολίες στο backup

• Είναι ιδιαίτερα βελτιωμένη σε ταχύτητα για την ανάκτηση

δεδομένων

• Είναι συμβατή και μεταφέρσιμη σε διάφορες πλατφόρμες και για

διάφορα εργαλεία ανάπτυξης

• Παρέχεται δωρεάν

• Η MySQL είναι λογισμικό ανοιχτού κώδικα.

Σελίδα 17 από 93

Page 18: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

3.3.2 Η χρήση της MySQL στην τράπεζα θεμάτων

Η τράπεζα θεμάτων χρησιμοποιεί την MySQL ώς βάση δεδομένων που

εκεί αποθηκεύονται όλα τα δεδομένα. Οι εξουσιοδοτημένοι χρήστες της

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

αποθηκεύουν αρχεία στον υπεύθυνο διακομιστή. Τα οποία εμφανίζονται

αργότερα με την μορφή αποτελεσμάτων στους χρήστες της εφαρμογής.

Ή δομή της βάσης δεδομένων που έχει δημιουργηθεί να την λειτουργία

της εφαρμογής παρουσιάζεται στο παρακάτω διάγραμμα οντοτήτων

συσχετίσεων.

3 0 jo s v s b le s s o n s8 l_d : in t ( l l ) unsigned

lessons name ' ’ 'varchar(100}

r jd : int(lOO) unsigned

Si f_name : char(5Q) if1 l_name : ctiar(50)8 id_user : smallint(5) unsigned

8 permanent : tinyin t(l)D record_shared : varchar(lO)

ao jo s v s b s e m e s te r8 s_id : in t ( l l ) unsigned f D semester. varchar(lOO)

ao jo s v s b p ro o d o i8 p_id : in t ( l l ) unsigned lH p_name : varchar(lOO)____

rarchar(50)

0 record date : dateD record_lesson : varchar(lOO)

ios vsb teachers I record teacher : varcharl'100)8 id : smallint(5) unsigned ID record second teacher .'archar(lOO)

D record_semester : varchar(20)I’D record type : varcharl'20)ID record_proodos : varchar(20)

8 id_teacher_level : tinyint(3) unsigned =rcrD record description : varcharl'300}

ao jo s u s e rs8 id : in t i l l )i 1 name : varchar(SO)D username : varchar(25)D email : varcharf 100)D password : varcharf 100]I 1 usertype : varchar(25)8 block : tinyint(4)8 sendEmail : tinyint(4)8 gid : tinyintl.3) unsigned0 registerDate : datetime

lastvsitDate : datetimeD activation : varchar(l00]

ΡϊΓ='"Ξ : := -

Διάγραμμα 1 Διάγραμμα οντοτήτων συσχετίσεων της τράπεζας θεμάτων

Σελίδα 18 από 93

Page 19: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

3.4 JavascriptΗ JavaScript είναι μια μικρή και εύκολη στην εκμάθησή της γλώσσα

σεναρίων (scripting language) η οποία επεκτείνει τη δράση της γλώσσας

HTML, η JavaScript δημιουργήθηκε το 1995 από τον Brendan Eich της

εταιρείας Netscape Communications με την βοήθεια της εταιρείας Sun

Microsystems, Brandon Dawson, Tom Canavan (2008).

Το αρχικό όνομα της γλώσσας ήταν Livescript αλλά για εμπορικούς

λόγους μετονομάστηκε σε JavaScript. Ο τίτλος JavaScript δημιουργεί

κάποια σύγχυση επειδή παραπέμπει στην Java, με την οποία δεν

υπάρχει καμία σχέση.

Η δημιουργία εφέ εναλλαγής εικόνων (rollovers), η προβολή διαφανειών

(slide shows) , τα "μπισκότα” (cookies) κ.α. ,έχουν καταστήσει την

JavaScript δημοφιλή παγκοσμίως μεταξύ των κατασκευαστών

ιστοσελίδων, Dan Rahmel (2008). Με τη χρήση της JavaScript ,οι

ιστοσελίδες αποκτούν δυναμική εμφάνιση και γίνονται πιο

αλληλεπιδραστικές με τον χρήστη.

Οι εφαρμογές αυτές μπορούν να εκτελούνται είτε στο πρόγραμμα

περιήγησης του χρήστη ,είτε σε ένα διακομιστή του Διαδικτύου. Για να

μπορεί ένα πρόγραμμα περιήγησης να εκτελέσει ένα σενάριο γραμμένο σε

JavaScript πρέπει να διαθέτει έναν ερμηνευτή (JavaScript Interpreter). Το

σενάριο της JavaScript ενσωματώνεται στον κώδικα HTML της

ιστοσελίδας. Τα πιο σημαντικά από τα προγράμματα περιήγησης με

ενσωματωμένο ερμηνευτή JavaScript είναι ο Internet Explorer ,o Mozilla

Firefox και το Opera, James Kennard (2007).

3.5 AJAXH A.J.A.X είναι μια προγραμματιστική τεχνική του web που συνδυάζει

υπάρχουσες τεχνολογίες [JavaScript και XML] ώστε να καταστήσει την

επικοινωνία client - server πιο άμεση και τις σελίδες που το

χρησιμοποιούν πιο ζωντανές, Tim Schürmann (2007).

Σελίδα 19 από 93

Page 20: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Το κύριο χαρακτηριστικό μιας web σελίδας που χρησιμοποιεί A.J.A.X. είναι

η άμεση ενημέρωση της με νέο περιεχόμενο χωρίς να χρειάζεται να

ξαναφορτωθεί εξ ολοκλήρου.

Επίσης, η AJAX χρησιμοποιεί τεχνολογίες:

• XHTML και CSS για σχεδιαστικούς λόγους ( Αντί XHTML μπορεί να

χρησιμοποιεί και XML ανάλογα με την υλοποίηση )

• Το DOM ( Document Object Model ) μέσω της JavaScript για την

δυναμική αναπαράσταση των πληροφοριών.

• Το αντικείμενο XMLHttpRequest που απαιτείται για την ασύγχρονη

επικοινωνία του client με τον server

Σελίδα 20 από 93

Page 21: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 4: Η δομή του Joomla!

4. 1 ΕισαγωγήΤα κυριότερα δομικά χαρακτηριστικά του Joomla όπως αναφέρονται από

τον Dan Rahmel (2009) είναι:

1. Δημόσιο τμήμα (Front End)

2. Περιοχή διαχείρισης (Back End)

3. Μενού

4. Εφαρμογές (Components)

5. Ενθέματα (Modules)

6. Πρόσθετα (plug-ins)

Το δημόσιο τμήμα είναι στην ουσία αυτό που βλέπει ο τελικός χρήστης.

Μέσα στο δημόσιο τμήμα βρίσκονται τα άρθρα, τα μενού και γενικά όλα τα

στοιχεία που θέλουμε να εμφανίζονται στην ιστοσελίδα, James Kennard

(2007).

Η περιοχή διαχείρισης είναι το «εργαστήριο» του Joomla. Μέσα από την

περιοχή διαχείρισης ο διαχειριστής μπορεί να προσθέτει περιεχόμενο, να

εμφανίζει ή να αποκρύπτει στοιχεία, να δημιουργεί χρήστες και γενικά να

εκμεταλλεύεται όλες τις δυνατότητες του Joomla.

Το μενού είναι τα αντικείμενα με τα οποία ο χρήστης μπορεί να πλοηγείται

στην ιστοσελίδα. Μπορεί να είναι οριζόντια ή κατακόρυφα. Τα μενού

δημιουργούνται δυναμικά και συνδέονται με αντικείμενα του Joomla

(ενότητες, κατηγορίες, άρθρα). Σε μία ιστοσελίδα Joomla ο διαχειριστής

έχει την δυνατότητα να δημιουργήσει όσα μενού επιθυμεί.

Σελίδα 21 από 93

Page 22: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Οι εφαρμογές χρησιμοποιούνται για να μπορεί το Joomla να επεκτείνεται,

άλλες είναι εμπορικές και άλλες ελεύθερης διανομής εφαρμογές. Μερικές

από αυτές είναι εφαρμογές για e-shop, για gallery φωτογραφιών και για e­

learning.

Τα ενθέματα είναι τα "κουτιά" μέσα στα οποία εμφανίζεται το περιεχόμενο,

οι εφαρμογές, τα πρόσθετα και γενικά όλα τα αντικείμενα που

εμφανίζονται στο Δημόσιο τμήμα, Μαρκατσέλας Μανώλης (2008).

Τα πρόσθετα είναι κομμάτια κώδικα τα οποία εκτελούν κάποιες ειδικές

λειτουργίες. Πχ ένα πρόσθετο είναι η μηχανή αναζήτησης που έχει το

Joomla για να μπορεί ο χρήστης να αναζητεί περιεχόμενο μέσα στην

ιστοσελίδα μας Cory Webb (2009).

4.2 Ενθέματα (Modules)

4.2.1 Ενθέματα ιστότοπου

Τα ενθέματα είναι τα αντικείμενα μέσα στα οποία μπορούν να

εμφανίζονται πληροφορίες. Η θέση τους καθορίζεται από το αρχείο

index.php του επιλεγμένου template ενώ το στυλ της εμφάνισης τους από

το αρχείο css του template, Chris Davenport (2009).

Κάθε ένθεμα πρέπει να έχει μοναδικό όνομα ώστε να μην μπερδεύεται με

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

ψηφοφορίες, άλλες εφαρμογές ή περιεχόμενο κατ' επιλογήν.

Μπορούν να δημιουργηθούν αντίγραφα ενθεμάτων και να τοποθετηθούν

σε διαφορετικά σημεία στον ιστότοπο. Επίσης μέσα από τη διαχείριση και

τις παραμέτρους μπορεί να οριστεί πότε θα εμφανίζονται καθώς και σε

ποιους.

Σελίδα 22 από 93

Page 23: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

4.2.2 Διαχείριση ενθεμάτων

Για να μπορέσουμε να διαχειριστούμε τα ενθέματα που έχουμε

εγκατεστημένα στην ιστοσελίδα επιλέγουμε από το μενού Επεκτάσεις ->

Διαχείριση ενθεμάτων. Στη γραμμή εργαλείων υπάρχουν τα κουμπιά

εντολών:

• Ενεργοποίηση: Επιλέγοντας το ένθεμα που θέλουμε και πατώντας

το κουμπί Ενεργοποίηση, το ένθεμα αυτό γίνεται ορατό στον

ιστότοπο μας.

• Απενεργοποίηση: Επιλέγοντας το ένθεμα που θέλουμε και

πατώντας το κουμπί Απενεργοποίηση, το ένθεμα αυτό παύει τη

δημοσίευση του στον ιστότοπο.

• Αντιγραφή: Την επιλογή αυτή τη χρησιμοποιούμε όταν θέλουμε να

αντιγράψουμε ένα ένθεμα. Επιλέγουμε το ένθεμα που θέλουμε και

πατάμε το κουμπί Αντιγραφή. Το ένθεμα αντιγράφεται αλλά εξ'

ορισμού είναι απενεργοποιημένο. Διαγραφή: Κάποιο ένθεμα που δε

χρειαζόμαστε και δε θέλουμε να εμφανίζεται στον ιστότοπο μας

μπορούμε να το μετακινήσουμε στα απορρίμματα. Πολλές φορές

μπορεί να μην χρειαστεί να το κάνουμε αφού και η απόσυρση του

ενθέματος στην ουσία έχει τα ίδια αποτελέσματα.

• Επεξεργασία: Την επιλογή αυτή τη χρησιμοποιούμε όταν θέλουμε

να αλλάξουμε τις ιδιότητες ενός ενθέματος.

• Νέο: Δημιουργία νέου ενθέματος.

• Βοήθεια: On-line βοήθεια σχετικά με την ενότητα.

Στον πίνακα με τις επιλογές διαχείρισης ενθεμάτων βλέπουμε τις εξής

στήλες:

Σελίδα 23 από 93

Page 24: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

• #: Ο αύξων αριθμός του ενθέματος.

• Ο: Πλαίσιο επιλογής του ενθέματος για μετέπειτα επεξεργασία.

• Όνομα Ενθέματος: Είναι το όνομα του ενθέματος έτσι όπως

εμφανίζεται στον ιστότοπο. Εάν κάνουμε κλικ πάνω στο όνομα

ενεργοποιούν την κατάσταση επεξεργασίας.

• Ενεργοποιημένο: Ενθέματα που είναι δημοσιευμένα. Μπορούμε

να αλλάξουμε την κατάσταση τους κάνοντας κλικ πάνω στο

εικονίδιο.

• Ταξινόμηση: Στην ταξινόμηση και χρησιμοποιώντας τα βελάκια

πάνω και κάτω μπορούμε να ορίσουμε την σειρά εμφάνισης των

ενθεμάτων. Δηλαδή ποιο θα φαίνεται πρώτο, δεύτερο κ.λπ. Αφού

επιλέξουμε την σειρά που θέλουμε κάνουμε κλικ στο εικονίδιο της

δισκέτας που βρίσκεται δίπλα στη λέξη ταξινόμηση ώστε να

αποθηκευτεί.

• Επίπεδο Πρόσβασης: Εδώ βλέπουμε σε ποιο επίπεδο

πρόσβασης θα είναι ορατό το ένθεμα. Δημόσιο σημαίνει ότι θα είναι

ορατό από όλους.

• Θέση: Εδώ βλέπουμε τη θέση που θα έχει το ένθεμα μας μέσα στο

template.

• Σελίδες: Εδώ φαίνεται σε ποιες σελίδες του ιστότοπου μας θα είναι

ορατό το ένθεμα.

• Είδος: Εδώ βλέπουμε το είδος του ενθέματος και σε τι αντιστοιχεί.

• Α/Α Στοιχείου: Ο αύξων αριθμός που δίνεται στο ένθεμα μενού

από το Joomla.

• Εμφάνιση: Μέσα από αυτή τη λίστα επιλέγουμε τον αριθμό των

ενθεμάτων που θέλουμε να εμφανίζονται σε μία οθόνη.

Στην ίδια περιοχή της εμφάνισης βλέπουμε και τις εξής επιλογές:

Σελίδα 24 από 93

Page 25: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

• Κουμπί Έναρξη: Μας μεταφέρει στην πρώτη σελίδα των

ενθεμάτων.

• Κουμπί Προηγούμενο: Μας μεταφέρει στην προηγούμενη σελίδα

των ενθεμάτων από αυτή που βρισκόμαστε.

• Αριθμοί σελίδων: Πατώντας σε κάποιον από αυτούς τους

αριθμούς μας μεταφέρει και στην αντίστοιχη σελίδα ενθεμάτων.

• Κουμπί Επόμενο: Μας μεταφέρει στην επόμενη σελίδα των

ενθεμάτων από αυτή που βρισκόμαστε.

• Κουμπί Τέλος: Μας μεταφέρει στην τελευταία σελίδα των

ενθεμάτων.

• Φίλτρο: Πληκτρολογούμε μία λέξη ή περισσότερες μέσα στο πεδίο

και πατάμε το κουμπί Μετάβαση για να φιλτράρουμε τις εγγραφές

και να μας εμφανίσει μόνο αυτές που πληρούν τα κριτήρια που

έχουμε θέσει. Πατάμε το κουμπί επαναρύθμιση ώστε να

επανεμφανιστούν όλες οι εγγραφές.

• Επιλέξτε Πρότυπο: Φίλτρο το οποίο εμφανίζει τις εγγραφές

ανάλογα με το πρότυπο που έχουμε επιλέξει.

• Επιλέξτε Θέση: Φίλτρο το οποίο εμφανίζει τις εγγραφές ανάλογα

με τη θέση που έχουμε επιλέξει.

• Επιλέξτε Είδος: Φίλτρο το οποίο εμφανίζει τις εγγραφές ανάλογα

με το είδος που έχουμε επιλέξει.

• Επιλέξτε Κατάσταση: Φίλτρο το οποίο εμφανίζει τις εγγραφές

ανάλογα με την κατάσταση που έχουμε επιλέξει.

Κοινές παράμετροι για όλα τα ενθέματα

• Τίτλος: Ε ίναι ο τίτλος του ενθέματος που θα εμφανίζεται στον

ιστότοπο

Σελίδα 25 από 93

Page 26: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

• Εμφάνισε Τίτλο: Επιλέγουμε εάν θα εμφανίσουμε τον παραπάνω

τίτλο.

• Ενεργοποιημένο: Επιλέγουμε την ενεργοποίηση του ή όχι.

• Θέση: Επιλέγουμε τη θέση του ενθέματος μέσα στο template.

• Ταξινόμηση: Εδώ μπορούμε να καθορίσουμε την ταξινόμηση των

ενθεμάτων

• Επίπεδο Πρόσβασης: Ορίζουμε σε ποιους χρήστες θα είναι ορατό

το ένθεμα.

• Α/Α: Ε ναι ο αριθμός που δίνει στο ένθεμα το Joomla.

• Σύνδεση Μενού: Εδώ ορίζουμε σε ποιες σελίδες μέσω των μενού

θα είναι ορατό το ένθεμά μας.

• Όλα: Θα εμφανίζεται σε όλες τις σελίδες.

• Κανένα: Δε θα εμφανίζεται πουθενά.

• Επιλογή Στοιχείου/ων Μενού από τη Λίστα: Επιλέγουμε εμείς

που θέλουμε να εμφανίζεται. Με τη χρήση του πλήκτρου Ctrl

μπορούμε να κάνουμε πολλαπλές επιλογές.

• Προσωρινή Αποθήκευση: Επιλέγουμε εάν θέλουμε να

αποθηκεύονται προσωρινά το περιεχόμενο του ενθέματος.

• Χρόνος Προσωρινής Αποθήκευσης: Χρόνος που μεσολαβεί

μέχρι την επόμενη προσωρινή αποθήκευση.

Σελίδα 26 από 93

Page 27: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

4.3 Εφαρμογές (Components)Οι εφαρμογές εγκαθίστανται ξεχωριστά από την αρχική εγκατάσταση του

Joomla, οι εφαρμογές είναι γραμμένες σε php αλλά χρησιμοποιούν το API

του Joomla και έτσι μπορούν να είναι συμβατές με αυτό, Michelle M.

Griffin (2008).

Τα components είναι συνήθως εφαρμογές που δημιουργούνται από

τρίτους κατασκευαστές και ο χρήστης έχει την ευθύνη εάν η λειτουργία

τους είναι επιβλαβής για το υπόλοιπο ιστοχώρο ή εάν πραγματικά

λειτουργούν ως εργαλεία.

Αυτές οι εφαρμογές πωλούνται, μέσω internet από διάφορες εταιρίες ή

ιδιώτες που παράγουν λογισμικό, ή δύνονται για δωρεάν χρήση. Πολλές

φορές υπάρχουν δύο εκδόσεις των εφαρμογών μία επαγγελματική η οποία

πωλείτε και μία δωρεάν με λιγότερες φυσικά δυνατότητες.

Ο τρόπος εγκατάστασης και διαχείρισης ενός component είναι ίδιος με

αυτό των modules.

Εδώ θα πρέπει να σημειωθεί πως τα components είναι αυτά που κάνουν

το Joomla! τόσο εύχρηστο και μοναδικό, ο χρήστης έχει στην επιλογή του

χιλιάδες components για οποιαδήποτε χρήση.

4.4 Πρότυπα (Templates)Τα πρότυπα χρησιμεύουν για να διαχωριστεί το περιεχόμενο από την

εμφάνιση. Στα πρότυπα ορίζονται τα χρώματα, η θέση των ενθεμάτων, και

γενικά όλη η σχεδίαση της ιστοσελίδας, Hagen Graf (2008).

Τα πρότυπα επίσης, είναι αυτά που δίνουν την διαφορετική δομή των

ιστοσελίδων που είναι κατασκευασμένες με το Joomla! και είναι αυτά που

παίζουν το σημαντικότερο ρόλο στην παρουσίαση της ιστοσελίδας, Chris

Davenport (2009).

Σελίδα 27 από 93

Page 28: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Τα πρότυπα πωλούνται ή είναι ελεύθερα για χρήση σε διάφορες

τοποθεσίες λογισμικού στο ίπίθηθί και συνήθως κατασκευάζονται από

γραφίστες.

Κεφάλαιο 5: Διαφορές της παλαιάς με την νέα

τράπεζα θεμάτων

Η νέα τράπεζα θεμάτων του τμήματος χρησιμοποιεί την τεχνολογία του

Joomla! για τις λειτουργίες του, αυτό σημαίνει πως όλες οι διεργασίες του

προγράμματος γίνονται με απόλυτη συμβατότητα με το υπόλοιπο

ιστοχώρο.

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

όπως αναφέρονται παρακάτω:

1. Βελτίωση ονοματολογίας αρχείων με την αυτόματη αλλαγή του

ονόματος του αρχείου σε λατινικούς χαρακτήρες.

2. Εμφάνιση 2ου εισηγητή στη ίδια γραμμή

3. Φιλικότερο περιβάλλον διαχείρισης

4. Εισαγωγή ημερομηνίας μέσω ημερολογίου

5. Άμεση και εύκολη εγγραφή-διαχείριση-διαγραφή εγγραφών

6. Αυτόματη προσθήκη εξαμήνων

7. Μαζική εισαγωγή εισηγητών

8. Εισαγωγή συμπιεσμένων αρχείων rar

9. Δέσμευση στους τύπους και στο μέγεθος αρχείων για αποτροπή

κακόβουλης χρήσης του προγράμματος

10. Η νέα τράπεζα θεμάτων μπορεί να εγκατασταθεί σε οποιοδήποτε

site που χρησιμοποιεί την τεχνολογία του Joomla!

Σελίδα 28 από 93

Page 29: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Πιο αναλυτικά,

Με την βελτίωση της ονοματολογίας των αρχείων, πετυχαίνουμε

μετατροπή του ονόματος των αρχείων με λατινικούς χαρακτήρες, έτσι

λύνετε το πρόβλημα των ελληνικών ονομάτων των αρχείων που

προκαλούσε το αδύνατο downloading των αρχείων.

Η εμφάνιση και του δεύτερου εισηγητή σε μία γραμμή μας δίνει την

δυνατότητα στις αναζητήσεις των φοιτητών, αλλά και στην λίστα εγγραφών

των εισηγητών να έχουν πιο συμπυκνωμένα τα δεδομένα ώστε να είναι

πιο εύκολα αναγνώσιμα και η εμφάνιση αυτών θα είναι πιο εύκολη.

Με τον όρο φιλικότερο περιβάλλον διαχείρισης εννοείτε η ευκολότερη

μετατροπή των δεδομένων ενώ τα γραφικά την σελίδας διαχείρισης είναι

πιο ξεκούραστα για τον χρήστη.

Η ημερομηνία στην νέα τράπεζα θεμάτων καταχωρείτε μέσω javascript

ημερολογίου, όπου ο χρήστης όταν ξεκινά μία νέα εγγραφή δεν χρειάζεται

να καταχωρεί απ' ευθείας την ημερομηνία αλλά η εισαγωγή της γίνεται αυτόματα κάνοντας κλικ στην ημερομηνία από το ημερολόγιο.

Μέσω της ενοποιημένης σελίδας διαχείρισης εγγραφών η επεξεργασία

της κάθε εγγραφής γίνεται πολύ πιο εύκολα από την παλαιά τράπεζα

θεμάτων, ενώ έχουν προστεθεί επιβεβαιωτικά μηνύματα και γραφικά για

πιο άμεση χρήση της εφαρμογής.

Η εφαρμογή έχει την δυνατότητα να προσθέτει αυτόματα το τρέχων

εξάμηνο, σύμφωνα με την τρέχουσα ημερομηνία του server προσθέτει το

Σελίδα 29 από 93

Page 30: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

εξάμηνο, αυτό γίνεται αυτόματα 2 φορές τον χρόνο, μία στις 01/03 που

ξεκινά το εαρινό εξάμηνο και μία στις 01/10 που ξεκινά το χειμερινό

εξάμηνο, έτσι ο διαχειριστής δεν πρέπει να ελέγχει εάν το εξάμηνο υπάρχει

στην βάση και εάν δεν υπάρχει να το καταχωρεί αφού αυτό γίνετε

αυτόματα.

Με την μαζική εισαγωγή καθηγητών μπορούμε να περάσουμε στην

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

μέσα σε αυτό θα υπάρχουν τα ονόματα και τα χαρακτηριστικά των

καθηγητών προς εισαγωγή.

Ένα άλλο πλεονέκτημα της νέας εφαρμογής της τράπεζας θεμάτων είναι η

εισαγωγή και η χρήση συμπιεσμένων αρχείων rar, κάτι που στην

παλαιά τράπεζα θεμάτων δημιουργούσε πρόβλημα και δεν άφηνε τα

αρχεία να γίνουν download από τους χρήστες της εφαρμογής.

Επίσης στη τράπεζα θεμάτων υπάρχει κάποια δέσμευση στους τύπους

και στο μέγεθος αρχείων για αποτροπή κακόβουλης χρήσης του

προγράμματος αυτές οι δεσμεύσεις είναι οι ακόλουθες:

• Η επέκταση του αρχείου θεμάτων είναι: doc, docx, xls, xlsx, rtf,

txt, pdf, zip, rar

• Το έγγραφο να μην ξεπερνά τα 10 MB

• Να μην υπάρχει άλλη έγγραφή με τα ίδια χαρακτηριστικά

(διπλότυπη εγγραφή)

Τέλος, στα πλεονεκτήματα της νέας εφαρμογής θα πρέπει να αναφέρουμε

την δυνατότητα της εφαρμογής να μπορεί να εγκατασταθεί σε

οποιοδήποτε site που χρησιμοποιεί την τεχνολογία του Joomla!

Σελίδα 30 από 93

Page 31: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Σελίδα 31 από 93

Page 32: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Κεφάλαιο 6: Εγκατάσταση-Απεγκατάσταση της

εφαρμογής «τράπεζα θεμάτων»

6.1 Εγκατάσταση της εφαρμογήςΗ εγκατάσταση της εφαρμογής γίνεται με τέσσερα απλά βήματα.

1. Συνδεόμαστε ως admin στο back end του Joomla!

Εικόνα 1 Σελίδα διαχείρισης

2. Στην βασική γραμμή του Joomla! κάνουμε κλικ στο μενού

Installers και στην συνέχεια κλικ στο Components.

Σελίδα 32 από 93

Page 33: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Content Components Modules Mambots Preview

Display #

Joomla'Joomla

Free Software released under the GNU/GPL License.1.0.15 Stable [ Daytime l 22 February 2008 23:00 UTC

Chech for latest Version

J o o m l a !Installers | Messages System Help

man / com_admm

C o n tro l P a n e l

ffa Templates - Site

Sf Templates - Admin

{y Languages

0Add New Content

€ Ifc—WHdUlUU

tύ Mambots ΪContent Items Static Content Frontpage Manager

Manager

0Section Manager

ΌCategory Manager

5 ^ &Media Manager Trash Manager

: . r

Menu Managere

Language Manager

â a ü

User Manager Global Configuration

Logged Components Popular Latest Items Menu Stats

Currently Logged in Users

1 admin Super Administrator

Εικόνα 2 Σελίδα διαχείρισης με επιλεγμένο το μενού εγκατάστασης

3. Κάνουμε κλικ στην αναζήτηση βρίσκουμε το αρχείο vsbank.zip και

πατάμε στο Upload file & install, μετά από αυτό η τράπεζα θεμάτων

έχει εγκατασταθεί στον ιστοχώρο μας και είναι έτοιμη προς χρήση

αφού την συνδέσουμε φυσικά με κάποιο μενού όπως θα δούμε

παρακάτω.

Εικόνα 3 Σελίδα διαχείρισης - Εγκατάσταση νέας εφαρμογής (component)

Σελίδα 33 από 93

Page 34: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

4. Αφού γίνει σωστά η εγκατάσταση εμφανίζεται το μήνυμα επιτυχίας

όπως αυτό της εικόνας 4:

Εικόνα 4 Επιτυχής εγκατάσταση του component

6.2 Απεγκατάσταση της εφαρμογήςΓια να γίνει σωστά η απεγκατάσταση της τράπεζας θεμάτων ακολουθούνται τα ίδια βήματα όπως της εγκατάστασης InstaNers-> components επιλέγεται από την λίστα το com_vsbank και πατάμε το κουμπί uninstall που βρίσκεται στο πάνω μέρος του παραθύρου όπως φαίνεται στην εικόνα 3, έπειτα μας εμφανίζει, εάν απεγκαταστήθηκε με επιτυχία το μήνυμα της εικόνας 5:

Εικόνα 5 Μήνυμα απεγκατάστασης εφαρμογής

Σελίδα 34 από 93

Page 35: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Κεφάλαιο 7: Τρόπος εισόδου και τύποι

λογαριασμών στην τράπεζα θεμάτων

7.1 ΕισαγωγήΣτο έβδομο κεφάλαιο θα δούμε τον τρόπο εισόδου στην υπηρεσία της

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

Στην τράπεζα θεμάτων έχουν δικαίωμα πρόσβασης τρείς κατηγορίες

χρηστών

• Φοιτητής

• Εισηγητής

• Διαχειριστής

Η κατηγορία χρηστών διαμορφώνεται στην αρχική εισαγωγή των

στοιχείων του κάθε χρήστη, εάν ο χρήστης έχει εγγραφή στην κεντρική

βάση χρηστών του Joomla! ως registered τότε τα δικαιώματα που έχει

στην τράπεζα θεμάτων θα είναι αυτά του φοιτητή, ενώ εάν γραφεί ως

editor ή ως super administrator τότε τα δικαιώματα που θα αποκτήσει θα

είναι αυτά του εισηγητή ή του Διαχειριστή αντίστοιχα.

Σύμφωνα λοιπόν, με τον τρόπο εισόδου στην τράπεζα θεμάτων ο κάθε

τύπος λογαριασμού έχει και ανάλογα δικαιώματα.

Σελίδα 35 από 93

Page 36: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

7.2 Τρόπος εισόδου

Εικόνα 6 Είσοδος χρήστη με συμπληρωμένα τα στοιχεία εισόδου και μενού ιστοσελίδας

Για επιτυχή είσοδο στην υπηρεσία απαιτείτε η σύνδεση (login) του χρήστη,

αφού ο χρήστης συνδεθεί στην ιστοσελίδα τότε μόνο θα μπορεί να έχει

πρόσβαση στην Τράπεζα θεμάτων, η είσοδος στην υπηρεσία γίνετε μέσω

του κεντρικό μενού της ιστοσελίδας ή όπου αυτό υπάρχει, όπως εικόνες με

υπερσύνδεση προς την τράπεζα θεμάτων είτε σε κάποιο υπομενού για

παράδειγμα στις «Ηλεκτρονικές υπηρεσίες».

Σελίδα 36 από 93

Page 37: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

7.3 Είσοδος χωρίς δικαιώματαΓια να έχει δικαίωμα πρόσβασης κάποιος χρήστης στην τράπεζα θεμάτων

θα πρέπει να έχει τουλάχιστον δικαιώματα πρόσβασης (registered) εάν

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

στο πρόγραμμα θα πραγματοποιηθεί μία ανακατεύθυνση (redirect) στην

σελίδα σύνδεσης του Joomla!.

αναζήτηση.

NEWSFLASH

Powered byLOGIN FORM

Χρήστης

Κωδικός

Δεν έχετε δικαίωμα πρόσβασης. Χρειάζεται πρώτα να έχετε συνδεθεί.

Home Contact Us News L inks

Joomla ΓΓ\ j \ iAn

...because open source m a t t e r s VJ h Vi/H

I Joomla' 1 .0- 'Experience the i Freedom-!. It has never been I easier to create your own

dynamic site. Manage all your content from the best CMS admin interface.

OpenSourceMattershome of Joomla!

J>4 J o o m la Γ

Ο Να με θυμάσαι

Είσοδος

Ξεχάσατε τον κωδικό σας; Δεν έχετε λογαριασμό; Εγγραφη

Home

Joom la! L icense

News

Blog

Links

Contact Us

Search

News Feeds

FAQs

W rapper

Joom la! Home

Joom la! Forums

OSM Home

A dm in is tra to r

©2009 infomanJoomla! is Free Software released under the GNU/GPL License.

Εικόνα 7 Προσπάθεια εισόδου στην τράπεζα θεμάτων χωρίς να υπάρχουν στοιχεία εισόδου

Σελίδα 37 από 93

Page 38: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

7.4 Είσοδος ως φοιτητής

Εικόνα 8 Βασική σελίδα αναζήτησης φοιτητή

Οι χρήστες που έχουν δηλωθεί σαν ΓθςίβίθΓθά αναγνωρίζονται από το

πρόγραμμα ως φοιτητές, αυτό σημαίνει πως το μόνο δικαίωμα που έχουν

στην τράπεζα θεμάτων είναι αυτό της αναζήτησης. Οι χρήστες μπορούν

να αναζητήσουν τις εγγραφές που έχουν κάνει οι εισηγητές με τα εξής

κριτήρια:

• Μάθημα

• Εισηγητής

• Εξάμηνο

• Είδος

Η αναζήτηση γίνετε είτε μεμονωμένα με κάποιο από τα παραπάνω

κριτήρια είτε με συνδυασμό αυτών για λιγότερα και πιο συγκεκριμένα

αποτελέσματα.

Σελίδα 38 από 93

Page 39: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

7.5 Είσοδος ως καθηγητήςΌταν κάποιος χρήστης κάνει σύνδεση με τα στοιχεία του και αυτός έχει

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

μενού στην Τράπεζα θεμάτων αυτά είναι, το μενού Προβολή-Επεξεργασία-

Διαγραφή και το μενού Νέα εγγραφή.

7.5.1 Μενού Προβολή-Επεξεργασία-Διαγραφή

Εικόνα 9 Εμφάνιση εγγραφών καθηγητή

Στο μενού Νέα εγγραφή εμφανίζεται μία λίστα με όλες τις εγγραφές που ο

συγκεκριμένος χρήστης είναι ο πρώτος ή δεύτερος εισηγητής, ο εισηγητής

μπορεί κάνοντας κλικ στο όνομα του αρχείου να κάνει προεπισκόπηση

των θεμάτων που έχει κάνει upload ανεξάρτητα με το εάν τα θέματα είναι

κοινοποιήσημα ή όχι στους φοιτητές του τμήματος, επίσης σε αυτή την

οθόνη βλέπει στα τελευταία δυο πεδία της κάθε εγγραφής δύο κουμπιά

που με το πρώτο μπορεί να κάνει τροποποίηση την συγκεκριμένη

εγγραφή και με το δεύτερο διαγραφή της εγγραφής, τις λειτουργίες των

δύο κουμπιών θα τις δούμε αναλυτικά στην παράγραφο «Επεξεργασία και

διαγραφή εγγραφής».

Σελίδα 39 από 93

Page 40: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

7.5.2 Μενού Νέα εγγραφήsearch.Home Contact Us News L inks

NEWSFLASH

version

ΝΕΑ ΕΓΓΡΑΦΗ^ΗβΙρ

ΗΜΕΡΟΜΗΝΙΑ:

Hi, fragidis

Logout

Joomla! \\HHV\ \ / \ /..because open source matters { H U r i M

Λ v i H K H i· Home

Joom la! L icense

· News

· Blog

· L inks

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

LOGIN FORM

OpenSourceMatters1 home of Joomla !

Yesterday all servers in the U S. went out on strike in a bid to get more RAM and better CPUs. A spokes person said that the need for better RAM was due to some fool increasing the front-side bus speed. In future, busses will be told to slow down in residential

Powered by

J o o m la ! '

ΑΝΑΖΗΤΗΣΗ | ΕΠΕΞΕΡΓΑΣΙΑ

ΜΑΘΗΜΑ:

ΕΙΣΗΓΗΤΗΣ: ΦΡΑΓΓΙΔΗΣ ΛΕΩΝΙΔΑΣΔΕΥΤΕΡΟΣ ΕΙΣΗΓΗΤΗΣ (ΠΡΟΑΙΡΕΤΙΚΟ):

ΕΞΑΜΗΝΟ: -

ΕΙΔΟΣ: ▼

ΤΥΠΟΣ ΕΞΕΤΑΣΗΣ(συμπληρώνετε μόνο ▼εάν είναι εργαστήριο):

ΚΟΙΝΟΠΟΙΗΜΕΝΟ: ▼

Εικόνα 10 Προσθήκη νέας εγγραφής καθηγητή

Στο μενού ΝΕΑ ΕΓΓΡΑΦΗ ο χρήστης που έχει κάνει login με τα στοιχεία

του στο Joomla! και έχει αναγνωριστεί ως καθηγητής έχει το δικαίωμα να

κάνει νέα εγγραφή αυτό σημαίνει ότι μπορεί να προσθέσει κάποιο θέμα

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

αυτό το σημείο οι φοιτητές του ΤΕΙ θα μπορούν να κάνουν αναζήτηση.

Εδώ ο καθηγητής που πάει να κάνει μία εγγραφή καλείτε να δώσει τα

κριτήρια που θα επιστρέφουν την εγγραφή στην αναζήτηση καθώς και

κάποιες παραπάνω πληροφορίες για την διευκόλυνση τους σε

μεταγενέστερη επιστροφή της εγγραφής.

Τα υποχρεωτικά πεδία είναι:

• ΗΜΕΡΟΜΗΝΙΑ ΕΞΕΤΑΣΗΣ

• ΜΑΘΗΜΑ

• ΕΞΑΜΗΝΟ

• ΕΙΔΟΣ

• ΚΟΙΝΟΠΟΙΗΜΕΝΟ

Σελίδα 40 από 93

Page 41: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

• ΑΡΧΕΙΟ

Τα προαιρετικά πεδία είναι:

• ΔΕΥΤΕΡΟΣ ΕΙΣΗΓΗΤΗΣ

• ΤΥΠΟΣ ΕΞΕΤΑΣΗΣ

• ΠΕΡΙΓΡΑΦΗ

Στο πεδίο εισηγητής συμπληρώνετε αυτόματα με βάση το ίοςίπ του

Καθηγητή για λόγους ασφαλείας.

^προσοχή

Ο κάθε καθηγητής μπορεί να κάνει εισαγωγή εγγραφής μόνο

εάν πρόκειται για δικό του μάθημα και είναι ο ίδιος πρώτος

εισηγητής.

Στους περιορισμούς την νέας εγγραφής θα αναφερθούμε στην

παράγραφο «Περιορισμοί νέας εγγραφής»

Σελίδα 41 από 93

Page 42: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

7.6 Είσοδος ως διαχειριστήςΟ χρήστης ή οι χρήστες που έχουν συνδεθεί στο Joomla! ως διαχειριστές

δηλαδή έχουν δικαιώματα super administrator εκτός από τα παραπάνω

δύο κύρια μενού της αναζήτησης για τους φοιτητές και των εγγραφών για

τους εισηγητές έχει κάποιες παραπάνω δυνατότητες αυτές είναι:

1. Μπορεί να προσθέσει, να τροποποιήσει ή να διαγράψει καθηγητές.

2. Μπορεί να κάνει εισαγωγή εγγραφής, τροποποίηση ή διαγραφή

εγγραφής οποιουδήποτε καθηγητή.

7.6.1 Μενού Προβολή-Επεξεργασία-Διαγραφή

MAIN MENU

Home

Joom la! L icense

News

Blog

L inks

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

LOGIN FORM

Logout

USER MENU

Your Details

Subm it News

Subm it W ebLink

Check-In My Item s

Logout

Joom la! Home

Powered by

J o o m la !version 1 .0

OpenSourceMatters* home of Joomla!

ΑΝΑΖΗΤΗΣΗ | ΕΠΕΞΕΡΓΑΣΙΑ1 ΝΕΑ ΕΓΓΡΑΦΗ | ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΩΝ | ΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ | Help

ΕΓΓΡΑΦΕΣ

ΗμερΛ/ία Μάθημα Ε ισηγητής - τές Εξάμηνο - Γΰπος

Λετττομέριες T ροπ/ση Delete

2009-05-13

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2008-2009

ΑΕΞΕΤΑΣΤΙΚΗ

Αρχείο: FRAGGIDISLEONIDAS_ANALYSI SYSTIMATON & TECHNOLOG ΙΑ LOGISMIKOY_EARINO2008-2009__Ε RG A ST I RIO_1 iPROODOS.docx

Περιγραφή: Με αυτά τα θέματα πέρασαν 30 σπο τους 100 Φοσητές

Κοινοποιημένο: ΝΑΙ

/ X

2009-05-14 ΓΡΑΦΙΚΑ ΓΚΟΥΜΑΣ ΣΤΕΦΑΝΟΣ

ΕΑΡΙΝΟ2008-2009

ΑΕΞΕΤΑΣΤΙΚΗ

Αρχείο: GKOYMAS STEFANOS_GRAFIKA_EARINO 2008-2009__Α EXETASTIKI_.txt

Κοινοποιημένο: ΝΑΙj / X

2009-05-11ΔΙΑΚΡΓΤΑ ΜΑΘΗΜΑΤΙΚΑ - ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ

ΓΡΑΜΜΑΤΙΚΟ Π ΟΥΛΟΥ ΑΡΧΟΝΤΙΑ

ΕΑΡΙΝΟ2005-2009

ΑΕΞΕΤΑΣΤΙΚΗ

Αρχείο: GRAMMATIKOPOYLOY ARCHONTIA DIAKRITA ΜΑΤΗΙΜΑΤΙΚΑ - GRAMMIKI ALGEBRA_EARINO 2008-2009_Α EXETASTIKI_.txt

Κοινοποιημένο: ΝΑΙ

* XΕΑΡΙΝΟ2007-2008

Αρχείο: GKOYMAS STEFANOS_GRAFIKA _EARINO

✓ V

Εικόνα 11 Εμφάνιση όλων των εγγραφών - Είσοδος ως διαχειριστής

Στο μενού Προβολή-Επεξεργασία-Διαγραφή εμφανίζεται μία λίστα με όλες

τις εγγραφές που υπάρχουν στην βάση και η διαφορά με το μενού

Προβολή-Επεξεργασία-Διαγραφή του καθηγητή είναι πως εδώ ο

διαχειριστής δεν βλέπει μόνο τις δικές του εγγραφές αλλά και όλων

των υπόλοιπων εισηγητών, ο εισηγητής μπορεί κάνοντας κλικ στο

Σελίδα 42 από 93

Page 43: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

όνομα του αρχείου να κάνει προεπισκόπηση των θεμάτων που έχει κάνει

upload ανεξάρτητα με το εάν τα θέματα είναι κοινοποιήσημα ή όχι στους

φοιτητές του τμήματος, επίσης σε αυτή την οθόνη βλέπει στα τελευταία

δυο πεδία της κάθε εγγραφής δύο κουμπιά που με το πρώτο μπορεί να

κάνει τροποποίηση την συγκεκριμένη εγγραφή και με το δεύτερο διαγραφή

της εγγραφής, τις λειτουργίες των δύο κουμπιών θα τις δούμε αναλυτικά

στην παράγραφο «Επεξεργασία και διαγραφή εγγραφής».

7.6.2 Μενού Προβολή-Επεξεργασία-Διαγραφή Καθηγητών

The rset can be a toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae we

MAIN MENU

|ΐΡ_υ5ΕΡ|ί51ΤΕΑΟΗΕΡ_ίΕνΕί|ΡΕΡΜΑΝΕΝΤ|Επεξεργααία|Ρβΐ6ί€

ΒΛΥΣΝΑΚΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΒΡΟΧΙΔΟΥ ΕΛΕΝΗ

ΓΕΡ0ΝΤ1ΔΗΣ ΙΩΑΝΝΗΣ

LOGIN FORM

ΓΡΑΜΜΑΤΊΚΟΠΟΥΛΟΥ ΑΡΧΟΝΤΙΑ

ιΣ ΓΙΩΡΓΟΣ

ΔΕΛΙΑΣ ΑΝΤΩΝΗΣ

I ΔΡΓΓΣΑΚΗ ΧΑΙΔΩ

ΖΑΪΜΗ ΑΝΤΙΓΟΝΗ

Home

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

Submit News

Logout

Powered by

OpenSourceMattershome of Joomla'

J o o m la !version 1.0

Joom la! L icense

- __ -U ^ p| ΝΕΑ ΕΓΓΡΑΦΗ^ΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΩΝ»ΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ | Help

ΚΑΘΗΓΗΤΕΣ

[ID ΙΚαθηγητής

ΓΚΟΥ. ΑΣ ΣΤΕΦΑΝΟΣ

L o g o u t

XX/X/Submit W ebLink

χ XCheck-In My Item s

Εικόνα 12 Εμφάνιση όλων των εισηγητών στον διαχειριστή

Στο μενού Καθηγητές ο διαχειριστής έχει την δυνατότητα να δει μία λίστα

με όλους τους εγγεγραμμένους καθηγητές και να τους τροποποιήσει ή να

τους διαγράψει. Σε αυτή την λίστα εμφανίζονται τα id των καθηγητών στην

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

των κάθε ένα (id_user, id_teacher_level, permanent). Στις εγγραφές

εμφανίζονται στα τελευταία δυο πεδία της κάθε εγγραφής δύο κουμπιά

ελέγχου που με το πρώτο μπορεί να κάνει τροποποίηση τον συγκεκριμένο

Σελίδα 43 από 93

Page 44: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

εισηγητή και με το δεύτερο διαγραφή του εισηγητή, τις λειτουργίες των δύο

κουμπιών θα τις δούμε αναλυτικά στην παράγραφο «Επεξεργασία και

διαγραφή εγγραφής».

7.6.3 Μενού Εισαγωγή καθηγητή-τών

ι ne rsei can oe a loan mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae we

MAIN MENU

D_USER:

D_TEACHER_LEVEL:LOGIN FORM

Εισαγωγή Καθηγητή |Logout

USER MENU

ΑΡΧΕΙΟ ΜΑΖΙΚΗΣ ΕΙΣΑΓΩΓΗΣ:

Home

Joom la! L icense

News

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

Y our Details

Subm it News

Logout

Powered by

OpenSource Ι λ J o o m la !version 1.0

ΑΝΑΖΗΤΗΣΗ ΕΠΕΞΕΡΓΑΣΙΑI ΝΕΑ ΕΓΓΡΑΦΗ | ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΏΝ ΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ ir a lp

□NOMA

EMISE 0

PERMANEN

Submit W ebLink

Αναζήτηση... Εισαγωγή ΚαθηγητώνCheck-In My Item s

Εικόνα 13 Προσθήκη νέου εισηγητή

Στο μενού new ο διαχειριστής έχει την δυνατότητα να προσθέσει νέο

καθηγητή συμπληρώνοντας τα ακόλουθα πεδία:

• ΟΝΟΜΑ

• ΕΠΙΘΕΤΟ

• ID_USER

• ID_TEACH E R_L EVE L

• PERMANENT

Όταν συμπληρωθούν όλα τα πεδία και ο διαχειριστής της εφαρμογής

πατήσει ‘’Εισαγωγή Καθηγητή’’ θα προστεθεί ο νέος καθηγητής στην βάση

και θα εμφανιστεί στην αναζήτηση αλλά και στην λίστα εισηγητών στην νέα

εγγραφή. Επιπλέον ο διαχειριστής έχει την δυνατότητα να εισάγει

καθηγητές μαζικά χρησιμοποιώντας την φόρμα μαζικής εισαγωγής που θα

Σελίδα 44 από 93

Page 45: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

αναλυθεί αργότερα στην παράγραφο «Μαζική εισαγωγή καθηγητών».

Σελίδα 45 από 93

Page 46: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Κεφάλαιο 8: Χρήση εφαρμογής

8.1 ΕισαγωγήΗ εφαρμογή είναι σχεδιασμένη να λειτουργεί σε σύστημα multi-level

account, έτσι ο κάθε χρήστης της εφαρμογής δεν έχει τις ίδιες δυνατότητες,

αλλά ο κάθε τύπος λογαριασμού έχει συγκεκριμένες επιλογές στην

διάθεση του. Αυτές τις δυνατότητες θα τις δούμε σε αυτό το κεφάλαιο

χωριστά για τον κάθε τύπο χρήστη, καθώς και τις περαιτέρω δυνατότητες

του προγράμματος.

Σελίδα 46 από 93

Page 47: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.2 Χρήση εφαρμογής από τους φοιτητές

Οι φοιτητές που έχουν λογαριασμό πρόσβασης στην ιστοσελίδα και τις

υπηρεσίες του τμήματος, έχουν την δυνατότητα να κάνουν αναζήτηση

στην τράπεζα θεμάτων. Εάν το πρόγραμμα επιστρέψει αποτελέσματα τότε

τα αποτελέσματα εμφανίζονται σε λίστα στους φοιτητές με τις

πληροφορίες της κάθε εγγραφής και εικονίδιο για να κατεβάσουν το

συγκεκριμένο αρχείο της εγγραφής. Η ταξινόμηση των αποτελεσμάτων

στην λίστα γίνεται από την πιο πρόσφατη εισαγωγή στην πιο παλιά.

NEWSFLASH

Yesterday all servers in the U.S. went out on strike in a bid to get more RAM and better CPUs. A spokes person said that the need for better RAM was due to some fool increasing the front-side bus speed. In future, busses will be

LOGIN FORM

WHO'S ONLINE

ΕΠΙΚΟΙΝΩΝΕΙ ΔΕΔΟΜΕΝΩΝ & ΔΙΚΤΥΑ Η '

ΧΑΤΖΗΣ ΒΑΣΙΛΕΙΟ Σ- ΧΕΙΜΕΡΙΝΟ2007-2008

ΕΡΓΑΣΤΗΡΙΟ

ΧΕΙΜΕΡΙΝΟ2007-2008

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

Βρέθηκαν συνολικά 2 εγγραφές

που είναι: Έγγραφο το υ M icroso ft Office W ord 97

από: h ttp ://w w w .filozw os.g r

USER MENUT ι να κάνει ο Firefοχ με α υ τό το αρχείο;

Ο Ανοιγμα με M icrosoft Office W ord (προεπιλογή)

|γΊ Να γ ίν ετα ι α υ τό μα τα από εδώ κα ι πέρα γ ια αρχεία α υτού το υ είδους.

Α κύρω ση

Home Contact Us News L inks

told to slow down in residential

Powered by

OpenSourceMattershome of Joomka!

Σλ J o o m la !roa, chrsterg

version 1 .0

chrstergΑ Ν Α Ζ Η Τ Η ΣΗ

Νεα αναζήτησήHome

Τράπεζα Θεμάτων

Joom la! L icense

News

Blog

L inks

Contact Us

Search

News Feeds

FAQs

W rapper

Ημερομηνία | Εξάμηνο | Τύπος [ΑρχειΕισηγητηςΜ ά θ η μ ά

2009-04-15 ΟΡΑΓΓ ΛΗ ■ ΛΕΩΓΜΑΣ

ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ &.2009-04-15

Νεα αναζητηση

Ανοιγμα CHATZIS BASILBOS.EPIKOINONIES DEDOMENON & DIKTYA I-Y_CHE

F...EDOMENON & DIKTYA -Y CHE MERINO 2007-2008 ERGASTIRIO.doc

Y our Details

Subm it News

Submit W ebLink

Check-In My Item s

Logout

9 Αποθήκευσή αρχείου

Εικόνα 14 Αποτελέσματα αναζήτησης με κριτήριο στο όνομα του εισηγητή: ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

Σελίδα 47 από 93

Page 48: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Εάν η αναζήτηση δεν επιστρέψει αποτέλεσμα τότε εμφανίζει το μήνυμα:

Η αναζήτηση δεν επέστρεψε δεδομένα, παρακαλώ δοκιμάστε ξανά, με

διαφορετικά κριτήρια!

version 1.0

ΑΝΑΖΗΤΗΣΗ

Home

News

Home Contact Us News Links αναζήτηση...

Joomla!...because open source matters '

LOGIN FORM

Γaa, chrsterg

Έξοδος

WHO’S ONLINE

Έχουμε 1 μέλος online • c h rs te rg

Τράπεζα Θεμάτων

Joom la! L icense

home of Joomla!

Aoccdrnig to a rscheearch at an Elingsh uinervtisy, itdeosnl mttaer in waht oredr the Itteers in a wrod are, the olny iprmoetnt tihng is taht frist and Isat Itteer is at the rghit pclae The rset can be a toatl mses

I _ and you can sitll raed it wouthit ^ porbelm. Tihs is bcuseae we

Powered by

$ 4 J o o m la !

Νέα αναζήτηση

|Ημερομηνία [Μάθημα [Εισηγητής |Εξάμηνο [τύπ ος |Αρχείο [

Βρέθηκαν συνολικά 0 εγγραφές Νέα αναζήτηση

Η αναζήτηση δέν εττέστρεψε δεδομένα, τταρακαλώ δοκιμάστε ξανά, με διαφορετικά κριτήρια!

Εικόνα 15 Αποτέλεσμα αναζήτησης χωρίς να επιστρέψει κανένα αποτέλεσμα

Σελίδα 48 από 93

Page 49: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.3 Χρήση εφαρμογής από τους ΚαθηγητέςΌπως είπαμε και παραπάνω ο καθηγητής έχει στην διάθεση του δύο

μενού προς επιλογή, παραπάνω από τους φοιτητές, αυτά είναι οι

Προβολή-Επεξεργασία-Διαγραφή και η νέα εγγραφή, τις λειτουργίες τους

θα δούμε αναλυτικά πιο κάτω:

8.3.1 Εισαγωγή νέας εγγραφής

Εικόνα 16 Προσθήκη νέας εγγραφής στην Τράπεζα θεμάτων από τον χρήστη ΦΡΑΓΓΙΔΗΛΕΩΝΙΔΑ

Στην εικόνα 16, βλέπουμε μία συμπληρωμένη φόρμα για την εισαγωγή

των στοιχείων μίας νέας εγγραφής στην τράπεζα θεμάτων, αφού έχουμε

συμπληρώσει όλα τα υποχρεωτικά πεδία μπορούμε να κάνουμε αποστολή

της εγγραφής και να προστεθεί το θέματα επιτυχώς στην βάση της

τράπεζας.

Μόλις πατήσουμε αποστολή γίνονται οι απαραίτητοι έλεγχοι και οι

μετατροπές από το πρόγραμμα και μας επιτρέπει ή μας απαγορεύει την

προσθήκη της νέας εγγραφής. Εάν η εγγραφή έγινε δεκτή από το

πρόγραμμα τότε εμφανίζεται το μήνυμα στην εικόνα 17. Τέλος να

Σελίδα 49 από 93

Page 50: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

επισημάνουμε πως η εγγραφή για να είναι αναζητήσημη από τους

φοιτητές του τμήματος στο πεδίο “ΚΟΙΝΟΠΟΙΗΜΕΝΟ” θα πρέπει να

επιλέξουμε “ΝΑΙ”, εάν η επιλογή μας είναι “ΟΧΙ” τότε η εγγραφή θα

εμφανίζεται στην δική μας λίστα εγγραφών, ώστε να την επεξεργαστούμε ή

να την διαγράψουμε αλλά στην αναζήτηση δεν θα την εμφανίζει.

Εικόνα 17 Επιτυχής εισαγωγή εγγραφής

Παρατηρούμε ότι:

• Μας εμφανίζει μήνυμα οπού μας επιβεβαιώνει ότι η εισαγωγή ήταν

επιτυχής

• Μας εμφανίζει το αρχικό όνομα του αρχείου, καθώς και πώς αυτό

αποθηκεύτηκε στην βάση και στον server

• Το μέγεθος του αρχείου

8.2.2 Έλεγχοι και αυτόματες τροποποιήσεις της εφαρμογής

Σε κάθε νέα εγγραφή το πρόγραμμα ελέγχει την εγκυρότητα της αν πληρεί

δηλαδή τα παρακάτω κριτήρια:

Σελίδα 50 από 93

Page 51: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

• Η επέκταση του αρχείου θεμάτων είναι: doc (έγγραφο word 03),

docx (έγγραφο word 07), xls (έγγραφο excel 03), xlsx (έγγραφο

excel 07), rtf (έγγραφο εμπλουτισμένου κειμένου), txt (έγγραφο

κειμένου), pdf (έγγραφο κειμένου adobe reader), zip

(συμπιεσμένος φάκελος winzip), rar (συμπιεσμένος φάκελος

winrar) (*Εικόνα 19)

• Το έγγραφο να μην ξεπερνά τα 10 MB (*Εικόνα 19)

• Να μην υπάρχει άλλη έγγραφή με τα ίδια χαρακτηριστικά

(διπλότυπη εγγραφή) (*Εικόνα 18)

Επίσης, σε κάθε νέα εγγραφή το πρόγραμμα αλλάζει το όνομα του

αρχείου και του δίνει όνομα της μορφής

“onomakathighth_mathima_examhno_exetastiki.epektash” χωρίς να

επηρεάζει την επέκταση του αρχείου ή το κείμενο του αρχείου.

Με αυτή την αλλαγή του ονόματος του αρχείου διορθώνονται προβλήματα

της παλιάς τράπεζας θεμάτων που είναι:

• Άκυρα links λόγω αρχείων με ελληνικά ονόματα (έστω και ένα

γράμμα του ονόματος του αρχείου εάν ήταν γραμμένο με

ελληνικό χαρακτήρα το αρχείο δεν μπορούσε να γίνει download)

• Ομοιομορφία αρχείων αφού όλα εμφανίζονται με την ίδια μορφή

• Ευκολότερη οργάνωση των αρχείων θεμάτων από τους φοιτητές

αφού θα μπορούν να βλέπουν ποιο μάθημα, από ποιόν

καθηγητή και από ποια εξεταστική είναι χωρίς να ανοίξουν το

αρχείο, λόγω του ονόματος του.

Εάν η εγγραφή δεν είναι έγκυρη τότε μας εμφανίζονται τα σχετικά

μηνύματα που θα δούμε στις εικόνες παρακάτω:

Σελίδα 51 από 93

Page 52: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Εικόνα 18 Σφάλμα διπλότυπου αρχείου

Εικόνα 19 Σφάλμα λάθους τύπου ή μεγέθους αρχείου

Σελίδα 52 από 93

Page 53: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.3.3 Τροποποίηση και διαγραφή εγγραφής

Όπως είπαμε και παραπάνω ο καθηγητής πατώντας το μενού Προβολή-

Επεξεργασία-Διαγραφή βλέπει όλες τις εγγραφές που είναι ο ίδιος

πρώτος ή δεύτερος εισηγητής, στην λίστα των εγγραφών βλέπει όλες τις

εγγραφές που έχει κάνει.

Contact Us

Search

News Feeds

FAQs

W rapper

Submit W ebLink

Check-In My Item s

Logout

Joom la! hom e

Joom la! Forum s

OSM Home

ΕΓΓΡΑΦΕΣ

Ημερ/νία ΜάθημαΕισηγητής -Γες

Εξάμηνο - Τύπος

Λετττομέριες T ροπ/ση Δ ιαγραφή

2009-05-13

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2008-2009

ΕΡΓΑΣΤΗΡΙΟ - 1η ΠΡΟΟΔΟΣ

Αρχείο: FRAGGIDIS LEONIDAS ANALYSI SYSTIMATON & TECHNOLOG ΙΑ LOGISMIKOY EARINO2008-2009__ERGASTIRIO_1iPROODOS.txt

Περιγραφή: θέματα εργαστηρίου 1ης ττροοδου

Κοινοποιημένο: ΝΑΙ

A

2009-05-13

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2009-2009

ΑΕΞΕΤΑΣΤΙΚΗ

Αρχείο: FRAGGIDIS LEONIDAS_ANALYSI SYSTIMATON & TECHNOLOG ΙΑ LOGISMIKOY_EARINO2008-2009__E RG A ST I RIO_1 iPROODOS.docx

Περιγραφή: Με αυτά τα θέματα πέρασαν 30 απο τους 100 Φοιτητές

Κοινοποιημένο: ΝΑΙ

* X

0000-00-00

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2009-2009

ΒΕΞΕΤΑΣΤΙΚΗ

Αρχείο: FRAGGIDIS LEONIDAS_ANALYSI SYSTIMATON & TECHNOLOG ΙΑ LOGISMIKOY_EARINO 2008-2009_B EXETASTIKI_.txt

Κοινοποιημένο: ΝΑΙ

1 / X

0000-00-00ΕΠΙΚΟΙΝΩΝΕΣ ΔΕΔΟΜΕΝΩΝ & ΔΙΚΤΥΑ Η/Υ

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2009-2009

ΕΡΓΑΣΤΗΡΙΟ -

Αρχείο: FRAGGIDISLEONIDAS_EPIKOINONIES DEDOMENON & DIKTYA l-Y_CHEIMERINO 2008-2009__ERGASTIRIO.pdf [ I w

Εικόνα 20 Σελίδα εγγραφών με σήμανση στα κουμπιά τροποποίησης και διαγραφής

Στο τέλος της κάθε γραμμής βλέπει τα εικονίδια της τροποποίησης και της

διαγραφής, την λειτουργία αυτών των δύο εικονιδίων θα δούμε παρακάτω:

Σελίδα 53 από 93

Page 54: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

8.3.4 Τροποποίηση

Κάνοντας κλικ ο καθηγητής στο εικονίδιο της τροποποίησης το

πρόγραμμα ανιχνεύει σε ποια εγγραφή είναι ο χρήστης και φέρνει τα

δεδομένα της συγκεκριμένης εγγραφής για επεξεργασία όπως βλέπουμε

παρακάτω:

MAIN MENU

Home

Joom la! L icense

News

Blog

L inks

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

Y our Details

Subm it News

Submit W ebLink

ΑΝΑΖΗΤΗΣΗ | ΕΠΕΞΕΡΓΑΣΙΑ | ΝΕΑ ΕΓΓΡΑΦΗ | Help

ΗΜΕΡΟΜΗΝΙΑ: 2009-05-13 Η

ΜΑΘΗΜΑ: ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ & ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ -ΕΙΣΗΓΗΤΗΣ: ΦΡΑΓΓΙΔΗΣ ΛΕΩΝΙΔΑΣ -ΔΕΥΤΕΡΟΣ ΕΙΣΗΓΗΤΗΣ (ΠΡΟΑΙΡΕΤΙΚΟ): -

ΕΞΑΜΗΝΟ: ΕΑΡΙΝΟ 2008-2009 -ΕΙΔΟΣ: ΕΡΓΑΣΤΗΡΙΟ -ΤΥΠΟΣ Ε-ΕΤΑΣΗΣ(συμπληρώνετε μόνο εάν είναι εργαστήριο):

1η ΠΡΟΟΔΟΣ -

ΚΟΙΝΟΠΟΙΗΜΕΝΟ: ΝΑΙ -ΠΕΡΙΓΡΑΦΗ(ΠΡΟΑΙΡΕΤΙΚΟ): θέματα εργαστηρίου 1ης προοδου

ΑΡΧΕΙΟ: FRAGGIDIS LEONIDAS_ANALYSI SYSTIMATON & TECHNOLOGY LOGISMIKOYJ

ΝΕΟ ΑΡΧΕΙΟ: Αναζήτηση...

Ενημέρωση Εγγραφής

Εικόνα 21 Επεξεργασία εγγραφής

Παρατηρούμε πως η εφαρμογή φέρνει την εγγραφή όπως ήταν πριν,

όποιο από τα πεδία δεν μας ικανοποιεί πλέον μπορεί να αλλαχτεί ή να

αντικατασταθεί με κάποιο άλλο, ακόμα και το αρχείο των θεμάτων μπορεί

να αλλάξει και με την ενημέρωση της εγγραφής να αποθηκευτεί το νέο

αρχείο στον διακομιστή αλλά και να αντικατασταθεί στην βάση δεδομένων.

Τέλος, αφού πατήσουμε "ενημέρωση εγγραφής” η συγκεκριμένη

αναζήτηση θα είναι πλέον αναζητήσημη με τα νέα χαρακτηριστικά της.

8.3.5 Διαγραφή

Εκτός από τροποποίηση μίας εγγραφής μπορούμε επίσης να την

διαγράψουμε οριστικά από την εφαρμογή, αυτό γίνεται πατώντας το

Σελίδα 54 από 93

Page 55: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

κουμπί διαγραφή. Πατώντας διαγραφή, η εφαρμογή μας εμφανίζει

επιβεβαιωτικό μήνυμα και αν επιλέξουμε ΟΚ,

η εγγραφή διαγράφεται καθώς και το αρχείο από τον server που

φιλοξενείτε και μας εμφανίζει το μήνυμα:

NEWSFLASH

LOGIN FORM

WHO'S ONLINE

MAIN MENU

αναζήτησηHome Contact Us ■ ■- Links

Joomla 1 .0- Experience theFreedom . It has never beeneasier to create your owndynamic site. Manage all yourcontent from the best CMSadmin interface

lowered by

£ 4 J o o m la !Γaa. mardiris

Εξοδος

Εχουμε 1 μέλος onlinemardn i s

ΑΝΑΖΗΤΗΣΗ | ΕΓΓΡΑΦΕΣ (new)

Η διαγραφή πραγματοποιήθηκε ετπτυχως'Πίσω στα αρχεία.

Εικόνα 22 Μήνυμα επιτυχούς διαγραφής εγγραφής

Σελίδα 55 από 93

Page 56: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

8.4 Χρήση εφαρμογής από τον διαχειριστήΟ διαχειριστής της εφαρμογής έχει κάποιες παραπάνω δυνατότητες από

τους άλλους δύο τύπους λογαριασμών, αυτές οι δυνατότητες είναι:

• Τροποποίηση και διαγραφή εγγραφών από όλους τους καθηγητές

• Προσθήκη, επεξεργασία, διαγραφή καθηγητών

Πιο αναλυτικά:

8.4.1 Τροποποίηση και διαγραφή εγγραφών από όλους τους

καθηγητές

ΕΓΓΡΑΦΕΣ

Logout

Home

Joom la! L icense

News

Blog

L inks

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

Y our Details

Subm it News

Submit W ebLink

Check-In My Item s

Logout

Joom la! Home

Joom la! Forum s

OSM Home

v ju c i io u u i c . c r i a n c i :>home of Joomla!

^JU U I I IKJ!version 1 .0

ΑΝΑΖΗΤΗΣΗ | ΕΠΕΞΕΡΓΑΣΙΑ| ΝΕΑ ΕΓΓΡΑΦΗ | ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΩΝ | ΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ | Help

Ημερ/νία Μάθημα Εκτηνητής - τ ίςΕξάμηνο - Γιπτος Λετττομέριες Τ ροπ/ση Delete

2009-05-13

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2003-2009

ΕΡΓΑΣΤΗΡΙΟ■1ηΠΡΟΟΔΟΣ

Αρχείο: FRAGGIDISLEONIDAS_ANALYSI SYSTIMATON &TECHNOLOGIALOGISMIKOY EARINO2008-2009__Ε RGA STIRIOJ iPROODOS.txt

Περιγραφή: θέματα εργαστηρίου 1ης ττροοδου

Κοινοποιημένο: ΝΑΙ

/ X

2009-05-13

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

ΦΡΑΓΓΙΔΗΣΛΕΩΝΙΔΑΣ

ΕΑΡΙΝΟ2003-2009

ΑΕΞΕΤΑΣΤΙΚΗ

Αρχείο: FRAGGIDISLEONIDAS ANALYSI SYSTIMATON &TECHNOLOGIALOGISMIKOY_EARINO2008-2009__E RGA STIRIOJ iPROODOS.docx

Περιγραφή: Με αυτά τα θέματα πέρασαν 30 αττο τους 100 Φοσητές

Κοινοποιημένο: ΝΑΙ

/ X

2009-05-14 ΓΡΑΦΙΚΑ ΓΚΟΥΜΑΣ ΣΤΕΦΑΝΟΣ

ΕΑΡΙΝΟ2003-2009

Α

Αρχείο: GKOYMAS STEFANOS_GRAFIKA_EARINO 2008-2009__Α EXETASTIKI_.txt

ι / XΕΞΕΤΑΣΤΙΚΗ Κοίνοποιημένο: ΝΑΙ

Αρχείο: GRAMMATIKOPOYLOY

Εικόνα 23 Εμφάνιση όλων των εγγραφών από όλους τους καθηγητές στον διαχειριστή της εφαρμογής με δικαιώματα τροποποίησης και διαγραφής

Ενώ οι καθηγητές στις λίστα εγγραφών μπορούν να δούνε μόνο τα δικά

τους μαθήματα, ο διαχειριστής της εφαρμογής βλέπει τις εγγραφές όλων

των καθηγητών και φυσικά μπορεί να τροποποιήσει ή να διαγράψει

οποιαδήποτε χωρίς στην τροποποίηση να έχει των περιορισμό στο όνομα

του καθηγητή.

Σελίδα 56 από 93

Page 57: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.4.2 Προσθήκη

Ο διαχειριστής έχει επίσης την δυνατότητα να προσθέτει καθηγητές αυτό

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

θα την δούμε αναλυτικά παρακάτω,

ΟΝΟΜΑ:

IDJJSER:

ID_TEACHER_LEVEL:LOGIN FORM

PERMANENT:

| Εισαγωγή Καθηγητή |Logout

USER MENU

ΑΡΧΕΙΟ ΜΑΖΙΚΗΣ ΕΙΣΑΓΩΓΗΣ:

Home

Joom la! L icense

Contact Us

Search

News Feeds

FAQs

W rapper

VSbank

Submit News

Logout

Joom la! Home

OpenSourceMattershome of Joomla!

J o o m la !version 1 .0

ΑΝΑΖΗΤΗΣΗ ΠΡΟΒΟΛΗ-ΕΠΕ=ΕΡΓΑΣΙΑ-ΔΙΑΠ>ι|ιII IIIU I LI I IMHIUI'l I ΙΙΙαΙίΟΛΗ-ΕΠΕΞΕΡΓΑΣΙΑ-ΔΙΑΓΡΑΦΗ ΚΑΘΗΓΗΤΩΝΗΓΤΩΝ)ΝΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΗΓΓΩΝ)

Ε ΣΑΓΩΓΗ ΚΑΘΗΓΗΤΗΕΠ 8Ε 0

ΜΑΖ KH Ε ΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ

Submit W ebLink

Αναζήτηση... | Εισαγωγή ΚαθηγητώνCheck-In My Item s

Το αρχαο μαζικής εννοαωο κειυενου itrti_Q_kmflita»awwil lUll lu είναι σε U TF-δ και το περιεχόμενό

Εικόνα 24 Μέθοδοι εισαγωγής εισηγητών πάνω μονή εισαγωγή και κάτω μαζική εισαγωγή

στην απλή εισαγωγή καθηγητή ο διαχειριστής καλείτε να προσθέσει τα

ακόλουθα πεδία για να γίνει επιτυχώς η εισαγωγή καθηγητή:

• Όνομα

• Επίθετο

• id_user

• id_teacher_level

• permanent

Σελίδα 57 από 93

Page 58: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Αφού κάνει την προσθήκη των πεδίων και πατήσει "Εισαγωγή καθηγητή” ο

καθηγητής πλέον είναι στην λίστα και εμφανίζεται σε όλα τα αντίστοιχα

πεδία που χρησιμοποιεί η εφαρμογή.

8.4.3 Τροποποίηση - ΔιαγραφήMAIN MENU

|ΐΡ_υ$ΕΡ|ίρ1τΕΑ0ΗΕΡ_ίΕνΕί|ΡΕΡΜΑΝΕΝΤ|Επεξεργασία|[)βΙβίβ

ΒΛΥΣΝΑΚΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΒΡΟΧΙΔΟΥ ΕΛΕΝΗ

ΓΕΡΟΝΤΙΔΗΣ ΙΩΑΝΝΗΣ

LOGIN FORM

Logout

USER MENU ΔΑΛΛΑΣ ΓΙΩΡΓΟΣ

ΔΕΛΙΑΣ ΑΝΤΩΝΗΣ

I ΔΡΓΓΣΑΚΗ ΧΑΙΔΩ

ΖΑΪΜΗ ΑΝΤΙΓΟΝΗ

! ΖΕΪΜΠΕΚΗΣ ΑΛΕΞΑΝΔΡΟΣ

Home

News

Contact Us

News Feeds

W rapper

VSbank

Submit News

Logout

Joom la! Home

Powered by

T ? J o o m la !OpenSourceversion 1 0

Joom a L icense

| ΝΕΑ ΕΓΓΡΑΦ Ι^ΠΕΞΕΡΓΑΣΙΑ ΚΑΟΗΓΗΤΩ^ΒΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ | Help

Κ Α Θ Η ΓΗ ΤΕ Σ

ΙΡ (Καθηγητής

94 Γ Κ Ο Υ Μ Α Σ Σ Τ Ε Φ Α Ν Ο Ι

97 ΓΡΑΜΜΑΤΙΚΟΠΟΥΛΟΥ ΑΡΧΟΝΤΙΑ 0

Submit W ebLm k

Check-In My Item s

Εικόνα 25 Σελίδα διαχείρισης εισηγητών (πρόσβαση μόνο ο διαχειριστής)

Με τον ίδιο τρόπο όπως τις εγγραφές, έτσι και στην λίστα των καθηγητών

εμφανίζονται στο τέλος της γραμμής κάθε καθηγητή τα κουμπιά

τροποποίησης και διαγραφής καθηγητών.

Σελίδα 58 από 93

Page 59: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.4.4 Τροποποίηση καθηγητή

Εικόνα 26 Σελίδα τροποποίησης εισηγητή

Η εφαρμογή αναγνωρίζει τον χρήστη που πάμε να επεξεργαστούμε και

μας εμφανίζει τα στοιχεία του όπως ήταν αποθηκευμένα στην βάση,

μπορούμε να κάνουμε οποιαδήποτε αλλαγή στα στοιχεία του καθηγητή και

να πραγματοποιήσουμε την ενημέρωση χωρίς να χαθούν οι εγγραφές που

έχει κάνει στο παρελθόν με το προηγούμενο όνομα.

Σελίδα 59 από 93

Page 60: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

8 .4 .5Διαγραφή καθηγητήContact Us News

NEWSFLASH

Joomla! 1.0 - 'Experience the Freedom'. It has never been easier to create your own dynamic site. Manage all your content from the best CMS admin interface.

LOGIN FORM

Hi, admin

Home

Joom la! L icense

Contact Us

Search

News Feeds

W rapper

VSbank

Links

Powered by

£ 4 J o o m la !OpenSourceversion 1.0

ΑΝΑΖΗΤΗΣΗ | ΕΠΕΞΕΡΓΑΣΙΑΝΕΑ ΕΓΓΡΑΦΗ ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΩΝ ΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ Help

Η διαγραφή ττρσγματοττοιήθηκε ετπτυχωΠίσω στους καθηγητές

Logout

Εικόνα 27 Επιτυχής διαγραφή εισηγητή

Πατώντας το κουμπί διαγραφή στον καθηγητή που θέλουμε να

διαγράψουμε, ο συγκεκριμένος καθηγητής διαγράφεται από την βάση των

καθηγητών και δεν εμφανίζεται σε κανένα από τα πεδία επιλογής

εισηγητών της εφαρμογής, φυσικά οι εγγραφές που έχει κάνει ο

συγκεκριμένος χρήστης δεν διαγράφονται αλλά παραμένουν στην βάση

προς αναζήτηση.

Σελίδα 60 από 93

Page 61: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.5 Μαζική εισαγωγή καθηγητώνΜε την μαζική εισαγωγή καθηγητών μπορούμε να περάσουμε στην βάση

μας πολλούς καθηγητές ταυτόχρονα από ένα αρχείο κειμένου, που μέσα

σε αυτό θα υπάρχουν τα ονόματα και τα χαρακτηριστικά των καθηγητών

προς εισαγωγή, αυτό γίνεται σε τρία απλά βήματα.

Δημιουργούμε και προσθέτουμε τα στοιχεία των καθηγητών σε ένα αρχείο

κειμένου (ίχί)

Εικόνα 28 Μαζική εισαγωγή καθηγητών από αρχείο ίχί

Έπειτα αποθηκεύουμε το αρχείο με κωδικοποίηση ϋΤΡ-8,

Σελίδα 61 από 93

Page 62: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Εικόνα 29 Αλλαγή κωδικοποίησης χαρακτήρων στο αρχείο εισαγωγής

Αφού έχουμε αποθηκεύσει το αρχείο μας τοπικά πάμε και το εισάγουμε

στο πεδίο εισαγωγής αρχείου και πατάμε "εισαγωγή καθηγητών”

D_USER:

D_TEACHER_LEVEL:LOGIN FORM

( Εισαγωγή Καθηγητή |

USER MENU

ΑΡΧΕΙΟ ΜΑΖΙΚΗΣ ΕΙΣΑΓΩΓΗΣ: C:\LJ8θΓ8\Βαλάντης\ϋθε [ [.Ανα^ήτηση :,ί | | Εισαγωγή Καθηγητών

ΟΝΟΜΑ ΕΠΙΘΕΤΟ DJJSER D_TEACHER_LEVEL PERMANENT

ΧΡΗΣΤΟΣ ΠΑΠΑΔΟΠΟΥΛΟΣ 2 4 1

Joom la! L icense

News

Contact Us

Search

News Feeds

W rapper

VSbank

Y our Details

Subm it News

Logout

Joom la! Home

OSM Home

A d m in is tra to r

S u b m it W e b L in k

Check-In My Item s

Το αρχείο μαζικής εισαγωγής θα πρεπα να είναι έγγραφο καμένου (Μ ) η κωδικοποίηση του να αναι σε υΤΡ-δ και το περιεχόμενότου να αναι ως εξήςJoom a Forum s

version ι u

ΑΝΑΖΗΤΗΣΗ | rilFE FPr| ΝΕΑ ΕΓΓΡΑΦΗ | ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘΗΓΗΤΩϋΕΙΣΑΓΩΓΗ ΚΑΘΗΓΗΤΩΝ

3 0 ΜΑ

ΕΠΙ2Ε Ο

PERMANEN

L o g o u t

Εικόνα 30 Τελική εισαγωγή αρχείου στην εφαρμογή

Σελίδα 62 από 93

Page 63: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Αφού γίνει σωστά η καταχώρηση των εισηγητών θα λάβουμε μήνυμα

επιβεβαίωσης όπως παρακάτω

Εικόνα 31 Μήνυμα επιτυχίας μαζικής εισαγωγής

8.5.1 Περιορισμοί της μαζικής εισαγωγής καθηγητών

Οι δεσμεύσεις που έχει η μαζική εισαγωγής καθηγητών ώστε να

λειτουργήσει σωστά και να καταχωρηθούν σωστά οι καθηγητές είναι:

• Το αρχείο που περιέχει τους καθηγητές θα πρέπει να είναι αρχείο

απλού κειμένου (txt)

• Το αρχείο κειμένου που είναι γραμμένα τα ονόματα και τα στοιχεία

των καθηγητών η κωδικοποίηση του θα πρέπει να είναι UTF8 και

όχι ANSI που έχει προεπιλεγμένα το notepad.

Εάν εισαχθεί αρχείο το οποίο δεν είναι επέκτασης txt τότε εμφανίζεται

μήνυμα σφάλματος όπως φαίνεται παρακάτω:

Σελίδα 63 από 93

Page 64: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο ϋοοηίβ!

Εικόνα 32 Μήνυμα λάθους μαζικής εισαγωγής

Σελίδα 64 από 93

Page 65: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

8.6 Αυτόματη προσθήκη εξαμήνουΗ εφαρμογή έχει την δυνατότητα να προσθέτει αυτόματα το τρέχων

εξάμηνο, σύμφωνα με την τρέχουσα ημερομηνία του server προσθέτει το

εξάμηνο, αυτό γίνεται αυτόματα 2 φορές τον χρόνο, μία στις 01/03 που

ξεκινά το εαρινό εξάμηνο και μία στις 01/10 που ξεκινά το χειμερινό

εξάμηνο. Το πρόγραμμα ελέγχει εάν το εξάμηνο είναι αποθηκευμένο στην

βάση και εάν δεν υπάρχει τότε το προσθέτει. Όταν τρέξει το script

εμφανίζει και μήνυμα επιβεβαίωσης με το μήνυμα που εμφανίζεται στην

εικόνα 33.

NEWSFLASH

LOGIN FORM

hom e of Joom lal

ΑΝΑΖΗΤΗΣΗΕΑΡΙΝΟ 2009-2010

Προστέθηκε με εττττυχία το εαρινό εξάμηνο

News

Contact Us

Search

News Feeds

OSM Home

A d m in is tra to r

αναζητησηHome Contact Us News Links

LVM esterday all servers in theU S. went out on strike in a bidto get more RAM and betterCPUs. A spokes person saidthat the need for better RAM

because open source matters 4 )

4 4 I U Μ Η H

was due to some foolincreasing the front-side busspeed. In future, busses will betold to slow down in residential

powarad bv

£4 Joom la!'■ tn'-r;

Κωδικός

□ Να με θυμάσαι

Είσοδος

Ξεχασατε τον κω δικό σας;Δεν εχετε λογαριασμό;

Παρακαλώ ετπλέξτε τα κριτήρια της αναζήτησης σαΕ γ γ ρ α φ η

ΕΠΙΛΕΚΤΕΙΑΘπΜΑ

ΕΙΣΗΓΗΤΗΣ: ΕΠΙΛΕ-ΤΕΤράπεζα Θεμάτων ΕΠΙΛΕΞΤΕΕΞΑΜΗΝΟ

ΕΠΛΕ-ΤΕΕΙΔΟΣJoom lal L icense

Αναζήτηση

Joom lal Home

Joom lal Forum s

Εικόνα 33 Μήνυμα ενημέρωσης προσθήκης νέου εξαμήνου

Σελίδα 65 από 93

Page 66: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Κεφάλαιο 9: ΕπίλογοςΣτόχος της πτυχιακής εργασίας, ήταν η δημιουργία μίας δυναμικής

εφαρμογής και εκσυγχρονισμός της υπάρχουσας τράπεζας θεμάτων για

την νέα ιστοσελίδα του τμήματος, σύμφωνα με τα πρότυπα του Joomla!,

του μεγαλύτερου συστήματος διαχείρισης περιεχομένου.

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

σχεδίασης και δομής ιστοσελίδων καθώς και με τα "εργαλεία” του Joomla!

τα οποία αναφέρθηκαν στα προηγούμενα κεφάλαια.

Στόχος αυτού του συγγράμματος ήταν η γνωριμία με το Joomla! και πώς

μέσω του Joomla!, μπορούν να δημιουργηθούν δυναμικές εφαρμογές και

πώς αυτές συνεργάζεται με πολλές γλώσσες προγραμματισμού.

Στα τελευταία κεφάλαια του συγγράμματος επιχειρείτε η δημιουργία ενός

οδηγού χρήσης (manual) του προγράμματος, καθώς προβάλλονται και οι

δυνατότητες τους.

Τέλος, οι προτάσεις που θα μπορούσαν να γίνουν για την περεταίρω

συνέχεια της προσπάθειας του εκσυγχρονισμού, με την λειτουργία του

νέου ιστοχώρου του τμήματος www.infoman.gr, είναι:

Η μετατροπή και των άλλων ηλεκτρονικών υπηρεσιών ως component του

Joomla!, θα βοηθήσει έτσι ώστε να εκσυγχρονιστεί η εικόνα όλου του

ιστοχώρου καθώς και ότι θα υπάρχει ομοιομορφία μεταξύ των εφαρμογών.

Ενώ, με την μετατροπή των υπηρεσιών ως component του Joomla! θα

κερδίσουμε χρόνο στην είσοδο των ηλεκτρονικών υπηρεσιών αφού θα

χρησιμοποιείται μόνο ένα login στην σελίδα και όχι η σελίδα να κάνει

ανακατεύθυνση ώστε ο χρήστης να εισάγει εκ νέου τα στοιχεία του.

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

αφού αυτό υποστηρίζετε από το Joomla! καθώς και εγκατάσταση των

components του τμήματος σε άλλους ιστοχώρους άλλων τμημάτων

(δωρεά extensions).

Σελίδα 66 από 93

Page 67: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Αναφορές

• Hagen Graf, (2008), Joom la ! 1.5, Michigan: Pearson Education

• David Viney (2008), G et to the Top on Joom la , London: Nicholas

Brealey Publishing

• James Kennard (2007), M aste ring Joom la ! 1.5 E x tens ion a n d

F ra m e w o rk D eve lo pm e n t: The P ro fe ss ion a l's G u ide to

P rog ram m ing Joom la !, Berlin: Packt Pub

• Adhicipta R. Wirawan (2009), M em bangun W eb S to re D engan

Joom la , England: Elex Media Komputindo

• Ollie (2007), P anduan P ra k tis M endesa in Tem p la te Joom la !,

MediaKita

• Yuhefizar (2009), W ebsite In te rface Joom la , Ireland: Elex Media

Komputindo

• Tessa Blakeley Silver (2007), Jo o m la ! T em pla te D esign , Packt

• Brandon Dawson and Tom Canavan (2008), Jo o m la ! C ash: M oney­

m ak ing W eapons fo r Y ou r Joom la ! W ebsite , Packt Publishing

• Rahmel D., (2007), B e g in n ing Joom la !, London: Apress

• Tim Schurmann (2007), P ra x isw isse n Joom la ! ,O'Reilly

• Robert Deutz (2008), Joom la , Berlin: Springer

• Hanser Verlag (2008), Jo o m la ! 1.5, B e rlin : Hanser Verlag

• Cory Webb (2009), B e g in n ing Joom la !, John Wiley & Sons Inc

• Michelle M. Griffin (2008), Joom la ! 1.5 & V irtuem art, Booksurge Llc

• Dan Rahmel (2009), A d v a n c e d Joom la !, Apress L. P.

• Chris Davenport (2009), Jo o m la ! Tem p la tes : The O ffic ia l Guide,

John Wiley & Sons, Incorporated

Σελίδα 67 από 93

Page 68: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Βιβλιογραφία• Jowers T., (2007), O pen S ource P ro : Joom la , Paris: Lulu.com

• R Allen Wyke, Skip Matheny, R Allen Wyke, (2007), Up a n d

R unn ing w ith Joom la , Amsterdam: O'Reilly

• Rahmel D., (2007), P ro fe ss io n a l Joom la !, Berlin: John Wiley and

Sons

• Cory Webb., (2009), B e g inn ing Joom la ! W ebsite D eve lopm en t,

Oxford: John Wiley and Sons

• Adhicipta R. Wirawan, (2008), M em bangun W eb S to re D engan

Joom la , Oxford: Elex Media Komputindo

• Hagen Graf, (2008), Joom la ! 1.5, Michigan: Pearson Education

• Μαρκατσέλας Μανώλης, (2008), Μ ά θετε το Joom la 1.5 εύ κο λα κα ι

γρήγορα, Αθήνα, Ελλάδα: Smart Design

Σελίδα 68 από 93

Page 69: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

Χρήσιμες διευθύνσειςΠαρακάτω παραθέτονται μερικές χρήσιμες διευθύνσεις στις οποίες θα

βρείτε όλα όσα ζητάτε για το Joomla!

• http://www.joomla.org - Joom la !

• http://www.joomla.gr - Jo o m la ! Ε λλην ική κο ινό τη τα υ π ο σ τή ρ ιξη ς

• http://forum.joomla.org - Joom la !

• http://extensions.joomla.org - Jo o m la ! E x te n s ion s D ire c to ry

• http://docs.joomla.org - Jo o m la ! D ocum en ta tion

• http://www.joomlart.com - Joom la T em p la tes C lub - P ro fe ss io n a l -

H ig h q u a lity Joom la tem p la te

• http://www.bonusthemes.com - B o n usT h em e s - Jo o m la ! Tem p la tes

C lub - W eb 2 .0 designs, P S D sources, Tu to ria ls a n d P ro fe ss ion a l

S u p po rt - M a in

• http://www.joomladesigns.co.uk - Jo o m la d e s ig n s - Joom la

Tem pla tes, F ree Joom la Tem pla tes, Joom la R eso u rce s - H om e

• http://www.joomlashack.com - Joom la T em p la tes a n d Joom la 1.5

Tem p la tes from Jo o m la sh a ck

• http://www.bestofjoomla.com - B e s t o f Jo o m la ! The #1 jo o m la

tem p la tes, re so u rce s a n d ex te n s io n s

• http://www.joomfish.net - G et s ta rte d w ith Joom !F ish

• http://www.joomlaworks.gr - Jo o m la W o rks | P ro fe ss ion a l Joom la !

ex te n s io n s

• http://www.youjoomla.com - Joom la T em p la tes C lub - P rem ium

Joom la Tem p la tes

Σελίδα 69 από 93

Page 70: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

Παράρτημα

Κώδικας εφαρμογής:

admin_vsbank.php<?phpdefined( '_VALID_M OS' ) or d ie( 'Restricted access' );?><style type="text/css">< !--img {border: 0px;}#da tebutton{ w idth:16px; height:16px; padding:0px; margin:0px; border:0px;background-im age:url(<?php echo $m ainfram e- >getC fg('live_site ');?>/com ponents/com _vsbank/im ages/calendar.g if); w idth:16px; height:16px;}

tab le .tab lecss {border-w idth: 1px 1px 1px 1 px; border-spacing: 0px; border-style: outse t outse t outse t outset; border-color: gray gray gray gray; border-collapse: separate; background-color: white;

}tab le .tab lecss th {

border-w idth: 1px 1px 1px 1 px; padding: 0px 0px 0px 0px; border-style: inset inse t inset inset; border-color: gray gray gray gray; background-color: white;-m oz-border-radius: 3px 3px 3px 3px;

}tab le .tab lecss td {

border-w idth: 1px 1px 1px 1 px; padding: 0px 0px 0px 0px; border-style: inset inse t inset inset; border-color: gray gray gray gray; background-color: white;-m oz-border-radius: 3px 3px 3px 3px;

}}--></style><?php m osCom m onHTM L::loadC alendar(); ?>

< link re l="stylesheet" type="text/css" m edia="all" href="<?php echo $m osConfig_live_site; ?>/includes/js/ca lendar/calendar-m os.css" title="green" />

<scrip t type="text/javascript" src="<?php echo $m osConfig_live_site; ?>/includes/js/joom la.javascript.js"></script> <scrip t type="text/javascript" src="<?php echo $m osConfig_live_site; ?>/includes/js/ca lendar/calendar_m ini.js"></scrip t> <scrip t type="text/javascript" src="<?php echo $m osConfig_live_site; ?>/includes/js/ca lendar/lang/calendar-

en.js"></script>

<?if ($m y->usertype=='Super A dm inistrator'){//ΠΡΟ ΣΘ ΗΚΗ ΚΑΘΗΓΗΤΗ

if ($_G E T[task ']== 'add_ teacher'){echo '<form action=M'.$P H P _SE LF.'M method="post">

<table><tr><td>Ο ΝΟ Μ Α:</td> <td>< input type="text" nam e=Mf_nam eM />< /td></tr><br><tr><td>ΕΠΙΘ ΕΤΟ :</td> <td>< input type="text" nam e="l_nam e" />< /td></tr><br><tr><td>ID_USER :</td> < td>< input type="text" nam e="id_user" /></td></tr><br><tr><td>ID_TEACH ER _LEVEL:</td> <td>< inpu t type="text" nam e="id_teacher_ leve l" /></td></tr><br> <tr><td>PER M ANENT:</td> <td>< inpu t type="text" nam e="perm anent" />< /td></tr><br></tab le>

<input type="subm it" id="subm it_ teacher" nam e="subm it_teacher" va lue="Ε ισαγω γή Καθηγητή" /> <br> </form>';echo '<br><br><br><br><br><br> ';

if (isset($_P O S T[subm it_ teacher'])){$f_nam e = $_POST[f_nam e];$l_name = $_PO ST[l_nam e];$ id_user = $_PO ST[id_user];$ id_teacher_level = $_PO ST[id_teacher_level];$permanent = $_PO ST[perm anent];

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" ); $query = "INSERT INTO teachers (f_nam e,l_nam e,id_user,id_ teacherjeve l,perm anent) VALUES

('".$ f_nam e."7 ".$ l_nam e."7 ".$ id_use r"7".$ id_ teacheM eveL"7".$perm anen t"')";$database->setQ uery( $query );$database->query();

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" ); echo 'Προστέθηκε με επιτυχία: <b>'.$ f_nam e.' '.$l_nam e.' '.$id_user.' '.$id_teacher_ leve l.' '.$permanent.'< /b>';

}

if (isset($_PO ST['subm it_ teacherfile '])){if ($_FILES["file"]["type"] == "text/p la in"){

($_FILES["file"]["error"] > 0){

echo "Return Code: " . $_FILES["file"]["error"] . "<br />";

if

Σελίδα 70 από 93

Page 71: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

}e lse {

$nam efile = "import.txt";

m ove_uploaded_file($_FILES["file"]["tm p_nam e"],$m ainfram e->getC fg('abso lute_path ').

"/com ponents/com _vsbank/files/" . $namefile);

$source_file = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/im port.txt";

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = "LO AD DATA LOCAL INFILE \"$source_ file \" INTO TA BLE 'teachers ' FIELDS TERM INATED BY LINES TERM INATED BY '\r\n ' (f_name, l_name, id_user, id_teacher_level, permanent)";

$database->setQ uery( $query );$database->query();

echo m ysql_error();

echo "Η εισαγωγή των δεδομένων πραγματοποιήθηκε";

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );}

}e lse {echo "Λ άθος τύπος αρχείου, δεκτοί

τύποι αρχείων είναι: txt";}

}

//END VALANTIS MAZIKI EISAGW GI

?><scrip t type="text/javascript"> function va lidate_required(fie ld ,alerttxt){with (field){if (value==null||value=="")

{a lert(a lerttxt);return false;} else {return true}}}

function va lidate_form (th isform ){with (th isform ){

}}</script>

<scrip t type="text/javascript"> function show_confirm (){var r=confirm (”Δ ιαγραφή”); if (r==true)

{docum ent.w rite(” Η διαγραφή ολοκληρώ θηκε”); }

else{docum ent.w rite(” Η διαγραφή ακυρώ θηκε”);}

}</script>

if (va lidate_required(townindb,"M AZIKH EISAGW GH KATH IG ITW N")==fa lse){ tow nindb.focus();return false;

}if (validate_required(up loadedfile ,” Παρακαλούμε επ ιλέξτε το αρχείο !”)==fa lse){

uploadedfile.focus();return false;}

<br /><br /><!-- Auti einai i form a opou anevazoum e to arxeio--><form enctype="m ultipart/fo rm -data" action="<?=$PH P_SELF?>" m ethod="PO ST" onsubm it="return va lidate_form (th is)">< input type="h idden" nam e="M AX_FILE_SIZE" va lue="100000" /><!--Αρχείο csv: < input nam e=” uploadedfile ” type=”file ” />--><label fo r= ”file ”>ΑΡΧΕΙΟ ΜΑΖΙΚΗΣ ΕΙΣΑΓΩ ΓΗΣ:</labe l>< input type="file " nam e="file" id="file" />< input type=”subm it” id=”subm it_teacher” nam e=”subm it_teacherfile ” va lue=” Εισαγωγή Καθηγητώ ν” /> <br> <br> <br>

<p a lign="le ft”> Το αρχείο μαζικής ε ισαγω γής θα π ρέπει να είναι έγγραφο κειμένου (txt) η κωδικοποίηση του να είναι σε UTF-8 και το π εριεχόμενο του να είναι ώ ς εξής: <br> <br>

Ο ΝΟ Μ Α ΕΠΙΘΕΤΟ ID_USER ID_TEACH ER_LEVEL PER M ANENT <br> <br>ΧΡΗ ΣΤΟ Σ ΠΑΠΑΔΟΠΟΥΛΟ Σ 2 4 1 <br>ΑΛΕΞΑΝΔΡΑ Χ ΡΗ ΣΤΟ Υ 2 1 2 <br> κ.ο.κ';</ρ>

<!--< input type=”subm it” nam e=” upload” va lue=”Α νέβασμα” />--></form>

<?php

}

//ΤΡΟ ΠΟ ΠΟ ΙΗΣΗ ΚΑΘΗΓΗΤΗ

Σελίδα 71 από 93

Page 72: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

if ($_G E T [task ']= -ed it_ te a che r'){$ teacher_id = $_GET['id '];

include ( $m ainfram e->getC fg('abso lute_path '). M/com ponents/com _vsbank/connect.phpM );$query = "SELECT * FROM teachers W H ER E id = ".$teacher_id."";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

$f_nam e = $row->f_name;$l_name = $row->l_name;$ id_user = $row->id_user;$ id_teacher_level = $row->id_teacher_level;$perm anent = $row->permanent;

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

echo '<form action="'.$PHP_SELF.'" m ethod="post"> <table><tr><td>Ο ΝΟ Μ Α:</td> <td>< input type="text" nam e="f_nam e" va lue=M'.$f_nam e.'M />< /td></tr><br><tr><td>ΕΠΙΘ ΕΤΟ :</td> <td>< input type="text" nam e="l_nam e" value="'.$ l_nam e.'"/></td></tr><br><tr><td>ID_USER :</td> < td>< input type="text" nam e="id_user" va lue="'.$ id_user.'"/></td></tr><br><tr><td>ID_TEACH ER _LEVEL:</td> <td>< inpu t type="text" nam e="id_teacher_ leve l" value="'.$ id_teacher_ leve l.'"/>< /td>< /tr><br> <tr><td>PER M ANENT:</td> <td>< inpu t type="text" nam e="perm anent" va lue="'.$perm anent.'"/></td></tr><br>< /tab le>

<input type="subm it" id="ed it_ teacher" nam e="edit_ teacher" va lue="Ενημέρω ση εισηγητή" /></form>';

if (isset($_P O S T[ed it_ teacher'])){$f_nam e = $_POST[f_nam e];$l_name = $_PO ST[l_nam e];$ id_user = $_PO ST[id_user];$ id_teacher_level = $_PO sT[id_teacher_leve l];$perm anent = $_PO ST[perm anent];

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );$query = "U PD ATE teachers S e t

f_nam e='".$ f_nam e."',l_nam e='".$ l_nam e."',id_user= '".$ id_user."',id_ teacher_leve l= '".$ id_teacher_ level."',perm anent= '".$perm anent."' W H ER E id = '".$teacher_id."'";

$database->setQ uery( $query );$database->query();

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" ); echo 'Τροποποιήθηκαν με επιτυχία: <b>'.$ f_nam e.' '.$l_nam e.' '.$id_user.' '.$id_teacher_ leve l.' '.$perm anent.' για τον καθηγητή με id:

'.$teacher_id.'< /b> ';mosRedirect( "index.php?option=com _vsbank&am p;task=teachers");

}}

//ΤΡΟ ΠΟ ΠΟ ΙΗΣΗ ΑΡΧΕΙΟΥ if ($ _ G E T [task ']= -ed it_ re co rd '){

$record_id = $_G ET[id '];$query = "SELECT * FROM #__vsb_record W H ER E r_id = ".$record_id."";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

$r_id = $row->r_id;$record_date = $row->record_date;$record_lesson = $row->record_lesson;$record_teacher = $row->record_teacher;$record_second_teacher = $row->record_second_teacher;$record_sem ester = $row->record_sem ester;$record_type = $row->record_type;

$record_proodos = $row->record_proodos;$record_file = $row->record_file;$record_description = $row->record_description;$record_shared = $row->record_shared;

}echo '<form action="'.$PHP_SELF.'" m ethod="post" enctype="m ultipart/fo rm -data"> ';

?><table><tr><td>ΗΜ ΕΡΟΜ ΗΝΙΑ: </td>

<td c lass="date"> < input m axlength="19" s ize="25" id="date" nam e="date1" dass="text_area" type="text" va lue="<?php echo $record_date; ?>" />

< input onclick="retum showCalendar('date', 'dd-m m -y');" va lue="" id="datebutton" class="button" type="reset" /> </td></tr>

<?php echo '< ^ > ^ > Μ Α Θ Η Μ Α : </td>

<td><select nam e="lesson" size="1" value=""> ';//ΣΥΝΔΕΣΗ ΜΕ ΕΞΩΤΕΡΙΚΗ DB ΓΙΑ ΕΠΕΞΕΡΓΑΣΙΑinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM course O RDER BY name';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->nam e == $record_lesson)echo '<option va lue="' . $ row->nam e . '" selected> ' . $ row->nam e .

'</option>';elseecho '<option va lue="' . $ row->nam e . '"> ' . $ row->nam e .

'</option>';}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );?></se lect></tr></td>

</p>< ^ > ^ > Ε ΙΣ Η Γ Η Τ Η Σ : </td><td> <se lect nam e="teacher" size="1" value="">

<option va lue="*" > </option>

<?phpinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM teachers O RDER BY l_name';

Σελίδα 72 από 93

Page 73: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

$database->setQ uery( $query ); $ rows = $database-> loadO bjectList(); fo reach ($rows as $row) {

if ($row->l_name . ' ' . $row->f_nam e == $record_teacher) echo '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e .

selected>' . $row->l_nam e . ' ' . $ row->f_nam e . '< /option>';elseecho "<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '">' .

$ row->l_nam e . ' ' . $row->f_nam e .'</option>';}

include ( $mainfram e->getC fg('absolute_path"). "/com ponents/com _vsbank/m am connectphp" );?>

</select></tr></td></p>

<tr><td>ΔΕΥΤΕΡΟ Σ ΕΙΣΗΓΗΤΗΣ (Π ΡΟ ΑΙΡΕΤΙΚO ):< /td><td><select nam e="teacher2" size="1" value="">

<option va lue="*" >*</option>

<?phpinclude ( $m ainfram e->getC fg('abso lute_path '). M/com ponents/com _vsbank/connect.phpM );

$query = 'S ELECT * FROM teachers O RDER BY l_name';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->l_name . ' ' . $row->f_nam e == $record_second_teacher) echo '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '"

selected> ' . $row->l_nam e . ' ' . $ row->f_nam e . '< /option>';elseecho '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '">' .

$ row->l_nam e . ' ' . $row->f_nam e .'</option>';}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );?>

</select></tr></td></p>

<tr><td>ΕΞΑΜ ΗΝΟ : </td><td><select nam e="sem ester" size="1" va lue :

<?php

$row->sem ester_nam e . "</option>";

>sem ester_nam e . "</option>";

?></select></tr></td>

</p>< ^ > ^ > Ε ΙΔ Ο Σ : </td>

}

$query = 'S ELECT * FROM #__vsb_sem ester O RDER BY s_id DESC';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->sem ester_nam e == $record_sem ester)echo '<option va lue="' . $ row->sem ester_nam e . '" selected>' .

elseecho '<option va lue="' . $ row->sem ester_nam e . '">' . $row-

<td><select nam e="type" size="1" value=""> <?php

$query = "SELECT * FROM #__vsb_type O RDER BY type_name";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->type_nam e == $record_type)echo "<option va lue="' . $ row->type_nam e . '" selected>" . $row-

>type_nam e . "</option>";

. "</option>";

elseecho '<option va lue="' . $ row->type_nam e . '">' . $row->type_nam e

}?>

</select></td></tr><tr><td>ΤΥΠΟ Σ ΕΞΕΤΑΣΗΣ (συμπληρώ νετε μόνο εάν είναι εργαστήριο): </td><td><select nam e="noproodou" size="1" va lue=""> <option

va lue="*" > </option><?php

$query = "SELECT * FROM #__vsb_proodoi O RDER BY p_name";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->p_nam e == $record_proodos)echo "<option va lue="' . $row->p_nam e . '" selected>" . $row-

>p_nam e . "</option>";

"</option>";

elseecho '<option va lue="' . $row->p_nam e . '">' . $row->p_nam e .

}?>

</select></tr></td>

<tr><td>ΚΟ ΙΝ Ο Π Ο ΙΗΜ ΕΝ Ο :</td><?php //echo '<b>'.$record_shared.'</b> ';?><td><select nam e="shared" s ize="1" value=""><?php

if ($record_shared == MΝΑΙM){$shared_yes = "selected";} if ($record_shared == "Ο ΧΙ"){$shared_no = "selected";}

Σελίδα 73 από 93

Page 74: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

?><option va lue="N A I" <?php echo $shared_yes;?>>NAI</option>

<option va lue="O XI" <?php echo $shared_no;?>>O XI</option> </se lect></tr></td>

</p>

<tr><td>ΠΕΡΙΓΡΑΦ Η (nPO A IP ETIK O ):< /td><td>< input type=Mtext" nam e=Mrecord_descriptionM size=M80" va lue=M<?php echo $record_description; ?>”></td></tr>

<td><label for="file">APXEIO :< /labe l>< /td><td>< input type=MtextM name=Mrecord_fileM size=M80M value=M<?php echo $record_file; ?>M></tr></td><tr><td><label for="file">N EO APXEIO:</label></td>

<td>< input type=MfileM name=MnewfileM id="fileM /> </td></tr>

</table>

<div align=McenterM><input type="subm it" id="ed it_record" nam e="edit_record" va lue="Eνημέρω ση Εγγραφής" />

</div></form>

<?php}

if (isset($_P O S T[ed it_record '])){

$new file = $_FILES[MnewfileM][MnameM];

if ($newfile == ""){$nam efile = $record_file;}else {

function greeklish($Nam e){$greek = array('α ','ά ','Ά ','Α ','β ','Β ','γ ', 'Γ', 'δ ','Δ ','ε ','έ ',Έ ','Έ ','ζ ','Ζ ','η ','ή ',Ή ','θ ','Θ ','ι','ί','ι1,'ΐ,Ί','Ί ',Ί ','κ ', 'Κ ','λ ','Λ ','μ ','Μ ','ν ', 'Ν ','ξ ', '= ', 'ο ', 'ό ',Ό ',Ό ','π ','Π ','ρ ','Ρ ','σ','ς', 'Σ ','τ ',Τ ,'υ ','ύ ',Ύ ','Ύ ','φ ','Φ ','χ ','Χ ,'ψ ','Ψ ','ω ','ώ ','Ω ',Ώ '; ',... ,....,',','/','*');$english = array('a ', 'a ','A ','A ','b ','B ','g ','G ','d ','D ','e ','e ','E ','E ','z ','Z ','i','i',T ,'th ',TH ',

'i','i','i','i','I','I','I','k ','K ','l','L ','m ','M ','n ','N ','x ','X ','o ','o ','O ','O ','p ','P ' ,'r','R ','s ','s ','S ','t','T ','u ','u ','Y ','Y ','f','F ','ch ','CH ','ps ','PS ','o ','o ','O ','O ','$string = str_replace($greek, $english, $Name); return $string;}

$delete_file = $record_file;$directory = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/";$ tm pfile = $directory . $delete_file; unlink($tmpfile);

$ teachergreeklish = greeklish(M$_POST[teacher]M);$sem estergreeklish = greeklish(M$_POST[semester]M);$ lessongreeklish = greeklish(M$_POST[lesson]M);$ typegreeklish = greeklish(M'$_POST[type]M);$no = greeklish(M'$_POST[noproodou]M);$keno = m_ m;$ext = strrchr($_FILES[Mnewfile"][Mname"],'.');$nam efile =

$teachergreeklish.$keno.$ lessongreeklish.$keno.$sem estergreeklish.$keno.$typegreeklish.$no.$ext;

m ove_uploaded_file($_FILES["newfile"]["tm p_nam e"],$m ainfram e->getC fg('abso lute_path '). M/components/com_vsbank/files/M . $namefile); echo "Αρχικό όνομα αρχείου: " . $_FILES["new file"]["nam e"] . "<br />";

echo "Αποθηκεύτηκε ώς: " . $nam efile . M<br />M; echo "Μ έγεθος: " . ($_FILES["newfile"]["size"] / 1024) . " Kb" . "<br />";

}

$record_date = $_POST[date1];$record_lesson = $_POST[lesson];$record_teacher = $_POST[teacher];$record_second_teacher = $_PO ST[teacher2]; $record_sem ester = $_POST[sem ester];$record_type = $_PO ST[type];

$record_proodos = $_PO ST[noproodou]; $record_description = $_PO ST[record_description]; $record_shared = $_POST[shared];

$query = "U PD ATE #__vsb_record SETrecord_date='".$record_date."',record_lesson= '".$record_lesson."',record_teacher= '".$record_teacher."',record_second_teacher= '".$record_second_teacher."',record_sem ester= '".$record_sem ester."',record_type='".$record_type."',record_file='".$namefile."',record_proodos= '".$record_proodos."',record_description='".$record_description."',record_shared='".$record_shared."'W H ER E r_id = '".$record_ id .... ;

$database->setQ uery( $query );$database->query();

echo 'Τροποποιήθηκαν με επιτυχία: <b>'.$record_date.' '.$record_lesson.' '.$record_teacher.' '.$record_second_teacher.' '.$record_sem ester.' '.$record_type.' '.$record_proodos.' '.$record_file .' '.$record_descrip tion.' '.$record_shared.' για το record με id: '.$record_id.'< /b>';

Σελίδα 74 από 93

Page 75: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

mosRedirect( "m dex.php?option=com _vsbank&am p;task=records");

}

//ΔΙΑΓΡΑΦ Η ΚΑΘΗΓΗΤΗ if ($_G ET[task ']== 'de le te_teacher'){

$ teacher_id = $_GET['id '];if ($teacher_id != ''){include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = "D ELE TE FR O M teachers W H E R E id = '".$teacher_id."'";$database->setQ uery( $query );$database->query();

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

echo "Η διαγραφή π ραγματοπ οιήθηκε ε π ιτυ χ ώ ς Ν ^ / x a href= 'index.php?option=com _vsbank& task= teachers '>Π ίσω στους καθηγητές<^> .";

}}

//ΔΙΑΓΡΑΦ Η ΑΡΧΕΙΟΥ if ($_GET['task']== 'delete_record '){

$record_id = $_G ET[id '];if ($record_id != ''){$query = "SELECT record_file F R O M #__vsb_record W H E R E r_id = ".$record_id.""; $database->setQ uery( $query );$rows = $database-> loadO bjectList();

foreach ($rows as $row) {$de le te_file = $row->record_file;$directory = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/";$ tm pfile = $directory . $delete_file;unlink($tmpfile);}

$query = "D E LE TE FR O M #__vsb_record W H E R E r_id = '".$record_id."'";$database->setQ uery( $query );$database->query();

echo "Η διαγραφή π ραγματοπ οιήθηκε ε π ιτυ χ ώ ς Ν ^ / x a href= 'index.php?option=com _vsbank& task=records'>Π ίσω στα α ρ χ ε ία < ^ > "; }

}

//ΠΡΟ ΣΘ ΗΚΗ Μ ΑΘΗΜΑΤΟΣ if ($_G ET['task']== 'add_lesson '){

echo '< form action="'.$PHP_SELF.'" method="post">Ο ΝΟ Μ Α ΜΑΘΗΜΑΤΟΣ:< input type="text" nam e="lessons_nam e" />< input type="subm it" id="subm it_ lesson" nam e="subm it_ lesson" va lue="subm it" /></form>';

if (isset($_PO ST['subm it_ lesson '])){

$ lessons_nam e_post = $_PO ST[lessons_nam e];

$query = "INSERT INTO #__vsb_lessons (lessons_nam e) VALU E S ('".$lessons_nam e_post."')";

$database->setQ uery( $query );

$database->query();

echo 'Προστέθηκε με επιτυχία: <b>'.$ lessons_nam e_post.'< /b>';}

}

//ΠΡΟ ΣΘ ΗΚΗ ΕΞΑΜ ΗΝΟ Υ if ($_GET['task']== 'add_sem ester'){

echo '< form action="'.$PHP_SELF.'" method="post"> Ο ΝΟ Μ ΑΣΙΑ ΕΞΑΜ ΗΝΟ Υ ΠΡΟΣ ΕΙΣΑΓΩΓΗ:< input type="text" nam e="sem ester_nam e" />< input type="subm it" id="subm it_sem ester" nam e="subm it_sem ester" va lue="subm it" /> </form>';

if (isset($_PO ST['subm it_sem ester'])){

$sem ester_nam e_post = $_PO ST[sem ester_nam e];

$query = "INSERT INTO #__vsb_sem ester (semester_nam e) VALU E S ('".$sem ester_nam e_post."')";

$database->setQ uery( $query );

$database->query();

echo 'Προστέθηκε με επιτυχία: <b>'.$sem ester_nam e_post.'< /b> ';}

}

//ΠΡΟ ΣΘ ΗΚΗ ΑΡΧΕΙΟΥ if ($_GET['task']== 'add_record '){

if (isset($_PO ST['subm it_record'])){

?><div>

^ 1 > Ε ισ α γ ω γ ή Νέας εγγρα φ ή ς< ^1 ><p a lign="center">

<?php

Σελίδα 75 από 93

Page 76: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

//function για την μετατροπή των ονομάτων σε greeklishfunction greeklish($Nam e){$greek = array('α ','ά ','Ά ','Α ','β ','Β ','γ ', Τ ', 'δ ','Δ ','ε ','έ ',Έ ','Έ ','ζ ','Ζ ','η ','ή ',Ή ','θ ','Θ ','ι','ί','ϊ’ ,'ΐ,Ί ', 'Ί ',Ί ','κ ','Κ ','λ ','Λ ','μ ','Μ ','ν ','Ν ','ξ ','Ξ ','ο ','ό ','Ο ',Ό ','π ','Π ','ρ ','Ρ ','σ ','ς ', 'Σ ','τ ', 'Τ ','υ ','ύ ',Ύ ','Ύ ','φ ','Φ ','χ ','Χ ','ψ ','Ψ ','ω ','ώ ',Ώ ',Ώ ',' ',...,....,',','/','*');$english = array('a ', 'a ','A ','A ','b ','B ','g ','G ','d ','D ','e ','e ','E ','E ','z ','Z ','i','i',T ,'th ','TH ', 'i','i','i','i','I','I','I','k ','K ','l','L ','m ','M ','n ','N ','x ','X ','o ','o ','O ','O ','p ','P ' ,'r','R ','s ','s ','S ','t','T ','u ','u ','Y ','Y ','f','F ','ch ','CH ','ps ','PS ','o ','o ','O ','O ','$string = str_replace($greek, $english, $Name); return $string;}//Δήλωση μεταβλητών$teachergreeklish = greeklish("$_PO ST[teacher]");$sem estergreeklish = greeklish("$_PO ST[sem ester]");$ lessongreeklish = greeklish("$_PO ST[lesson]");$ typegreeklish = greeklish("'$_PO ST[type]");$no = greeklish("'$_PO ST[noproodou]");$record_date = greeklish("'$_PO ST[date1]");$keno = "_";$ext = strrchr($_FILES["file"]["nam e"],'.');$nam efile = $ teachergreeklish.$keno.$ lessongreeklish.$keno.$sem estergreeklish.$keno.$typegreeklish.$no.$ext;$date = date('d-m-y');

$file_nam e = $_FILES["file"]["nam e"];

if ((($_FILES["file"]["type"] == "application/pdf")|| ($_FILES["file"]["type"] == "application/vnd.openxm lform ats-o fficedocum ent.wordprocessingm l.docum ent")|| ($_FILES["file"]["type"] == "application/vnd.openxm lform ats-o fficedocum ent.spreadsheetm l.sheet")|| ($_FILES["file "]["type"] == "application/m sword")|| ($_FILES["file"]["type"] == "application/zip")|| ($ext == ".rar")|| ($_FILES["file "]["type"] == "text/p la in")|| ($_FILES["file "]["type"] == "text/rtf")|| ($_FILES["file"]["type"] == "application/vnd.m s-excel"))&& ($_FILES["file"]["size"] < 10485760))

{if ($_FILES["file"]["error"] > 0)

{echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}

else{echo "<br />";

if (file_exists($m ainfram e->getC fg('absolu te_path '). "/com ponents/com _vsbank/files/" . $namefile)){echo "^ > Ό ν ο μ α αρχείου: " . $nam efile . "<br />" . "ΠΡΟ ΣΟ ΧΗ: Το αρχείο υπάρχει ήδη, βεβαιωθείτε π ω ς δεν π ροσπ αθείτε να το εισάγετα ι για

δεύτερη φορά, το upload δεν π ρ α γμα τοπ ο ιήθηκε..<^> " . "<br />";}

else{

$teacher =$_POST[teacher];

$ teacher2 =$_PO ST[teacher2];

$ lesson =$_POST[lesson];

$sem ester =$_POST[sem ester];

$type = $_POST[type]; $proodos =

$_PO ST[noproodou];$r_date = $_PO ST[date1]; $r_description =

$_PO ST[description];$r_shared =

$_POST[shared];

$query = "INSERT INTO #__vsb_record (record_date, record_lesson, record_teacher, record_second_teacher, record_semester,record_type, record_proodos, record_file, record_description, record_shared) VALUES('".$r_date .'",'".$ lesson.'",'".$teacher.'",'".$ teacher2.'",'".$sem ester.'",'".$ type.'",'".$proodos.'",'".$nam efile.'",'".$r_descrip tion.'",'".$ r_shared."')";

$database->setQ uery( $query );

$database->query();echo " ^ > Η εγγραφή ολοκληρώ θηκε με επ ιτυ χ ία < ^> " . "<br />";

m ove_uploaded_file($_FILES["file"]["tm p_nam e"],$m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/" . $namefile); echo "Αρχικό όνομα αρχείου: " . $_FILES["file"]["nam e"] . "<br />";

echo "Αποθηκεύτηκε ώς: " . $nam efile . "<br />"; echo "Μ έγεθος: " . ($_FILES["file"]["size"] / 1024) . " Kb" . "<br />";

}}

}else

{echo "^ > Λ ά θ ο ς τύπος ή μεγεθος αρχείου, δεκτοί τύποι αρχείων είναι: doc, docx, xls, xlsx, rtf, txt, pdf, zip, rar και το μέγεθος του αρχείου δεν πρέπει να ξεπερνά τα 3 Μ Β < ^> "; }

}

Σελίδα 76 από 93

Page 77: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

?>echo '<form action="\$P H P _S E LF."' m ethod="post" enctype=Mm ultipart/fo rm -dataM>';

<table><tr><td>ΗΜ ΕΡΟ Μ ΗΝΙΑ: </td>

<td c lass="date">< input m axlength="19" size="25" id="date" nam e="date1" class="text_area" type="text" va lue="<?php echo substr($x->datetim e, 0, strpos($x->datetim e, " ")); ?>" />

< input ond ick="re turn showCalendar('date', 'dd-m m -y');" va lue=""id="datebutton" d ass= "button" type="reset" /> </td></tr>

<tr><td>Μ ΑΘ ΗΜ Α: </td><td><select nam e="lesson" size="1" va lue=""> <option va lue="*" > </option>

'</option>';

<?php//ΣΥΝΔΕΣΗ ΜΕ ΒΑΣΗ EUNI ΓΙΑ Μ ΑΘΗΜΑΤΑ

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );$query = "SELECT name FROM course O RDER BY name";$database->setQ uery( $query );$rows = $da tabase-> loadO bjedList(); foreach ($rows as $row) {

echo "<option va lue="'.$row ->nam e . '"' . ">'. $ row->nam e .

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" ); ?>

</select></td></tr>

< ^ > ^ > Ε ΙΣ Η Γ Η Τ Η Σ : </td><td><select nam e="teacher" size="1" va lue=""> <option va lue="*" > </option>

<?phpinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = "SELECT * FROM teachers O RDER BY l_name";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo "<option va lue="'.$row ->l_nam e . ' ' . $row->f_nam e . '"' . ">'.$row->l_nam e . ' ' . $row->f_nam e . '</option>';

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" ); ?>

</select></td></tr>

<tr><td>ΔΕΥΤΕΡΟ Σ ΕΙΣΗΓΗΤΗΣ (Π ΡΟ ΑΙΡΕΤΙΚO ):< /td><td><select nam e="teacher2" size="1" va lue=""> <option va lue="*" > </option>

<?phpinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM teachers O RDER BY l_name';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo '<option va lue="'.$row ->l_nam e . ' ' . $row->f_nam e . '"' . '>'.$ row->l_nam e . ' ' . $row->f_nam e . '</option>';

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

?></select></td></tr>

<tr><td>ΕΞΑΜ ΗΝΟ : </td><td><select nam e="sem ester" size="1" va lue :

<?php

>sem ester_nam e . '</option>';

?></select></td></tr>

<tr><td>ΕΙΔΟ Σ: </td>

"> <option va lue="*" > < /option>

$query = 'S ELECT * FROM #__vsb_sem ester O RDER BY s_id DESC';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo '<option va lue="'.$row ->sem ester_nam e . '"' . '>'. $row-

<td><select nam e="type" size="1" va lue=""> <option va lue="*" > </option> <?php

$query = 'S ELECT * FROM #__vsb_ type O RDER BY type_nam e'; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo '<option va lue="'.$row ->type_nam e . '"' . '>'. $ row->type_nam e . '</option>'; }

?></select></td></tr>

<tr><td>ΤΥΠΟ Σ ΕΞΕΤΑΣΗΣ (συμπληρώνετε μόνο εάν είναι εργαστήριο): </td><td><select nam e="noproodou" s ize=M1M va lue: va lue="*" > </option>

<?php$query = 'S ELECT * FROM #__vsb_proodoi O RDER BY p_name';

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo '<option va lue="'.$row ->p_nam e . '"' . '>'. $ row->p_nam e . '</option>'; }

?>

"> <option

</select></td></tr>

Σελίδα 77 από 93

Page 78: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

<tr><td>K O IN O nO IH M E N O :</td><td><select nam e=MsharedM size=M1" va lue=MM><option value=M*M > </option>

<option va lue="ΝΑΓ>Ν ΑΙ</option> <option va lue=MΟ ΧΙM>Ο ΧΙ</option>

</se lect></td></tr>

<tr><td>ΠΕΡΙΓΡΑΦ Η (Π ΡΟ ΑΙΡΕΤΙΚO ):< /td>

<td> <textarea name=MdescriptionM cols=M60M rows=M4M></textarea></td></tr>

< tr><td><label for=Mfile M>ΑΡΧΕΙΟ :</labe l></td>

<td>< input type=MfileM name=MfileM id="file" /> </td></tr></table>

<div align=McenterM><input type="subm it" nam e="subm it_record" va lue=MΕισαγωγή εγγραφής" />

<p a lign= ''le ft">* Για να συμπ ληρω θεί σω στά η εγγραφή ελέγξτε τα π αρακάτω </p> <p align=MleftM>- Δεκτοί τύποι αρχείων είναι: doc, docx, xls, xlsx, rtf, txt, pdf, zip, rar.</p><p align=MleftM>- Το μέγεθος του αρχείου δεν θα π ρέπει να ξεπερνά τα 10 MB.</div>

</form>

<?php }//end if url

//ΕΓΓΡΑΦ ΕΣif ($_G ET['task']== 'records'){

echo M<div sty le= 'text-a lign:center;'><b>ΕΓΓΡΑΦ ΕΣ</b><br><br>< /div> < table c lass='tablecss'> <tr><th>Ημερ/νία</th>< Γ ι>Μ ά θ ημ α < /^><th>Ε ισηγητής - τές</th><th>Εξάμηνο - Τ ύπ ος< Μ ><th>Λεπτομέριες</th><th>Τροπ/ση</th><th>Delete</th></tr>M;

$query = MSELECT * FROM # _ v s b _ re c o rd O RDER BY r_id DESCM; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

// echo $row->num;echo M<tr>M;echo M<td>M . $row->record_date . M</td>M; echo M<td>M . $row->record_ lesson . M</td>M;if ($row->record_second_teacher != '-' && $row->record_second_teacher != '*' && $ row->record_second_teacher != '' &&

$ row->record_second_teacher != '* ') {echo M<td>M . $row->record_teacher . M-M . $ row->record_second_teacher . M</td>M;

}e lse {echo M<td>M . $row->record_teacher . M</td>M;

!= '* ') {

}if ($row->record_proodos != '-' && $row->record_proodos != '*' && $ row ->record_proodos != '' && $row->record_proodos

echo M<td>M . $row->record_sem ester . M<br>M . M<br>M . $row->record_type . M - M . $row->record_proodos . M</td>M;

}e lse {echo M<td>M . $row->record_sem ester . M<br>M . M<br>M . $row-

>record_type . M</td>M;}$ filenam e = $row->record_file;$downloadfile = $m ainfram e->getC fg('live_site '). M/components/com_vsbank/files/M.$filename; if ($row->record_description != '-' && $row->record_descrip tion != '*' && $row->record_descrip tion != '' && $row-

>record_descrip tion != '* ') {echo M<td>" . "Αρχείο: " . '<A HREF=' . '"' . $downloadfile . '"' . '>' . $ row->record_file . "</a>" . "<br>" . "<br>" . "Περιγραφή: " . $row-

>record_descrip tion . "<br>" . "<br>" . "Κοινοποιημένο: " . "<strong>" . $row->record_shared . M</strong>M . M</td>M;

}e lse {echo "< td>" . "Αρχείο: " . '<A HREF=' . '"' . $downloadfile . '"' . '>' .

$ row->record_file . "< /a>" . "<br>" . "<br>" . "Κοινοποιημένο: " . "<strong>" . $row->record_shared . M</strong>M . M</td>M;}echo '<td style=Mtext-align:center;M><a href=M index.php?option=com _vsbank&am p;task=edit_record&am p;id='.$row-

>r_id.'M><img src=M '.$m ainframe->getCfg('live_site').'/components/com_vsbank/images/edit.jpgM />< /a>< /td>< td style=Mtext-align:center;M><a href=M index.php?option=com _vsbank&am p;task=delete_record&am p;id= '.$row->r_id.'" onC lick="re tum confirm ('."'H εγγραφή θα διαγραφή οριστικά, είστε βέβαιος;"Y)"><img src="'.$m ainfram e->getC fg('live_site ').'/com ponents/com _vsbank/im ages/delete.jpgM /></a></td>';

echo M</tr>M;}

$num ofrow s = count($rows);echo M</table><div style='text-aΠgn:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγρα φ ές<^ ίν> ";

}

//ΚΑΘ ΗΓΗΤΕΣif ($_G ET['task']== 'teachers '){

echo M<div style='text-aiign:center;'><b>ΚΑΘΗΓΗΤΕΣ</b><br><br></div>M; echo M<table c lass='tablecss'>

<tr><th>ID</th><th>Καθηγητής</th><th>ID_USER</th>

Σελίδα 78 από 93

Page 79: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

<th>ID_TEAC HER _LEVEL</th><th>PERM ANENT</th><th>Ene£epYaoia</th><th>Delete</th></tr>";include ( $m ainfram e->getC fg('abso lute_path '). M/com ponents/com _vsbank/connect.phpM );

$query = "Se Le c T * FROM teachers O RDER BY l_name";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) { echo "<tr>";echo "< td>" . $row->id . "</td>";echo "< td>" . $row->l_nam e . " " . $row->f_nam e . "</td>"; echo "< td>" . $row-> id_user . "</td>"; echo "< td>" . $ row->id_teacher_ leve l . "</td>"; echo "< td>" . $ row->perm anent . "</td>";echo '<td s ty le="text-a lign:center;"><a h re f="index.php?option=com _vsbank&am p;task=edit_teacher&am p;id= '.$row-

>id.'"><img src="'.$m ainfram e->getC fg('live_site ').'/com ponents/com _vsbank/im ages/edit.jpg" /></a></td><td sty le="text-a lign:center;"><a h re f= "index.php?option=com _vsbank&am p;task=dele te_teacher&am p;id= '.$row-> id .'">< im g src="'.$m ainfram e- >getC fg('live_site ').'/com ponents/com _vsbank/im ages/de le te .jpg" /></a></td>';

echo "</tr>";}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

$num ofrow s = count($rows);echo M</table><div style= 'text-a lign:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγραφές</d iv>M;

}

//Μ ΑΘ Η Μ ΑΤΑ if ($_GET['task']== 'lessons'){

echo ”<div s ty le= 'text-align:center;'><b>Μ ΑΘ ΗΜ ΑΤΑ</b><br><br></div>"; $query = "SELECT * FROM # _ v s b _ le s s o n s O RDER BY l_id";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo $row->lessons_nam e.', ';}$num ofrow s = count($rows);

echo "<div sty le= 'text-a lign:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγρα φ ές<^ ίν> ";}

//ΕΞΑΜ ΗΝ Αif ($_G ET['task']== 'sem esters '){

echo "<div sty le= 'text-a lign:center;'><b>ΕΞΑΜ ΗΝΑ</b><br><br></d iv>";$query = "SELECT * FROM #__vsb_sem ester O RDER BY s_id";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo $row->sem ester_nam e.', ';}$num ofrow s = count($rows);

echo "<div sty le= 'text-a lign:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγραφές</div>";}

}

//Ε ΙΣΟ ΔΟ Σ ΩΣ ΚΑΘΗΓΗΤΗΣ

if ($m y->usertype=='Editor'){//ΕΓΓΡΑΦ ΕΣ $kath ig iths = $my->name;

if ($_G ET['task']== 'records'){echo "<div s ty le= 'text-a lign:center;'><b>ΕΓΓΡΑΦ ΕΣ</b><br></d iv>< tab le c lass='tablecss' a lign='center'> <tr><th>Ημερ/νία</th><th>Μ άθημα</th><th>Ε ισηγητής - τες< /^ ><th>Εξάμηνο - Τ ύπος</th>< ^> Λ επ το μ έρ ιες< Μ ><th>Τροπ/ση</th><th>Διαγραφή</th></tr>";

$query = "SELECT * FROM #__vsb_recordW H ER E record_teacher = '$kathig iths' or record_second_teacher = '$kathig iths'O RDER BY r_id DESC";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

// echo $row->num;echo "<tr>";echo "< td>" . $row->record_date . "</td>"; echo "< td>" . $row->record_ lesson . "</td>";if ($row->record_second_teacher != '-' && $row->record_second_teacher != '*' && $ row->record_second_teacher != '' &&

$ row->record_second_teacher != '* ') {

Σελίδα 79 από 93

Page 80: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

echo "< td>" . $row->record_teacher . . $ row->record_second_teacher . M</td>M;}e lse {

echo "< td>" . $row->record_ teacher . "</td>";

!= '* ') {

}if ($row->record_proodos != '-' && $row->record_proodos != '*' && $ row ->record_proodos != '' && $row->record_proodos

echo "< td>" . $row->record_sem ester . "<br>" . "<br>" . $row->record_type . " - " . $row->record_proodos . "</td>";

}e lse {echo "< td>" . $row->record_sem ester . "<br>" . "<br>" . $row-

>record_type . "</td>";}$ filenam e = $row->record_file;$downloadfile = $m ainfram e->getC fg('live_site '). "/com ponents/com _vsbank/files/'.$ filenam e; if ($row->record_description != '-' && $row->record_descrip tion != '*' && $row->record_descrip tion != '' && $row-

>record_descrip tion != '* ') {echo "< td>" . "Αρχείο: " . '<A H R E F - . "" . $downloadfile . "" . '>' . $ row->record_file . "</a>" . "<br>" . "<br>" . "Περιγραφή: " . $row-

>record_descrip tion . "<br>" . "<br>" . "Κοινοποιημένο: " . "<strong>" . $row->record_shared . "< /strong>" . "</td>";

}e lse {

$ row->record_file . "< /a>" . "<br>" . "<br>" . "Κοινοποιημένο: " . "<strong>" . }

echo "< td>" . "Αρχείο: " . '<A H R E F -' . '"' . $downloadfile . '"' . '>' . $row->record_shared . "< /strong>" . "</td>";

echo '<td sty le="text-a lign:center;"><a h re f= "index.php?option=com _vsbank&am p;task=edit_record&am p;id= '.$row->r_id.'"><im g src="'.$m ainfram e-

>getC fg('live_site ').'/com ponents/com _vsbank/im ages/ed it.jpg" /></a></td><td sty le="text-a lign:center;"><a href= "index.php?option=com _vsbank&am p;task=dele te_record&am p;id= '.$row->r_ id.'" onC lick="re turn confirm ('."'H

εγγραφή θα διαγραφή οριστικά, είστε βέβαιος;" '.')">< ίπ ^ src="'.$m ainfram e->getC fg('live_site ').'/com ponents/com _vsbank/im ages/dele te.jpg" /></a></td>';

echo "</tr>";}

$num ofrow s = count($rows);echo "< /table><div style= 'text-a lign:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγρα φ ές<^ ίν> ";

}

//ΠΡΟ ΣΘ ΗΚΗ ΑΡΧΕΙΟΥif ($_GET['task']== 'add_record '){

if (isset($_P O S T[subm it_ record '])){

?><div>

<h1>Εισαγω γή Νέας εγγραφής</h1>

<?php

//function για την μετατροπή των ονομάτων σε greeklishfunction greeklish($Nam e){$greek = array('α ','ά ','Ά ','Α ','β ','Β ','γ ', Τ ','δ ','Δ ','ε ','έ ',Έ ','Έ ','ζ ','Ζ ','η ','ή ','Η ','θ ','Θ ','ι','ί','ϊ1,''ί,,Ί ', 'Ί ',Ί ', 'κ ','Κ ','λ ','Λ ','μ ','Μ ','ν ','Ν ','ξ ','Ξ ','ο ','ό ',Ό ',κΟ ','π ','Π ','ρ ','Ρ ','σ ','ς ', 'Σ ','τ ',Τ ,'υ ','ύ ',Ύ ','Ύ ','φ ','Φ ','χ ','Χ ','ψ ','Ψ ','ω ','ώ ',Ώ ','Ώ ',' ',...,....,7,7 ,'* ');$english = array('a ', 'a ','A ','A ','b ','B ','g ','G ','d ','D ','e ','e ','E ','E ','z ','Z ','i','i','I','th ','TH ', 'i','i','i','i','I','I','I','k ','K ','l','L ','m ','M ','n ','N ','x ','X ','o ','o ','O ','O ','p ','P ' ,'r','R ','s ','s ','S ','t','T ','u ','u ','Y ','Y ','f','F ','ch ','CH ','ps ','PS ','o ','o ','O ','O ','$string = str_replace($greek, $english, $Name); return $string;}//Δήλωση μεταβλητών$teachergreeklish = greeklish("$_PO ST[teacher]");$sem estergreeklish = greeklish("$_PO ST[sem ester]");$ lessongreeklish = greeklish("$_PO ST[lesson]");$ typegreeklish = greeklish("'$_PO ST[type]");$no = greeklish("'$_PO ST[noproodou]");$record_date = greeklish("'$_PO ST[date1]");$keno = "_";$ext = strrchr($_FILES["file"]["nam e"],'.');$nam efile = $teachergreeklish.$keno.$ lessongreeklish.$keno.$sem estergreeklish.$keno.$typegreeklish.$no.$ext;$date = date('d-m-y');

$file_nam e = $_FILES["file"]["nam e"]; if ((($_FILES["file"]["type"] == "application/pdf")|| ($_FILES["file "]["type"] == "application/vnd.openxm lform ats-o fficedocum ent.wordprocessingm l.docum ent")|| ($_FILES["file "]["type"] == "application/vnd.openxm lform ats-o fficedocum ent.spreadsheetm l.sheet")|| ($_FILES["file "]["type"] == "application/m sword")|| ($_FILES["file "]["type"] == "application/zip")|| ($ext == ".rar")|| ($_FILES["file "]["type"] == "text/p la in")|| ($_FILES["file "]["type"] == "text/rtf")|| ($_FILES["file "]["type"] == "application/vnd.m s-excel"))&& ($_FILES["file"]["size"] < 10485760))

{if ($_FILES["file"]["error"] > 0)

{echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}

else{echo "<br />";

if (file_exists($m ainfram e->getC fg('absolu te_path '). "/com ponents/com _vsbank/files/" . $namefile)){

Σελίδα 80 από 93

Page 81: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

echo "^ > Ό ν ο μ α αρχείου: " . $nam efile . "<br />" . "ΠΡΟ ΣΟ ΧΗ: Το αρχείο υπάρχει ήδη, βεβαιωθείτε π ω ς δεν π ροσπ αθείτε να το εισάγεται για δεύτερη φορά, το upload δεν π ραγματοπ ο ιήθηκε..<ώ >" . "<br />";

}else

{$teacher =

$_POST[teacher];$ teacher2 =

$_PO ST[teacher2];$ lesson =

$_POST[lesson];$sem ester =

$_POST[sem ester];$type = $_POST[type]; $proodos =

$_PO ST[noproodou];$r_date = $_PO ST[date1]; $r_description =

$_PO ST[description];$r_shared =

$_POST[shared];

$query = "INSERT INTO #__vsb_record (record_date, record_lesson, record_teacher, record_second_teacher, record_sem ester,record_type, record_proodos, record_file, record_description, record_shared) VALUES('".$r_date ."','".$ lesson."','".$teacher."','".$ teacher2."','".$sem ester."','".$ type."','".$proodos."','".$nam efile."','".$r_descrip tion."','".$ r_shared."')";

$database->setQ uery( $query );

$database->query();echo "<b>Η εγγραφή ολοκληρώ θηκε με επ ιτυχία<ώ >" . "<br />";

m ove_uploaded_file($_FILES["file"]["tm p_nam e"],$m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/" . $namefile); echo "Αρχικό όνομα αρχείου: " . $_FILES["file"]["nam e"] . "<br />";

echo "Αποθηκεύτηκε ώς: " . $nam efile . "<br />"; echo "Μ έγεθος: " . ($_FILES["file"]["size"] / 1024) . " Kb" . "<br />";

}}

}else

{echo " ^ > Λ ά θ ο ς τύπος ή μεγεθος αρχείου, δεκτοί τύποι αρχείων είναι: doc, docx, xls, xlsx, rtf, txt, pdf, zip, rar και το μέγεθος του αρχείου δεν πρέπει

να ξεπερνά τα 3Μ Β<ώ>";}

}

?>echo '<form action="'.$PHP_SELF.'" m ethod="post" enctype="m ultipart/form -data"> ';

<table><tr><td>ΗΜ ΕΡΟ Μ ΗΝΙΑ: </td>

<td c lass="date">< input m axlength="19" size="25" id="date" nam e="date1" class="text_area" type="text" va lue="<?php echo substr($x->datetim e, 0, strpos($x->datetim e, " ")); ?>" />

< input onclick="return showCalendar('date', 'dd-m m -yy');" va lue=""id="datebutton" c lass="button" type="reset" /> </td></tr>

< ^ > ^ > Μ Α Θ Η Μ Α : </td><td><select nam e="lesson" s ize="1" va lue=""> <option va lue="*" > </option>

<?php//ΣΥΝΔΕΣΗ ΜΕ ΕΞΩΤΕΡΙΚΗ DB

'</option>';

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );$query = 'S ELECT * FROM course O RDER BY name'; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo '<option va lue="'.$row ->nam e .

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

?></select> </td></tr>

</p>< ^ > ^ > Ε ΙΣ Η Γ Η Τ Η Σ : </td>

<td><select nam e="teacher" size="1" value="">

. '>'. $ row->nam e .

<?php$query = "SELECT * FROM #__vsb_recordW H e R e record_teacher = '$kathig iths' or record_second_teacher = '$kathig iths'

?></select></td></tr>

</p>

<tr><td>ΔΕΥΤΕΡΟ Σ ΕΙΣΗΓΗΤΗΣ (Π ΡΟ ΑΙΡΕΤΙΚO ):< /td> <td><select nam e="teacher2" size="1" value="">

<option va lue="*" > </option>

echo '<option va lue="'.$kathig iths . '"' . '>'. $kath ig iths . '</option>';

Σελίδα 81 από 93

Page 82: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

<?phpinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM teachers O RDER BY l_name'; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

$row->l_nam e . ' ' . $row->f_nam e . '</option>';echo '<option value="".$row->l_nam e . ' ' . $row->f_nam e . "" . '>'.

}include ( $m ainfram e->getC fg('abso lute_path '). M/components/com_vsbank/mainconnect.phpM );

?>

</p></select></td></tr>

<tr><td>ΕΞΑΜ ΗΝΟ : </td><td><select nam e="sem ester" size="1" value=""><option va lue="*" > </option>

<?php$query = "SELECT * FROM #__vsb_sem ester O RDER BY s_id DESC";$database->setQ uery( $query );$rows = $database->loadO bjectListO ; foreach ($rows as $row) {

echo "<option va lue="'.$row ->sem ester_nam e . """ . ">". $row->sem ester_nam e . "</option>";

}?>

</select></td></tr></p>

< ^ > ^ > Ε ΙΔ Ο Σ : </td><td><select nam e="type" size="1" va lue=""><option va lue="*" > </option>

<?php$query = "SELECT * FROM #__vsb_type O RDER BY type_name";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo "<option va lue="".$row->type_nam e . """ . ">". $row->type_nam e . "</option>";}

?></select></td></tr>

<tr><td>ΤΥΠΟ Σ ΕΞΕΤΑΣΗΣ (συμπληρώ νετε μόνο εάν είναι εργαστήριο): </td><td><select nam e="noproodou" s ize=M1M va lue=MM> <option va lue="*" > </option>

<?php$query = "SELECT * FROM #__vsb_proodoi O RDER BY p_name";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

echo "<option value="".$row->p_nam e . """ . ">". $ row->p_nam e . "</option>";}

?>

</p></select></td></tr>

<tr><td>K O IN O nO IH M E N O : </td><td><select nam e="shared" size="1" va lue=""><option va lue="*" > </option>

<option value="NAI">NAI</option><option va lue="O XI">O XI</option>

</se lect></td></tr>

<tr><td>ΠΕΡΙΓΡΑΦ Η (nPO AIPETIKO ):< /td><td> <textarea nam e="description" co ls="60" rows="4"></textarea></td></tr>

<tr><td><label for="file">APXEIO :</labe l></td>

<td> < input type="file" nam e="file" id="file" /> </td></tr></table>

<div a lign="center"><p>

<input type="subm it" nam e="subm it_record" va lue="Α π οστολή" /></p><p a lign="le ft">* Για να συμπ ληρω θεί σω στά η εγγραφή ελέγξτε τα π αρακάτω </ρ><p a lign="le ft">- Δεκτοί τύποι αρχείων είναι: doc, docx, xls, xlsx, rtf, txt, pdf, zip, rar.</p> <p a lign="le ft">- Το μέγεθος του αρχείου δεν θα πρέπει να ξεπερνά τα 10 MB.</p>

</div></form>

<?php }//end if url

//ΤΡΟ ΠΟ ΠΟ ΙΗΣΗ ΑΡΧΕΙΟΥ if ($_GET["task"]=="edit_record"){

$record_id = $_GET['id '];$query = "SELECT * FROM #__vsb_record W H ER E r_id = ".$record_id."";$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

$r_id = $row->r_id;$record_date = $row->record_date;$record_lesson = $row->record_lesson;$record_teacher = $row->record_teacher;$record_second_teacher = $row->record_second_teacher;$record_sem ester = $row->record_sem ester;$record_type = $row->record_type;

Σελίδα 82 από 93

Page 83: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

$record_proodos = $row->record_proodos;$record_file = $row->record_file;$ record_descrip tion = $row->record_description;$record_shared = $row->record_shared;

}

?><table><tr><td>ΗΜ ΕΡΟΜ ΗΝΙΑ: </td>

echo '<form action=M'.$PHP_SELF.'M m ethod="post" enctype="m ultipart/fo rm -data"> ';

<td c lass="date">< input m axlength="19" size="25" id="date" nam e="date1" class="text_area" type="text" va lue="<?php echo $record_date; ?>" />

< input onclick="retum showCalendar('date', 'dd-m m -y');" va lue=""id="datebutton" class="button" type="reset" /> </td></tr>

<?php$kath ig iths = $my->name; echo '

<tr><td>Μ ΑΘ ΗΜ Α: </td><td><select nam e="lesson" size="1" value=""> ';

//ΣΥΝΔΕΣΗ ΜΕ ΕΞΩΤΕΡΙΚΗ DB ΓΙΑ ΕΠΕΞΕΡΓΑΣΙΑinclude ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM course O RDER BY name';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->nam e == $record_lesson)echo '<option va lue="' . $ row->nam e . '" selected> ' . $ row->nam e .

'</option>';elseecho '<option va lue="' . $ row->nam e . '"> ' . $ row->nam e .

'</option>';}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );?>

</select></td></tr></p>< ^ > ^ > Ε ΙΣ Η Γ Η Τ Η Σ : </td>

<td>

<select nam e="teacher" size="1" value="">

<?php$query = "SELECT * FROM #__vsb_record W H ER E r_id = ",$record_id."";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) { if ($row->record_teacher == $kathigiths) {echo '<option va lue="'.$kathig iths . '"' . '>'. $kath ig iths . '< /option>'; } else {include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM teachers O RDER BY l_name'; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {if ($row->l_name . ' ' . $row->f_nam e == $record_teacher) echo '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '"

selected>' . $row->l_nam e . ' ' . $ row->f_nam e . '< /option>';

$row->l_nam e . ' ' . $row->f_nam e .'</option>';

elseecho '<option va lue="' . $ row->l_nam e . ' ' . $row->f_nam e . '">' .

}include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php"

);} }

?></select></td></tr>

<tr><td>ΔΕΥΤΕΡΟ Σ Ε ΙΣΗΓΗΤΗΣ (Π ΡΟ ΑΙΡΕΤΙΚO ):< /td> <td><select nam e="teacher2" size="1" value="">

<option va lue="*" > </option>

<?php$query = "SELECT * FROM #__vsb_record W H ER E r_id = ".$record_id."";

$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {if ($row->record_second_teacher == $kathigiths) {echo '<option va lue="'.$kathig iths . '"' . '" selected>'. $kathigiths . '< /option>'; } else {include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = 'S ELECT * FROM teachers O RDER BY l_name'; $database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {if ($row->l_name . ' ' . $row->f_nam e == $record_second_teacher) echo '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '"

selected>' . $row->l_nam e . ' ' . $ row->f_nam e . '< /option>';elseecho '<option va lue="' . $row->l_nam e . ' ' . $row->f_nam e . '">' .

$ row->l_nam e . ' ' . $row->f_nam e .'</option>';}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php");

} }?>

</select></td></tr>

Σελίδα 83 από 93

Page 84: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

< ^ > ^ > Ε Ξ Α Μ Η Ν Ο : </td><td><select nam e=Msem esterM size=M1" va lue :

<?php

$row->sem ester_nam e . '< /option>';

>sem ester_nam e . '</option>';

?></select></td></tr>

<tr><td>ΕΙΔΟ Σ: </td>

}

$query = 'S ELECT * FROM #__vsb_sem ester O RDER BY s_id DESC';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->sem ester_nam e == $record_sem ester)echo '<option va lue="' . $ row->sem ester_nam e . '" selected>' .

elseecho '<option va lue="' . $ row->sem ester_nam e . '">' . $row-

<td><select nam e="type" size="1" value=""> <?php

$query = 'S ELECT * FROM #__vsb_type O RDER BY type_nam e';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->type_nam e == $record_type)echo '<option va lue="' . $ row->type_nam e . '" selected> ' . $row-

>type_nam e . '< /option>';

. '</option>';

elseecho '<option va lue="' . $ row->type_nam e . '">' . $row->type_nam e

}?>

</select></td></tr><tr><td>ΤΥΠΟ Σ ΕΞΕΤΑΣΗΣ (συμπληρώνετε μόνο εάν είναι εργαστήριο): </td><td><select nam e="noproodou" size=M1M va lue=MM> <option

va lue="*" > </option><?php

$query = 'S ELECT * FROM #__vsb_proodoi O RDER BY p_name';$database->setQ uery( $query );$rows = $database-> loadO bjectList(); foreach ($rows as $row) {

if ($row->p_nam e == $record_proodos)echo '<option va lue="' . $row->p_nam e . '" selected> ' . $row-

>p_nam e . '< /option>';elseecho '<option va lue="' . $row->p_nam e . '">' . $row->p_nam e .

'</option>';}

?></select>

</td></tr>

<tr><td>K O IN O nO IH M E N O :</td><?php //echo '<b>'.$record_shared.'</b> ';?><td><select nam e="shared" s ize="1" value=""><?php

if ($record_shared == "N AI"){$shared_yes = "selected";} if ($record_shared == "O XI"){$shared_no = "selected";} ?>

<option va lue="N A I" <?php echo $shared_yes;?>>NAI</option><option va lue="O XI" <?php echo $shared_no;?>>O XI</option>

</se lect></td></tr>

<tr><td>ΠΕΡΙΓΡΑΦ Η (nPO A IP ETIK O ):< /td><td>< input type="text" nam e="record_description" size="80" va lue="<?php echo $record_description; ?>"></td></tr>

< tr><td><label for="file">APXEIO :</labe l></td><td>< input type="text" nam e="record_file" size="80" va lue="<?php echo $record_file; ?>"></td></tr><tr><td><label for="file">N EO APXEIO:</label></td>

<td>< input type="file" nam e="new file" id="file" /> </td></tr></table><div a lign="center">

< input type="subm it" id="ed it_record" nam e="edit_record" va lue="Eνημέρω ση Εγγραφής" /></div>

</form><?php

if (isset($_P O S T[ed it_record '])){ $new file = $_F lLES["newfile"]["nam e"];

if ($newfile == ""){$nam efile = $record_file;}else {

function greeklish($Nam e){$greek = array('α ','ά ','Ά ','Α ','β ','Β ','γ ', 'Γ', 'δ ','Δ ','ε ','έ ',Έ ','Έ ','ζ ','Ζ ','η ','ή ',Ή ','θ ','Θ ','ι','ί','ϊ’ , 'ΐ,Ί ', 'Ί ',Ί ', 'κ ', 'Κ ','λ ','Α ','μ ','Μ ','ν ', 'Ν ','ξ ', 'Ξ ','ο ', 'ό ',Ό ',Ό ','π ','Π ','ρ ','Ρ ','σ','ς', 'Σ ','τ','Τ ','υ ','ύ ',Ύ ','Ύ ','φ ','Φ ','χ ','X ','ψ ','Ψ ','ω ','ώ ',Ώ ',Ώ ',' ',... ,....,',','/','*');$english = array('a ', 'a ','A ','A ','b ','B ','g ','G ','d ','D ','e ','e ','E ','E ','z ','Z ','i','i','I','th ','TH ',

'i','i','i','i','I','I','I','k ','K ','l','L ','m ','M ','n ','N ','x ','X ','o ','o ','O ','O ','p ','P ' ,'r','R ','s ','s ','S ','t','T ','u ','u ','Y ','Y ','f','F ','ch ','CH ','ps ','PS ','o ','o ','O ','O ','$string = str_replace($greek, $english, $Name); return $string;}

$delete_file = $record_file;$directory = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/";$ tm pfile = $directory . $delete_file;

Σελίδα 84 από 93

Page 85: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

unlink($tmpfile);

$ teachergreeklish = greeklish("$_PO ST[teacher]");$sem estergreeklish = greeklish("$_PO ST[sem ester]");$ lessongreeklish = greeklish("$_PO ST[lesson]");$ typegreeklish = greeklish("'$_PO ST[type]");$no = greeklish("'$_PO ST[noproodou]");$keno = "_";$ext = strrchr($_FILES["new file"]["nam e"],'.');$nam efile =

$teachergreeklish.$keno.$ lessongreeklish.$keno.$sem estergreeklish.$keno.$typegreeklish.$no.$ext;

m ove_uploaded_file($_FILES["new file"]["tm p_nam e"], $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/" . $namefile); echo "Αρχικό όνομα αρχείου: " . $_FILES[MnewfileM][Mname"] . "<br />";

echo "Αποθηκεύτηκε ώς: " . $nam efile . "<br />"; echo "Μ έγεθος: " . ($_FILES["newfile"]["size"] / 1024) . " Kb" . "<br />";

}

$record_date = $_POST[date1];$record_lesson = $_POST[lesson];$record_teacher = $_POST[teacher];$record_second_teacher = $_PO ST[teacher2]; $record_sem ester = $_POST[sem ester];$record_type = $_PO ST[type];

$record_proodos = $_PO ST[noproodou]; $record_description = $_PO ST[record_description]; $record_shared = $_POST[shared];

$query = "U PD ATE #__vsb_record SETrecord_date='".$record_date."',record_ lesson= '".$record_ lesson."',record_teacher= '".$record_teacher."',record_second_teacher= '".$record_second_teacher."',record_sem ester= '".$record_sem ester."',record_type='".$record_type."',record_file= '".$nam efile."',record_proodos= '".$record_proodos."',record_description='".$record_description."',record_shared='".$record_shared."'W H ER E r_id = '".$record_id."'";

$database->setQ uery( $query );$database->query();

echo 'Τροποποιήθηκαν με επιτυχία: <b>'.$record_date.' '.$record_lesson.' '.$record_teacher.' '.$record_second_teacher.' '.$record_sem ester.' '.$record_type.' '.$record_proodos.' '.$record_file .' '.

}

$ record_description.' '.$record_shared.' για το record με id: '.$record_id.'< /b>'; mosRedirect( "index.php?option=com _vsbank&am p;task=records");

}

//ΔΙΑΓΡΑΦ Η ΑΡΧΕΙΟΥ if ($_G ET['task']== 'delete_record '){

$record_id = $_GET['id '];if ($record_id != ''){$query = "SELECT record_file F R O M #__vsb_record W H ER E r_id = ".$record_id.""; $database->setQ uery( $query );$rows = $database-> loadO bjectList();

foreach ($rows as $row) {$de le te_file = $row->record_file;$directory = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/files/";$ tm pfile = $directory . $delete_file;unlink($tmpfile);}

$query = "D ELETE FR O M #__vsb_record W H ER E r_id = '".$record_id."'";$database->setQ uery( $query );$database->query();

echo "Η διαγραφή π ραγματοπ οιήθηκε επ ιτυχώ ς!<br/><a href= 'index.php?option=com _vsbank& task=records'>Π ίσω στα α ρ χ ε ία < ^ > "; }

}

}//end registered ?>

Σελίδα 85 από 93

Page 86: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

search_vsbank.php<?php

// no d irect access

defined( '_VALID_M OS' ) or d ie( 'Restricted access' );

if ($_GET['task']== 'vieW ){

//ΑΥΤΟ Μ ΑΤΗ ΠΡΟΣΘΗΚΗ ΕΞΑΜ ΗΝΟ Υ

$now_year = date('Y ');

$nextYear = date('Y ') + (1);

$ lastYear = date('Y ') - (1);

$now_m onth = date('n ');

fo r ($ i=3;$ i<=9;$ i++){

if ($now_m onth==$i){

$eksam ino = "ΕΑΡΙΝΟ";

$custom _sem ester_earino = $eksam ino.' '.$ lastYear.'-'.$now_year;;

//echo '<br><b>'.$custom _sem ester_earino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

$query = 'S ELECT sem ester_nam e FROM

jos_vsb_sem ester W H ER E sem ester_nam e = "'.$custom _sem ester_earino.'"';

$database->setQ uery( $query );

$result = $database-> loadResult();

//echo '< ^> Τ ρ έχ ω ν εξάμηνο: <b>'.$result.'< /b> ';

}

}

fo r ($ i=10;$i<=12;$ i++){

if ($now_m onth==$i){

$eksam ino = 'ΧΕΙΜ ΕΡΙΝΟ ';

$custom _sem ester_xe im erino = $eksam ino.'

'.$now_year.'-'.$nextYear;

//echo '<br><b> '.$custom _sem ester_xe im erino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

$query = 'S ELECT sem ester_nam e FROM

jos_vsb_sem ester W H ER E sem ester_nam e = "'.$custom _sem ester_xeim erino.'"';

$database->setQ uery( $query );

$result = $database-> loadResult();

//echo '< ^> Τ ρ έχ ω ν εξάμηνο: <b>'.$result.'< /b>';

}

}

fo r ($i=1 ;$i<=2;$i++){

if ($now_m onth==$i){

$eksam ino = 'ΧΕΙΜ ΕΡΙΝΟ ';

$custom _sem ester_xe im erino = $eksam ino.'

'.$now_year.'-'.$nextYear;

//echo '<br><b> '.$custom _sem ester_xe im erino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

$query = 'S ELECT sem ester_nam e FROM

jos_vsb_sem ester W H ER E sem ester_nam e = "'.$custom _sem ester_xeim erino.'"';

$database->setQ uery( $query );

$result = $database-> loadResult();

//echo '< ^> Τ ρ έχ ω ν εξάμηνο: <b>'.$result.'< /b>';

}

}

εξάμηνο!';

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

if ($result != $custom _sem ester_earino){

//echo '<BR>Δεν Υ π άρχει στην βάση το Εαρινό

fo r ($ i=3;$ i<=9;$ i++){

Σελίδα 86 από 93

Page 87: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

if ($now_m onth==$i){

$eksam ino = 'ΕΑΡΙΝΟ';

$custom _sem ester_earino = $eksam ino.' '.$ lastYear.'-'.$now_year;;

echo '<br><b>\$custom _sem ester_earino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

(s_id,sem ester_nam e) VALU E S ('','".$custom _sem ester_earino."')";

}

$query = "INSERT INTO #__vsb_sem ester

$database->setQ uery( $query );

$database->query();

echo 'Προστέθηκε με επιτυχία το εαρινό εξάμηνο';

}

}e lse if ($result != $custom _sem ester_xe im erino){

εξάμηνο (Θα π ροστεθεί όταν έρθει η ώρα)!';

fo r ($ i=10;$i<=12;$ i++){

//echo '<BR>Δεν υπάρχει στην βάση το Χειμερ ινό

if ($now_m onth==$i){

$eksam ino = 'ΧΕΙΜ ΕΡΙΝΟ ';

$custom _sem ester_xe im erino = $eksam ino.'

'.$now_year.'-'.$nextYear;

echo '<br><b> '.$custom _sem ester_xe im erino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

(s_id,sem ester_nam e) VALUES ('7".$custom _sem ester_xeim erm o.'")";

}

$query = "INSERT INTO #__vsb_sem ester

$database->setQ uery( $query );

$database->query();

echo 'Προστέθηκε με επιτυχία το χειμερ ινό εξάμηνο';

}

fo r ($i=1 ;$i<=2;$i++){

if ($now_m onth==$i){

$eksam ino = 'ΧΕΙΜ ΕΡΙΝΟ ';

$custom _sem ester_xe im erino = $eksam ino.'

'.$now_year.'-'.$nextYear;

echo '<br><b> '.$custom _sem ester_xe im erino.'< /b><br> ';// ΕΜΦΑΝΙΖΕΙ ΠΟΙΟ ΕΞΑΜ ΗΝΟ ΕΧΟ ΥΜ Ε ΑΥΤΗ ΤΗ ΣΤΙΓΜΗ

(s_id,sem ester_nam e) VALUES ('','".$custom _sem ester_xeim erino."')";

}

}e lse {

βάση!';

$query = "INSERT INTO #__vsb_sem ester

$database->setQ uery( $query );

$database->query();

echo 'Προστέθηκε με επιτυχία το χειμερ ινό εξάμηνο';

}

echo 'Όλα τα εξάμηνα είναι αποθηκευμένα στην

}//end αυτόματη π ροσθήκε εξαμήνου

//an patithei i form a

if (isset($_PO ST['subm it'])){

// echo "patithike";

$m ain_lesson = $_PO ST[lesson];

$m ain_teacher = $_POST[teacher];

$m ain_sem ester = $_PO ST[sem ester];

$m ain_type = $_POST[type];

echo "<div sty le= 'text-a lign:center;'><br><b><a href= 'index.php?option=com _vsbank&am p;task=view '>Νέα αναζήτηση</a></b><br><Br></div><tab le

a lign= 'center' border='1'>

<tr>

Σελίδα 87 από 93

Page 88: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

< ^> Η μ ερ ο μ η ν ία < /^>

<^>Μ άθημα<Λ^ι>

<th>Εισηγητής</th>

<th>Εξάμηνο</th>

<th>Τύπος</th>

< Ιι>Α ρχείο<Λ Ιι>

</tr>";

//$where .= ' AND record_shared = "Ν ΑΙ" ';

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type == '*')) {

$where = "W HERE record_shared ='NAI'";

$orderby = " O RDER BY r_id D E S C ";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type == '*')) {

$where = "W HERE re co rd J e s s o n -".$ m a m J e s s o n ." ' AND record_shared ='NAI' ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type == '*')) {

$where = "W HERE (record_teacher= '".$m ain_teacher."' O R record_second_teacher= '".$m ain_teacher."')

AND record_shared ='NAI'";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type == '*')) {

$where = "W HERE record_ lesson= '".$m ain_sem ester."' AND record_shared ='NAI' ";

$orderby = " O RDER BY r_id DESC";

//echo 'no';

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type != '*')) {

AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

$where = "W HERE record_lesson= '".$m ain_type."'

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type == '*')) {

$where = "W HERE record_ lesson= '".$m ain_ lesson."' AND (record_teacher= '".$m ain_teacher."' OR

record_second_teacher= '".$m ain_teacher."') AND record_shared ='NAI' ";

$orderby = " O RDER BY r_id DESC";

Σελίδα 88 από 93

Page 89: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type == '*')) {

$where = "W HERE record_ lesson="'.$m ain_ lesson."' AND (record_teacher="'.$m ain_teacher."' OR

record_second_teacher-".$m am _teache r"') AND record_sem ester= '".$m ain_sem ester."' AND record_shared ='ΝΑΙ' ";

$orderby = " O R D E R BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type != '*')) {

$where = "W HERE record_ lesson= '".$m ain_ lesson."' AND (record_teacher= '".$m ain_teacher."' OR

record_second_teacher= '".$m ain_teacher."') AND record_sem ester= '".$m ain_sem ester."' AND record_type='".$m ain_type."' AND record_shared

= m r ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/* if (($m ain_lesson == '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type == '*')) {

$where = "W HERE record_teacher= '".$m ain_teacher."' AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

} */

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type == '*')) {

$where = "W HERE (record_teacher= '".$m ain_teacher."' O R record_second_teacher= '".$m ain_teacher."') AND

re co rd_sem este r-".$m am _sem este r"' AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type != '*')) {

$where = "W HERE (record_teacher= '".$m ain_teacher."' O R record_second_teacher= '".$m ain_teacher."') AND

re co rd_sem este r-".$m am _sem este r"' AND record_type='".$m ain_type."' AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type == '*')) {

}

$where = "W HERE record_sem ester= '".$m ain_sem ester."' AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

Σελίδα 89 από 93

Page 90: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type != '*')) {

record_shared ='ΝΑΙ' "

$where = "W HERE record_sem ester= 'M.$m ain_sem ester."' AND record_type="'.$m ain_type."' AND

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type != '*')) {

$where = "W HERE reco rd_ type -".$m am _type ."' AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type != '*')) {

='ΝΑΙ'

$where = "W HERE record_ lesson= '".$m ain_ lesson."' AND record_type='".$m ain_type."' AND record_shared

}

$orderby = " O RDER BY r_id DESC";

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type != '*')) {

$where = "W HERE record_ lesson= '".$m ain_ lesson."' AND (record_teacher= '".$m ain_teacher."' OR

record_second_teacher-".$m am _teache r"') AND record_type='".$m ain_type."' AND record_shared = 'ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson != '*')

&& ($m ain_teacher == '*')

&& ($m ain_sem ester != '*')

&& ($m ain_type == '*')) {

record_shared ='ΝΑΙ' "

$where = "W HERE record_ lesson= '".$m ain_ lesson."' AND record_sem ester= '".$m ain_sem ester."' AND

}

$orderby = " O RDER BY r_id DESC";

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (($m ain_lesson == '*')

&& ($m ain_teacher != '*')

&& ($m ain_sem ester == '*')

&& ($m ain_type != '*')) {

record_second_teacher=

}

$where = "W HERE record_type=

.$m ain_teacher."') AND record_shared ='ΝΑΙ' ";

$orderby = " O RDER BY r_id DESC";

'.$m ain_type."' AND (record_teacher: .$m ain_teacher."' OR

$query="SET NAMES 'u tf8 ' ";

Σελίδα 90 από 93

Page 91: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

$query = 'SELECT r_id, record_date, record_lesson, record_teacher, record_second_teacher, record_semester, record_type, record_proodos,

record_file, record_description, record_shared FROM jos_vsb_record '.$where.''.$orderby.'';

$database->setQ uery( $query );

$rows = $database-> loadO bjectList();

foreach ($rows as $row) {

echo "<tr>";

echo "< td>" . $row->record_date . "</td>";

echo "< td>" . $row->record_ lesson . "</td>";

//echo "< td>" . $row->record_teacher . "</td>";

if ($row->record_second_teacher != '-' && $ row->record_second_teacher != '*' && $row-

>record_second_teacher != '* ') {

echo "< td>" . $row->record_teacher . "-" . $ row->record_second_teacher . "</td>";

}e lse {

echo "< td>" . $row->record_teacher . "</td>";

}

echo "< td>" . $row->record_sem ester . "</td>";

$row->record_proodos != '' && $row->record_proodos != '*') {

echo "< td>" . $row->record_type . "-" . $row->record_proodos . "</td>";

}e lse {

if ($row->record_proodos != '-' && $row->record_proodos != '* ' &&

echo "< td>" . $row->record_type . "</td>";

}

$ filenam e = $row->record_file;

$downloadfile = $m ainfram e->getC fg('live_site '). "/com ponents/com _vsbank/files/'.$ filenam e;

echo "< td>" . '<div a lign="center"> ' . '<A HREF=' . '"' . $downloadfile . '"' . '>' . '<img src="'.

$m ainfram e->getC fg('live_site ')

.'/com ponents/com _vsbank/im ages/filesave.png"> ' . '</div>' . "</td>";

echo "</tr>";

}

$num ofrow s = count($rows);

echo "< /table><div style= 'text-a lign:center;'><br>Βρέθηκαν συνολικά <b>".$num ofrows."</b> εγγραφές<br><b><a

href= 'index.php?option=com _vsbank&am p;task=view '>Νέα αναζήτηση</a></b></div>";

if ($filename == '')

{

echo "<div s ty le - te x t -a l ig n ic e n te r 'x b r^ αναζήτηση δέν επ έστρεψε δεδομένα, π αρακαλώ δοκιμάστε ξανά, με διαφορετικά

κ ρ ι τ ή ρ ια Ν ^ ^ χ ^ ^ ' ;

}

}e lse {

// echo "den patith ike akom a";?>

<form action="<?=$PH P_SELF?>" m ethod="post">

<P a lign="left">

Παρακαλώ επ ιλέξτε τα κριτήρια της αναζήτησης σας

</P>

< ^ ^ > < τ > < ^ > Μ Α Θ Η Μ Α :< /^ >

<td> <se lect nam e="lesson" size="1" value="">

<option va lue="*" >ΕΠΙΛΕΞΤΕ</option>

<?php

include ( $m ainfram e->getC fg('abso lute_path '). M/com ponents/com _vsbank/connect.phpM );

$query = 'S ELECT name FROM course O RDER BY name';

$database->setQ uery( $query );

$rows = $database-> loadO bjectList();

foreach ($rows as $row) {

echo '<option value='".$row ->nam e. "" . '>'. $ row->nam e . '< /option>';

}

Σελίδα 91 από 93

Page 92: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Τράπεζα θεμάτων βασισμένη στο Joomla!

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m am connectphp" );

?>

</se lect></td></tr>

< ^ > ^ > Ε ΙΣ Η Γ Η Τ Η Σ : </td>

<td><select nam e="teacher" size="1" value="">

<option va lue="*" >ΕΠΙΛΕΞΤΕ</option>

<?php

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/connect.php" );

$query = "SELECT * FROM teachers O RDER BY l_name";

$database->setQ uery( $query );

$rows = $database-> loadO bjectList();

>f_nam e . '</option>';

>f_nam e . '</option>';

foreach ($rows as $row) {

if ($row-> l_nam e=='*'){

echo '<option va lue="'.$row -> l_nam e . '' . $row->f_nam e . '"' . '>'. $ row->l_nam e . '' . $row-

}e lse {

echo '<option va lue="'.$row -> l_nam e . ' ' . $row->f_nam e . '"' . '>'. $ row->l_nam e . ' ' . $row-

}

}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/m ainconnect.php" );

?>

</select></td></tr>

<tr><td>ΕΞΑΜ ΗΝΟ :</td>

<td><select nam e="sem ester" size="1" value="">

<option va lue=M*M >ΕΠΙΛΕΞΤΕ</option>

<?php

$query = "SELECT * FROM #__vsb_sem ester O RDER BY s_id DESC";

$database->setQ uery( $query );

$rows = $database-> loadO bjectList();

foreach ($rows as $row) {

echo '<option value=

}

?>

'.$row ->sem ester_nam e . '"' . '>'. $row->sem ester_nam e . '</option>';

< /select></td></tr>

<tr><td>ΕΙΔΟ Σ: </td>

<td><select nam e="type" s ize="1" value="">

<option value=M*M >ΕΠΙΛΕΞΤΕ</option>

<?php

$database->setQ uery( $query );

$ rows = $database-> loadO bjectList();

$query = "SELECT * FROM #__vsb_type O RDER BY type_nam e";

foreach ($rows as $row) {

echo '<option value=

}

?>

'.$row ->type_nam e . '"' . '>'. $ row->type_nam e . '</option>';

< /se lect></td></tr></tab le>

<div a lign="center">

< input type="subm it" nam e="subm it" value=MΑναζήτησηM />

</div>

</form>

<?php

}

}

?>

Σελίδα 92 από 93

Page 93: Joomla! - TEI EMTdigilib.teiemt.gr/jspui/bitstream/123456789/321/1/... · 2015. 4. 24. · • javascript ajax ... • Ειδικός μηχανισμός για τις μηχανές

Πτυχιακή του Βαλάντη Στεργιόπουλου

vsbank.php<?php

// no d irect access

defined( '_VALID_M OS' ) or d ie( 'Restricted access' );

//$ed it_ link = "index.php?option=com _vsbank&am p;task=edit";

$add_teacher_link = "index.php?option=com _vsbank&am p;task=add_teacher";

$add_lesson_link = "index.php?option=com _vsbank&am p;task=add_lesson";

$add_sem ester_ link = "index.php?option=com _vsbank&am p;task=add_sem ester";

$add_type_link = "index.php?option=com _vsbank&am p;task=add_type";

$add_record_link = "index.php?option=com _vsbank&am p;task=add_record";

$ records_ link = "index.php?option=com _vsbank&am p;task=records";

$ teachers_ link = "index.php?option=com _vsbank&am p;task=teachers";

$ lessons_link = "index.php?option=com _vsbank&am p;task= lessons";

$sem esters_link = "index.php?option=com _vsbank&am p;task=sem esters";

$help_link = $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/help .pdf";

$view _link = "index.php?option=com _vsbank&am p;task=vieW ;

echo '<div sty le="text-a lign:center"><br>

<a href="index.php?option=com _vsbank&am p;task=vieW '>ΑΝΑΖΗΤΗΣΗ </a> ';

//Γ ΙΑ ΝΑ ΒΛΕΠΕΙ Ο A DM IN ISTRATO R ΤΟ ΕΙΚΟΝΙΔΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ

if ($m y->usertype=='Super A dm inistrator'){

echo ' | <a h re f= "\$ recordsJm k."'>Ε Π Ε Ξ ΕΡ ΓΑ Σ ΙΑ< /a> (<a hre f=M'.$add_record_ link.'M>ΝΕΑ ΕΓΓΡΑΦ Η</a>) |

<a hre f=,".$ teachersJm k.m>ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΘ ΗΓΗΤΩ Ν</a> (<a h re f= "^$add_teacherJm k.m> Ε ΙΣ Α Γ Ω m ΚΑΘ ΗΓΗ ΤΩΝ</a>) | <a

hre f= "'.$help_link.'">Help</a>

<br><br></div> ';

}

if ($m y->usertype=='Editor'){

echo ' | <a href=M'.$records_ link.'M>ΕΠΕΞΕΡΓΑΣΙΑ</a> (<a hre f=M'.$add_record_ link.'M>ΝΕΑ ΕΓΓΡΑΦ Η</a>)

<a hre f= "'.$help_link.'">Help</a>

<br><br></div> ';

}

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/adm in_vsbank.php" );

include ( $m ainfram e->getC fg('abso lute_path '). "/com ponents/com _vsbank/search_vsbank.php" );

?>

Σελίδα 93 από 93