• Nenhum resultado encontrado

Ανάπτυξη εφαρμογής διαδικτύου για την διαχείριση των θέσεων εργασίας στο γραφείο διασύνδεσης του ΤΕΙ Καβάλας

N/A
N/A
Protected

Academic year: 2023

Share "Ανάπτυξη εφαρμογής διαδικτύου για την διαχείριση των θέσεων εργασίας στο γραφείο διασύνδεσης του ΤΕΙ Καβάλας"

Copied!
45
0
0

Texto

(1)

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

Πτυχιακή εργασία

—————————————————————————————

Ανάπτυξη εφαρμογής διαδικτύου για την διαχείριση τον θέσεων εργασίας στο γραφείο διασύνδεσης του ΤΕΙ Καβάλας.

Σπουδαστής: Λάζος Άγγελος Α.Μ. 917 Επιβλέπων Καθηγητής: Μαρδύρης Βασίλειος

2011

(2)

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

(3)

Πίνακας περιεχομένων

Περίληψη...4

Εισαγωγή...5

Κεφάλαιο 1 Module...7

Κεφάλαιο 2 Εργαλεία που χρησιμοποιήθηκαν...9

2.1 HTML...9

2.2 PHP...11

2.3 XML...13

2.4 MySQL...14

2.5 Joomla...14

2.6 Xampp...16

Κεφάλαιο 3 Περιγραφή της βάσης δεδομένων…...18

3.1 Δημιουργία βάσης δεδομένων…...17

3.2 Δημιουργία Πινάκων…...18

3.2.1 Δομή πίνακα jos_tmima...18

3.2.2 Δομή πίνακα jos_company...18

3.2.3 Δομή πίνακα jos_foit...18

3.2.4 Δομή πίνακα jos_thesei...19

3.2.5 Δομή πίνακα jos_user...19

3.2.6 Δομή πίνακα jos_log...19

Κεφάλαιο 4 Περιγραφή της εφαρμογής…...20

4.1 Σχεδίαση των αρχείων…...20

4.2 Αναλυτική παρουσίαση των αρχείων…...20

4.2.1 Αρχείο mod_8eseis.xml...20

4.2.2 Αρχείο helper.php...22

4.2.3 Αρχείο mod_8eseis.php...27

4.2.4 Αρχείο index.html...28

4.2.5 Αρχείο default.php...28

Κεφάλαιο 5 Πλεονεκτήματα και μειονεκτήματα του module...33

5.1 Πλεονεκτήματα…...33

5.2 Μειονεκτήματα…...33

Επίλογος...35

Βιβλιογραφία…...36

Παράρτημα…...37

(4)

Περίληψη

Αντικείμενο της παρούσας πτυχιακής εργασίας είναι η δημιουργία ενός module(εφαρμογή διαδικτύου) για την ιστοσελίδα του Γραφείου Διασύνδεσης του ΤΕΙ Καβάλας. Το module αυτό θα είναι υπεύθυνο για την διαχείριση των θέσεων εργασίας που θέτουν οι επιχειρήσεις στην ιστοσελίδα του γραφείου, καθώς και την “εξατομίκευση” στην εμφάνιση των άρθρων στους επισκέπτες- φοιτητές της ιστοσελίδας.

Κίνητρο για την ενασχόληση με την παρούσα θεματική αποτέλεσε η πρακτική άσκηση του γράφοντος στο Γραφείου Διασύνδεσης του ΤΕΙ Καβάλας. Μέσα από την εξάμηνη πρακτική και τις αρμοδιότητες που μου ανατέθηκαν, καταβλήθηκε προσπάθεια για την δημιουργία της ιστοσελίδας του Γραφείου με κύριους άξονες την προβολή των δράσεων του στη φοιτητική κοινότητα του ΤΕΙ και την εξυπηρέτηση των επισκεπτών-φοιτητών της ιστοσελίδας

Το πρώτο κεφάλαιο κάνει μια γενική εισαγωγή στη δημιουργία ενός module. Από ποιους κανόνες διακατέχεται, ποιες είναι οι βασικές ρυθμίσεις του και ποιες οι εφαρμογές του. Ειδικότερα, αναφέρονται τα απαραίτητα αρχεία που θα πρέπει να εμπεριέχονται σε ένα module και αναλύετε η δομή τους.

Στο δεύτερο κεφάλαιο αναφέρονται τα διαθέσιμα εργαλεία που χρησιμοποιήθηκαν για την ολοκλήρωση μας εργασίας. Πρόκειται για τα εργαλεία HTML, PHP, XML, MySQL, Joomla και Xampp

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

Στη τέταρτο κεφάλαιο αναφέρονται τα αρχεία που αποτελούν το module, καθώς και μια ανάλυση για την ιεραρχία των δομών του κάθε αρχείου.

Στο πέμπτο κεφάλαιο αναλύονται τα πλεονεκτήματα και μειονεκτήματα, τόσο για το module αυτής της εργασίας, όσο και για τα γενικότερα στοιχεία των modules.

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

(5)

Εισαγωγή

Από την πρώτη εμπορική αξιοποίηση του Internet υπάρχει μια συνεχής αγώνας για την βελτίωση των εφαρμογών που χρησιμοποιούνται σε αυτό.

Ένα βήμα σε αυτό το αγώνα είναι και η δημιουργία ενός προγράμματος ανοιχτού κώδικα για την δημιουργία και συντήρηση ιστοσελίδων, του προγράμματος Joomla, για άτομα με μικρές ή και καθόλου γνώσεις από δημιουργία ιστοσελίδων μέσω των γλωσσών HTML και PHP. Με τη βοήθεια του συγκεκριμένου προγράμματος και με την συνεχή προσφορά ανεξάρτητων προγραμματιστών το πρόγραμμα Joomla αποτελεί μια ολοκληρωμένη πρόταση στην ανάπτυξη δυναμικών ιστοσελίδων.

Παρόλο που η κατασκευή μιας ιστοσελίδας πλέον είναι πολύ εύκολη υπόθεση με την χρήση ενός CMS, όπως είναι η Joomla, πάντα θα υπάρχει η ανάγκη δημιουργίας εφαρμογών διαδικτύου που να μπορεί να κάνει την ιστοσελίδα αυτή να ξεχωρίσει ανάμεσα στην πλειάδα ιστοσελίδων που μπορεί να βρει ένας χρήστης στο διαδίκτυο. Για αυτό το λόγο η Joomla επιτρέπει την εισαγωγή μιας σειράς από μικρά αρχεία, η σειρά αυτή αποτελεί ένα module, με σκοπό την ένταξη μιας εφαρμογής στην ιστοσελίδα.

Ταυτόχρονα με την χρήση ενός CMS, όπως είναι η Joomla, επιτρέπεται η δημιουργία μεγάλων και “επαγγελματικών” ιστοσελίδων σε πολύ μικρό χρονικό διάστημα και με μικρή ή καθόλου γνώση κάποιας γλώσσας, όπως είναι η HTML. Αυτή η μείωση στο χρόνο κατασκευής μιας ιστοσελίδας αποτελεί σημαντικό πλεονέκτημα. Καθώς ο χρόνος που χρειάζεται για την σχεδίαση, την υλοποίηση και τον έλεγχο μεγάλων και πολύπλοκων ιστοσελίδων, είναι μεγάλος, ίσως και αρκετοί μήνες. Με την χρήση ενός CMS ο χρόνος αυτός μπορεί να είναι και μερικές μέρες, καθώς με την χρήση ενός CMS αυτό που σχεδιάζουμε είναι και το τελικό αποτέλεσμα που παίρνουμε, ο χρόνος που χρειάζεται για τον έλεγχο της ιστοσελίδας συχνά εξαφανίζεται.

Αυτό έχει σαν αποτέλεσμα να μπορούμε να σχεδιάσουμε και να υλοποιήσουμε μεγαλύτερο αριθμό ιστοσελίδων στο ίδιο χρονικό διάστημα που χρειαζόταν εάν χρησιμοποιούσαμε παραδοσιακά μέσα, όπως είναι η χρήση της γλώσσας HTML ή PHP.

Παρόλο που υπάρχουν πλέον αρκετά συστήματα CMS για την εύκολη κατασκευή και συντήρηση ιστοσελίδων, για ποιο λόγο να χρησιμοποιήσει κανείς τη Joomla συγκεκριμένα; Ο λόγος είναι ότι για οποιαδήποτε αλλαγή που θέλουμε να πραγματοποιήσουμε στην ιστοσελίδα μας, από την αλλαγή στην εμφάνιση της μέσω του template(το φόντο που έχει η ιστοσελίδα) έως την εγκατάσταση μιας επέκτασης ή την εγκατάσταση μιας εφαρμογής, μπορούμε να την πραγματοποιήσουμε με μεγάλη ευκολία, μόνο με μερικά

“κλικ” του ποντικιού μας. Ακόμα και η αναβάθμιση της έκδοσης που χρησιμοποιούμε γίνεται με μεγάλη ευκολία, καθώς είναι μια αυτοματοποιημένη διαδικασία χωρίς να χρειάζεται μεγάλη γνώση από την πλευρά του διαχειριστή.

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

(6)

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

Βέβαια, σε καμία περίπτωση δεν θα πρέπει να παραμελείται η γνώση

“παραδοσιακών” μεθόδων, όπως είναι η HTML και η PHP.

Σε μία περίοδο που ο χρόνος παίζει σημαντικό παράγοντα τόσο από την πλευρά των επιχειρήσεων που θέλουν την ιστοσελίδα τους άμεσα και γρήγορα, όσο από την πλευρά των προγραμματιστών που θέλουν όσο το δυνατόν μεγαλύτερο αριθμό εργασιών, η χρήση ενός CMS ίσως να είναι μονόδρομος, με κυριότερο λόγο τον κερδισμένο χρόνο που παρέχουν και στις δύο πλευρές. Ακόμα και ιδιώτες-ερασιτέχνες που θέλουν να κατασκευάσουν μία απλή ιστοσελίδα και δεν θέλουν ούτε να μάθουν μια γλώσσα προγραμματισμού ούτε να μισθώσουν κάποιον προγραμματιστή μπορούν να επωφεληθούν από την χρήση ενός CMS όπως είναι η Joomla. Και αυτό γιατί όπως αναφέρθηκε και πιο πριν δεν χρειάζεται γνώση προγραμματισμού.

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

(7)

1. Module

Τα modules του Joomla αποτελούν τη κινητήρια δύναμη του, καθώς για την οποιαδήποτε εμφάνιση περιεχομένου στην ιστοσελίδα θα πρέπει να χρησιμοποιηθεί κάποιο module. Τα modules αποτελούν κομμάτια κώδικα σε PHP, σε αντικειμενοστραφή λογική, τα οποία έχουν μια συγκεκριμένη λειτουργία, όπως μια φόρμα login ή την εμφάνιση ενός άρθρου.

Τα modules αποτελούνται από μια σειρά εφτά περίπου αρχείων σε PHP, HTML και XML τα οποία αποθηκεύονται σε έναν φάκελο με το όνομα του module όπως mod_name. Η εγκατάσταση του module είναι μια απλή μεταφορά του φακέλου αυτού στον φάκελο modules του Joomla στον server.

Για την κυκλοφορία του αρχείου στο ευρύ κοινό το μόνο που χρειάζεται είναι η συμπίεση του σε μορφή zip, και για την χρήση του μια απλή αποσυμπίεση στο folder που βρίσκονται τα αρχεία module.

Τα αρχεία PHP του module αποτελούν τον πηγαίο κώδικα και ευθύνονται για την εκτέλεση της εφαρμογής. Σε ένα αρχείο φτιάχνεται η τάξη που χρησιμοποιεί το module, σε άλλο ο πηγαίος κώδικας και τέλος σε ένα τρίτο η χρήση των συναρτήσεων της τάξης. Από τα τουλάχιστον τρία αρχεία ο κώδικας που υπάρχει στο καθένα είναι διαφορετικός. Στο αρχείο helper.php υπάρχουν οι τάξεις και οι συναρτήσεις που χρησιμοποιεί το module. Στο αρχείο με το όνομα του module (παράδειγμα mod_name.php) υπάρχει η εκτέλεση των συναρτήσεων του αρχείου helper καθώς και μία διακήρυξη για την χρήση του αρχείου helper. Και τέλος στο αρχείο default.php υπάρχει ο κώδικας PHP που θα εμφανίζει αποτελέσματα για τους χρήστες και τον διαχειριστή.

Το αρχείο XML αποτελεί βοηθητικό αρχείο στο οποίο καταγράφονται γενικότερες πληροφορίες του module όπως ο προγραμματιστής, το έτος κυκλοφορίας, τρόποι επικοινωνίας με τον προγραμματιστή, ενότητα copyright, η τρέχουσα έκδοση του module και άλλα. Επίσης μέσω του αρχείου αυτού εμφανίζονται και οι πληροφορίες στο επίπεδο διαχείρισης στο Joomla. Η χρήση του αρχείου XML μπορεί να φαίνεται προαιρετική αλλά πρέπει να εμπεριέχεται μέσα στο module καθώς μέσω του αρχείου αυτού παίρνουν της πληροφορίες η χρήστες για το σκοπό της λειτουργίας του.

Τέλος τα αρχεία HTML αποτελούνται από ελάχιστο κώδικα, του τύπου

<html>

<body bgcolor="#FFFFFF">

</body>

</html>

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

(8)

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

Για την μετατροπή μίας εφαρμογής διαδικτύου σε module για την Joomla παίζει σημαντικό ρόλο η διάσπαση της εφαρμογής σε εφτά διαφορετικά αρχεία. Σημαντικό ρόλο παίζει η γνώση προγραμματιστικών τεχνικών, για να γνωρίζει σε ποιο αρχείο πρέπει να πηγαίνει το κάθε τμήμα κώδικα, αλλά και καλή γνώση της λειτουργίας της ίδιας της Joomla, για το πώς ενσωματώνονται οι εφαρμογές στη λειτουργία της.

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

Για την διάδοση ενός module το μόνο που χρειάζεται είναι η συμπίεση του φακέλου στον οποίο υπάρχουν τα αρχεία στην μορφή ενός απλού zip αρχείου, και η διάδοση του μέσω διαδυκτίου.

(9)

2. Εργαλεία που χρησιμοποιήθηκαν 2.1 HTML

Το 1980 ο φυσικός Tim Berners-Lee, ο οποίος ήταν τοποθετημένος στο CERN, πρότεινε τη δημιουργία ενός συστήματος στο CERN για να μπορούν οι επιστήμονες του να χρησιμοποιούν και να ανταλλάζουν αρχεία.

Το 1989 ο Berners-Lee πρότεινε ένα σύστημα hypertext με βάση το Internet, ανάφερε συγκεκριμένα την HTML και στα τέλη του 1990 έγραψε τα λογισμικά για browser και server. Την ίδια χρονιά με την βοήθεια του μηχανικού Robert Cailliau ζήτησαν χρηματοδότηση από το CERN, αλλά το έργο δεν πραγματοποιήθηκε.

Η γλώσσα HTML(HyperText Markup Language - γλώσσα μορφοποίησης υπερκειμένου) με την οποία καθορίζεται η μορφή εμφάνισης των σελίδων στο διαδίκτυο, εμφανίστηκε για πρώτη φορά το 1993. Η HTML είναι δημιούργημα του Tim Berners-Lee και προέρχεται από την γλώσσα SGML(Standard Generalized Markup Language). Η SGML είναι δύσκολο να εφαρμοστεί σωστά και επακριβώς από ένα φυλλομετρητή για αυτό και δεν δικαιολογείται η επί πλέον δαπάνη για την απλή εμφάνιση περιεχομένου στον παγκόσμιο ιστό.

Η γλώσσα HTML είναι μια γλώσσα που χρησιμοποιούν οι browsers για να μεταφράζουν και να συνθέτουν κείμενα, εικόνες και άλλα στοιχεία για να παράγουν οπτικά ολοκληρωμένες ιστοσελίδες. Τα σταθερά χαρακτηριστικά για κάθε αντικείμενο της HTML ορίζονται από τον browser. Το μόνο που χρειάζεται για την εκτέλεση ενός αρχείου HTML είναι η ύπαρξη ενός browser, αυτό σημαίνει ότι δεν χρειάζεται σύνδεση με το Internet, οπότε μπορούμε να δημιουργήσουμε ολοκληρωμένα αρχεία με την χρήση της HTML και το μόνο που χρειάζεται είναι η ύπαρξη ενός απλού κειμενογράφου και η χρήση ενός browser όπως είναι ο Inernet Explorer thw Microsoft ή το Chrome της Google.

Τη δεκαετία του ’90 υπήρχε μια μεγάλη ανάπτυξη γύρο από την HTML με τις εκδόσεις των version 2.0, version 3.2, και 4.0(στο ίδιο έτος), και τέλος με την έκδοση τις version 4.01 το 1999. Μετά την γρήγορη ανάπτυξη τεσσάρων εκδόσεων μέσα σε τόσο μικρό χρονικό διάστημα θεωρήθηκε ευρέως ότι η HTML δεν είχε να προσφέρει τίποτε άλλο, για αυτό το λόγο η προσοχή έπεσε στις γλώσσες XML και XHTML. Παρόλα αυτά το μεγαλύτερο

(10)

μέρος του περιεχομένου του διαδικτύου συνεχίστηκε να προσφέρεται με την χρήση της HTML.

Λόγω της μεγάλης απήχησης που έχει η γλώσσα HTML και για την ανάπτυξη νέων εφαρμογών αλλά και για την περαιτέρω ανάπτυξη της, νέα πρότυπα και νέες δυνατότητες έπρεπε να αναπτυχθούν. Για να προωθήσουν την πλατφόρμα του διαδικτύου σε νέα επίπεδα, μια ομάδα ατόμων δημιούργησε την Web Hypertext Application Working Group(WHATWG) το 2004. Μεταξύ άλλων έθεσε και τα νέα πρότυπα για την γλώσσα HTML5. Αυτή τη στιγμή η HTML5 αναπτύσσεται από τρεις οργανισμούς, την WHATWG, την World Wide Web Consortium(W3C) και την Internet Engineering Task Force (IETF).

Τα αρχεία που δημιουργούνται με την χρήση της HTML είναι απλά αρχεία κειμένου που αποθηκεύονται με την κατάληξη .html ή .htm. Η διαφοροποίηση που υπάρχει στην γλώσσα HTML και επιτρέπει την ανάγνωση των αρχείων από κάποιο browser έγκειται στη χρήση κάποιων ταμπελών (tags). Ένα παράδειγμα αρχείου HTML είναι το ακόλουθο,

<!DOCTYPE html>

<html>

<head>

<title>Hello HTML</title>

</head>

<body>

<p>Hello World!</p>

</body>

</html>

στο παράδειγμα αυτό τα στοιχεία <html>,<head>, <title>, <body> αποτελούν μερικά παραδείγματα των tags. Ενώ τα στοιχεία Hello HTML και Hello World!

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

Υπάρχει ένα μεγάλο εύρος από tags που μπορούμε να χρησιμοποιήσουμε για να έχουμε τα αποτελέσματα που επιθυμούμε από την τελική εμφάνιση της ιστοσελίδας. Τα tags αυτά κυμαίνονται από το στυλ της γραμματοσειράς, το μέγεθος που θα έχουν τα γράμματα έως και την εμφάνιση κάποιας εικόνας ή και τη δημιουργία ενός υπερσυνδέσμου σε κάποια άλλη ιστοσελίδα.

(11)

Παρά το μεγάλο εύρος από παραμέτρους που μπορούμε να θέσουμε με τα tags που μας προσφέρει η HTML, το μεγαλύτερο μειονέκτημα της γλώσσας αυτής είναι ότι οι ιστοσελίδες που κατασκευάζονται με την χρήση της δεν μπορούν να έχουν κάποια αλληλεπίδραση με κάποια άλλη ιστοσελίδα, είναι δηλαδή στατικές σελίδες. Για να λυθεί αυτό το πρόβλημα δημιουργήθηκε η γλώσσα PHP η οποία συνδυάζεται μαζί με τη χρήση της HTML. Για αυτό το λόγο η γνώση της HTML για κάποιον που θέλει να δημιουργήσει μια ιστοσελίδα, χωρίς τη χρήση κάποιου CMS, αποτελεί μονόδρομο.

2.2 PHP

Η γλώσσα PHP(PHP:Hypertext Preprocessor) αποτελεί μία γλώσσα προγραμματισμού που χρησιμοποιείται στην ανάπτυξη εφαρμογών διαδικτύου για την δημιουργία δυναμικών ιστοσελίδων. Ο όρος δυναμική ιστοσελίδα σημαίνει ότι υπάρχει κάποιος βαθμός αλληλεπίδρασης μεταξύ της ιστοσελίδας και του χρήστη. Για το σκοπό αυτό ο PHP κώδικας ενσωματώνεται μέσα σε αρχεία HTML, μεταγλωττίζεται από τον server με αποτέλεσμα να παράγεται μια δυναμική ιστοσελίδα που βλέπει ο χρήστης από τον υπολογιστή του.

Η γλώσσα PHP αναπτύχθηκε αρχικά από τον Rasmus Lerdorf το 1995.

Πλέον την ανάπτυξη της PHP έχει η The PHP Group και λειτουργεί ως de facto πρότυπο της PHP καθώς δεν έχουν καθοριστεί επίσημα πρότυπα. Η PHP αποτελεί δωρεάν γλώσσα προγραμματισμού.

Η ανάπτυξη της PHP το 1994 από τον προγραμματιστή Rasmus Lerdorf, ο οποίος αρχικά δημιούργησε μερικά scripts με βάση την Perl ονομάζοντας τα ”Personal Home Page Tools” για να διατηρεί την προσωπική του ιστοσελίδα. Τα scripts εκτελούσαν διεργασίες όπως την εμφάνιση του βιογραφικού του και την παρακολούθηση της “κίνησης” στην ιστοσελίδα του.

Το 1997 οι Zeev Suraski και Andi Guitmans ξανάγραψαν τον parser και δημιούργησαν την βάση για την PHP 3, αλλάζοντας και το όνομα της γλώσσας σε PHP:Hypertext Preprocessor. Μετά από μια περίοδο public testing της PHP 3, η γλώσσα κυκλοφόρησε επίσημα τον Ιούνιο του 1998.

(12)

Το 2008 η PHP 5 έγινε η μόνη σταθερή έκδοση η οποία βρίσκεται υπό ανάπτυξη. Ταυτόχρονα υπήρχε μια ακόμα έκδοση η οποία ήταν υπό ανάπτυξη μαζί με την PHP 5 για αρκετά χρόνια. Η έκδοση αυτή ήταν αρχικά να κυκλοφορήσει ως PHP 6 λόγω των μεγάλων αλλαγών που είχε, μια από αυτές ήταν και η πλήρης υποστήριξη Unicode. Επειδή όμως η ενσωμάτωση χρειάστηκε περισσότερο χρόνο από ότι είχε αρχικά σχεδιαστεί, η ολοκλήρωση του έργου μεταφέρθηκε για αργότερα.

Για την δημιουργία ενός script σε PHP το μόνο που χρειάζεται είναι ένας απλός κειμενογράφος αλλά για την εκτέλεση του, επειδή είναι γλώσσα ανάπτυξης εφαρμογών διαδικτύου, χρειάζεται η χρήση κάποιου server που να υποστηρίζει τη έκδοση της PHP που χρησιμοποιούμε, ακόμα και εικονικού με την χρήση του XAMPP, καθώς ο server είναι υπεύθυνος για την μετάφραση των εντολών της PHP σε εντολές που να μπορεί να αναγνωρίσει ο φυλλομετρητής μας.

Αυτό γίνεται με τον ακόλουθο τρόπο, ο server διατρέχει τον κώδικα και εκτελεί τον κώδικα που είναι γραμμένος με την χρήση της PHP, έπειτα μετατρέπει τον κώδικα αυτό σε μία μορφή που να μπορεί να αναγνωρίσει ο φυλλομετρητής που χρησιμοποιεί ο χρήστης, αυτή η μορφή είναι με την χρήση της HTML. Δηλαδή αυτό που “διαβάζει” ο φυλλομετρητής του χρήστη είναι μονάχα κώδικας HTML.

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

<html>

<head>

<title>Τίτλος</title>

</head>

<body bgcolor='#ffffff' text='#000000'>

<?php

echo "Μια απλή ανακοίνωση";

?>

</body>

</html>

(13)

το σημείο που κάνει το κομμάτι της PHP να ξεχωρίζει από το υπόλοιπο τμήμα της HTML, είναι ότι το τμήμα της PHP θα πρέπει να βρίσκεται πάντα ανάμεσα από το τμήμα <?php και ?>, το οποίο δηλώνει ότι ο κώδικας που ακολουθεί είναι γραμμένος σε PHP, έτσι ώστε να αναγνωρίζει ο server σε ποιο τμήμα να παρεμβαίνει. Στο κομμάτι κώδικα που αποτελεί το PHP μπορούμε να θέσουμε συνθήκες ελέγχου όπως είναι η χρήση μίας if ή και δομές επανάληψης όπως είναι μία for ή μία while, ανάλογα με την λειτουργία που θέλουμε να πραγματοποιήσουμε.

2.3 XML

XML(Extensible Markup Language) είναι μια σειρά από κανόνες για την κωδικοποίηση αρχείων σε μια μορφή την οποία να μπορούν να αναγνωρίσουν οι υπολογιστές. Οι κανόνες αυτοί καθορίζονται από τις απαιτήσεις του XML 1.0 που τέθηκαν από την W3C και από άλλες απαιτήσεις, δημιουργώντας έτσι μια ανοιχτή σταθερά.

Ο σχεδιαστικός σκοπός της XML στοχεύει κυρίως στην απλότητα, την γενίκευση και την χρησιμότητα μέσω του διαδικτύου. Για την κατασκευή ενός αρχείου XML το μόνο που χρειάζεται είναι η χρήση ενός κειμενογράφου, καθώς ακολουθεί την ίδια σχεδιαστική λογική με την HTML με τη διαφορά ότι τα αρχεία αποθηκεύονται με την κατάληξη .xml. Παρόλο που σχεδιάστηκε με κύριο σκοπό για την χρήση της σε απλά αρχεία κειμένου, η XML χρησιμοποιείται αρκετά και για την δημιουργία εφαρμογών διαδικτύου.

Η XML είναι μια παραλλαγή του SGML. Η ελαστικότητα της SGML για την δυναμική εμφάνιση περιεχομένου θεωρήθηκε σημαντική ακόμα και από την δεκαετία του 80, πολύ πριν την άνθηση του διαδικτύου. Κατά την διάρκεια της δεκαετίας του ’90 αρκετοί χρήστες του SGML αποκτώντας εμπειρία με το τότε καινούργιο World Wide Web, πιστεύανε ότι το SGML θα ήταν η πιθανή λύση για τα πιθανά προβλήματα που θα αντιμετώπιζε το διαδίκτυο.

Στην υλοποίηση της η XML ακολουθεί τις ίδιες βασικές αρχές με την HTML, όπως είναι η χρήση των ετικετών, με την διαφορά ότι η XML έχει δικούς της κανόνες καθώς και ξεχωριστές ετικέτες. Ένα απλό παράδειγμα κατασκευής ενός XML αρχείου είναι ο ακόλουθος

<?xml version="1.0" encoding="utf-8"?>

<install>

<!-- χρήση κώδικα -- >

</install>

αυτό που ξεχωρίζει στο παράδειγμα αυτό είναι η διακήρυξη ότι το αρχείο αυτό είναι σε XML με την χρήση της ετικέτας <?xml?> καθώς το είδος της κωδικοποίησης που υπάρχει σε αυτό. Επίσης παρατηρείται και η χρήση της

(14)

ετικέτας <install> η οποία είναι και η κυριότερη διαφορά της XML από την HTML.

2.4 MySQL

Η MySQL είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων(Relationla Database Management System). Είναι παγκοσμίως η πιο διαδεδομένη βάση δεδομένων ανοικτού κώδικα. Επίσης είναι ένα πολύ γρήγορο και δυνατό σύστημα διαχείρισης βάσεων δεδομένων.

Μια βάση δεδομένων μας επιτρέπει να αποθηκεύσουμε, να αναζητήσουμε, να χρησιμοποιήσουμε και να ταξινομήσουμε μεγάλο όγκο δεδομένων. Η MySQL επιτρέπει την πρόσβαση στα δεδομένα από αρκετούς χρήστες ταυτόχρονα αλλά για λόγους ασφαλείας επιτρέπει την οποιαδήποτε αλλαγή αυτών μόνο από πιστοποιημένους χρήστες. Για την χρήση της MySQL χρειάζεται γνώση της SQL(Structured Query Language) η οποία αποτελεί ένα πρότυπο για την γλώσσα ερωτημάτων.

Η χρήση της MySQL στο διαδίκτυο είναι αρκετά διαδεδομένη για διάφορους λόγους. Κάποιοι από αυτούς είναι η ευκολία που παρέχει στον προγραμματιστή και στην αλληλεπίδραση με την ιστοσελίδα αλλά και στην μεταφορά της σε άλλο server. Επίσης είναι εύκολη στην δημιουργία αντιγράφων ασφαλείας, επίσης παρέχει αρκετή ασφάλεια από κακόβουλες επιθέσεις και υποστηρίζετε συνεχώς από συνεχείς επανεκδόσεις για την διατήρηση της ασφάλειας. Επειδή είναι λογισμικό ανοιχτού κώδικα παρέχεται δωρεάν, και στηρίζεται δυνατά από μια κοινότητα προγραμματιστών.

2.5 Joomla

Λόγω της μεγάλης άνθησης του διαδικτύου και του μεγάλου όγκου περιεχομένου που υπάρχει σε αυτό, είναι δύσκολη η συνεχής βελτίωση, αλλά και συντήρηση, των ιστοσελίδων. Για το λόγο αυτό δημιουργήθηκαν τα Content Management System(CMS), όπως η Joomla. Τα CMS παρέχουν τον πλήρη σκελετό μίας ιστοσελίδας και επιτρέπουν στον σχεδιαστή να παρέχει το περιεχόμενο, χωρίς την ανάγκη γνώσης κάποιας γλώσσας όπως η HTML ή η PHP, επιτρέποντας την διατήρηση μιας ιστοσελίδας με επαγγελματικό τρόπο χωρίς ιδιαίτερο κόπο.

H Joomla είναι ένα δωρεάν CMS ανοιχτού κώδικα, και επιτρέπει την δημιουργία πλούσιων ιστοσελίδων σε λίγο χρόνο. Η δημιουργία μιας ιστοσελίδας με την χρήση της γλώσσας HTML πρέπει να γίνει από το μηδέν και επίσης να σχεδιαστεί και ο τρόπος εμφάνισης του περιεχομένου. Με την χρήση της Joomla αυτό γίνεται αυτόματα, αποτρέποντας έτσι πιθανά λάθη

(15)

στη σχεδίαση, μειώνοντας έτσι το χρόνο που χρειάζεται για την διόρθωση του κώδικα. Το σύστημα Joomla είναι γραμμένο στην γλώσσα PHP και χρησιμοποιεί τεχνικές αντικειμενοστραφή προγραμματισμού, αποθήκευση δεδομένων σε MySQL βάσεις δεδομένων και παρέχει τη δυνατότητα δημιουργίας blog, πεδίων search, δημοσκοπήσεις και άλλα.

Η ιδιαιτερότητα της Joomla είναι ότι δεν χρειάζεται να κατασκευαστεί κάθε αρχείο που θα εμφανίζεται στην ιστοσελίδα, όπως γίνεται με τη χρήση της HTML, απλά χρειάζεται να δημιουργήσουμε τον σκελετό της ιστοσελίδας, να εισάγουμε το περιεχόμενο(άρθρα, εικόνες και άλλα) και να θέσουμε την γενικότερη εμφάνιση που θέλουμε. Όλες αυτές οι επιλογές αποθηκεύονται στη βάση δεδομένων που χρησιμοποιεί η Joomla σε διάφορα πεδία. Η εμφάνιση ενός άρθρου που βρίσκεται για παράδειγμα σε μια υποκατηγορία θα

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

Με αυτό τον τρόπο η εμφάνιση του περιεχομένου γίνεται on the fly για κάθε χρήστη ξεχωριστά, αποτρέποντας έτσι το “χάσιμο” των σχεδιαστών όταν κατασκευάζουν μεγάλες ιστοσελίδες που απαιτούν έναν μεγάλο όγκο αρχείων, ταυτόχρονα καθιστούν εύκολη την συντήρηση της και την επίλυση πιθανών προβλημάτων που μπορεί να προκύψουν.

Υπάρχουν πολλοί λόγοι για την επιτυχία του Joomla αλλά ο κυριότερος είναι η ελαστικότητα που παρέχει στον χρήστη του, ακόμα και αν δεν έχει τις απαραίτητες τεχνικές γνώσεις, στην δημιουργία μίας ιστοσελίδας. Ο διαχειριστής έχει την δυνατότητα να παρέχει διάφορα επίπεδα πρόσβασης στους χρήστες, δίνοντας σε κάποιους τη δυνατότητα να έχουν πρόσβαση και να φτιάξουν νέες σελίδες και σε άλλους να έχουν μόνο πρόσβαση και τη δυνατότητα να τις αλλάξουν. Επίσης τα επίπεδα πρόσβασης μπορούν να θέτουν σαν όριο την πρόσβαση σε συγκεκριμένα σημεία του ιστότοπου.

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

Ένα ακόμα μεγάλο πλεονέκτημα για την χρήση της Joomla είναι ότι οποιαδήποτε λειτουργία ή εφαρμογή θελήσουμε να ενσωματώσουμε στην ιστοσελίδα μας, είναι πολύ πιθανό να έχει κατασκευαστεί από άλλους και να βρίσκεται έτοιμη προς διάθεση. Σημαντική παραμένει και η δυνατότητα αλλαγής του template της ιστοσελίδας. Το template είναι υπεύθυνο για την εμφάνιση που θα έχει η ιστοσελίδα μας, από το χρώμα στο υπόβαθρο μέχρι και στην εμφάνιση συγκεκριμένων εικόνων. Η αλλαγή αυτή γίνεται μέσω της διαχείρισης των template και εφαρμόζεται αυτόματα σε όλη την ιστοσελίδα χωρίς να χρειάζεται να αλλάξουμε τον κώδικα σε κάθε αρχείο που χρησιμοποιεί η ιστοσελίδα μας. Σε αρκετές περιπτώσεις τα template αυτά ακολουθούν την λογική του λογισμικού ανοιχτού κώδικα, και οι δημιουργοί τους μας παρέχουν πρόσβαση στον πηγαίο κώδικα, επιτρέποντας μας με αυτό τον τρόπο να αλλάξουμε την εμφάνιση που θα έχει το template ανάλογα με τις ανάγκες μας. Οι αλλαγές αυτές μπορεί να είναι από την αλλαγή της γραμματοσειράς έως και την αλλαγή των εικόνων που θα εμφανίζονται.

Από την άλλη το μεγαλύτερο μειονέκτημα των CMS όπως η Joomla είναι ότι αποτελούν πολύπλοκα ολοκληρωμένα συστήματα με μία πλειάδα από αρχεία τα οποία “συνεργάζονται” μεταξύ τους και με την βάση

(16)

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

Επειδή το Joomla αποτελεί CMS ανοιχτού κώδικα, έχει μια μεγάλη κοινότητα από προγραμματιστές οι οποίοι κατασκευάζουν συνεχώς νέες επεκτάσεις ή και templates για το Joomla, τα οποία συνήθως παρέχονται δωρεάν καθώς υπάρχουν και επεκτάσεις ή εφαρμογές που δημιουργούνται από εταιρίες και χρειάζεται η αγορά τους, και βελτιώνουν συνεχώς τα ήδη υπάρχοντα.

Παρόλο που η Joomla αποτελεί ένα ολοκληρωμένο σύστημα για την δημιουργία και τη συντήρηση ιστοσελίδων, το αν θα χρησιμοποιηθεί από κάποιον σχεδιαστή βρίσκεται καθαρά στην επιλογή του, καθώς η σχεδίαση και ανάπτυξη μίας ιστοσελίδας με τη χρήση των γλωσσών PHP και HTML παρέχει τα δικά της πλεονεκτήματα και μειονεκτήματα και διαφορετικό βαθμό ικανοποίησης μετά την ολοκλήρωση της.

Η έκδοση που χρησιμοποιήθηκε είναι η 1.5. Αυτή τη στιγμή οι εκδόσεις που παρέχονται προς χρήση είναι οι 1.0, 1.5, 1.6, 1.7 και προσεχώς η 2.5. Αν υπάρχουν διαφορετικές εκδόσεις της Joomla οι σχεδιαστές του έχουν προνοήσει για την αναβάθμιση της έκδοσης που μπορεί να χρησιμοποιούν οι χρήστες, με αποτέλεσμα να μην χρειάζεται να ξανακατασκευαστούν από την αρχή τα site που έχουν δημιουργηθεί με παλαιότερη σε κάποια καινούργια έκδοση.

2.6 Xampp

Το Xampp είναι ένα πακέτο προγραμμάτων ανοιχτού κώδικα το οποίο αποτελείτε από Apache HTTP server, βάσει δεδομένων MySQL, διερμηνείς για της γλώσσες PHP και Perl, επίσης παρέχει και την εφαρμογή SQL MyAdmin η οποία επιτρέπει την αυτόματη και εύκολη δημιουργία βάσεων δεδομένων σε MySQL. Η βασική λειτουργία του Xampp είναι η δημιουργία ενός εικονικού server στον ηλεκτρονικό υπολογιστή, επιτρέποντας μας με αυτό τον τρόπο να έχουμε όλες της λειτουργίες ενός server με εύκολο και γρήγορο τρόπο, χωρίς να χρειάζεται να καταβάλουμε κάποιο αντίτιμο, για την χρήση ενός κανονικού server, προς τους διαχειριστές του.

Με την βοήθεια του Xampp μπορούμε να έχουμε όλες τις λειτουργίες ενός server χωρίς να χρειάζεται σύνδεση με το διαδίκτυο, επιτρέποντας έτσι τη δημιουργία και τον έλεγχο ολόκληρων ιστοσελίδων αλλά και εφαρμογών διαδικτύου χωρίς να μας εμποδίζουν τυχόν επισκέπτες στην ιστοσελίδα αυτή.

Ταυτόχρονα με τη εφαρμογή SQL MyAdmin που παρέχεται μαζί με το Xampp μπορούμε να δημιουργήσουμε εύκολα και γρήγορα πίνακες στην βάση δεδομένων χωρίς να χρειάζεται η γνώση σύνταξης ερωτημάτων σε SQL.

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

(17)

χρήστες. Είναι ιδιαίτερα σημαντική η χρήση του Xampp όταν γίνεται έλεγχος της ασφάλειας πού παρέχει η ιστοσελίδα στους χρήστες, και αυτό γιατί με την χρήση του Xampp μπορούμε να αποτρέψουμε πιθανά κενά ασφάλειας χωρίς να θέτουμε σε κίνδυνο ευαίσθητο υλικό. Έπειτα από τους διάφορους ελέγχους μεταφέρονται τα αρχεία στον server.

(18)

3. Περιγραφή της Βάσης Δεδομένων 3.1 Δημιουργία Βάσης Δεδομένων

Για τις ανάγκες της εφαρμογής δημιουργήθηκε μια βάση δεδομένων σε SQL. Δημιούργησα την βάση με όνομα theseis_ergasias.

3.2 Δημιουργία Πινάκων

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

 jos_tmima

 jos_company

 jos_foit

 jos_thesei

 jos_user

 jos_log

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

3.2.1 Δομή πίνακα jos_tmima

Ο πίνακας αυτός αποτελείται από τα πεδία tmimaId και name. Το πεδίο tmimaId είναι το πρωτεύον κλειδί του πίνακα jos_tmima και είναι ένας ακέραιος αριθμός αυτόματης αρίθμησης. Το πεδίο name είναι τύπου char εύρους 50 χαρακτήρων και είναι τα ονόματα των σχολών του ΤΕΙ Καβάλας.

3.2.2 Δομή πίνακα jos_company

Ο πίνακας αυτός αποτελείται από τα πεδία compId, tmimaId και compName. Το πεδίο compId είναι ένας ακέραιος αριθμός αυτόματης αρίθμησης και αποτελεί το πρωτεύον κλειδί του πίνακα αυτού. Το πεδίο tmimaId είναι ξένο κλειδί και δηλώνει την σχέση του πίνακα jos_company με τον πίνακα jos_user. Τέλος το πεδίο compName είναι τύπου varchar εύρους 255 χαρακτήρων και είναι η επωνυμία της επιχείρησης.

3.2.3 Δομή πίνακα jos_foit

Ο πίνακας αυτός αποτελείται από τα πεδία id, tmimaId, name και lastName. Το πεδίο id είναι ακέραιος αριθμός αυτόματης αρίθμησης και αποτελεί το πρωτεύον κλειδί του πίνακα. Το πεδίο tmimaId είναι ξένο κλειδί και δηλώνει το τμήμα στο οποίο είναι ο κάθε φοιτητής. Τέλος τα πεδία name και lastName είναι και τα δύο τύπου varchar εύρους 50 χαρακτήρων και δηλώνουν το όνομα και το επίθετο αντίστοιχα, για των κάθε φοιτητή.

(19)

3.2.4 Δομή πίνακα jos_thesei

Ο πίνακας αυτός αποτελείται από τα πεδία idThesei, tmimaId και keimeno. Το πεδίο idThesei είναι ακέραιος αριθμός αυτόματης αρίθμησης και αποτελεί το πρωτεύον κλειδί του πίνακα. Το πεδίο tmimaId είναι ξένο κλειδί και δηλώνει τη σχέση ανάμεσα στη θέση εργασίας που προσθέτει μια επιχείρηση με το εκάστοτε τμήμα. Τέλος το πεδίο keimeno είναι το κείμενο της θέσης εργασίας που ”ανεβάζουν” οι επιχειρήσεις.

3.2.5 Δομή πίνακά jos_user

Ο πίνακας αυτός δημιουργείται από το module και σκοπός του είναι να δίνει δικαιώματα στους χρήστες, ανάλογα με το αν είναι φοιτητές ή επιχειρήσεις. Ο πίνακας αποτελείται από τα πεδία userId, role και name. Το πεδίο userId είναι ένας ακέραιος αριθμός αυτόματης αρίθμησης και αποτελεί το πρωτεύον κλειδί του πίνακα. Το πεδίο role είναι ένας μικρός ακέραιος ο οποίος παίρνει τρεις τιμές, 1 για των διαχειριστή, 2 για τις επιχειρήσεις και 3 για τους σπουδαστές. Τέλος το πεδίο name είναι τύπου varchar εύρους 225 χαρακτήρων και είναι το όνομα του εκάστοτε χρήστη.

3.2.6 Δομή πίνακα jos_log

Ο πίνακας αυτός δημιουργείται και αυτός από το module με σκοπό να κρατά κάποιο ιστορικό για την ιστοσελίδα. Ο πίνακας αποτελείται από τα πεδία logId, imerominia και action. Το πεδίο logId είναι ακέραιος αριθμός αυτόματης αρίθμησης και αποτελεί το πρωτεύον κλειδί του πίνακα. Το πεδίο imerominia είναι τύπου date και σκοπός του είναι να κρατά την ημερομηνία όταν υπάρχει κάποια αλληλεπίδραση με τον πίνακα αυτό. Τέλος το πεδίο action είναι ακέραιου τύπου μικρής εμβέλειας και σκοπό έχει την αποθήκευση ενός αριθμού, του αριθμού 1 εάν πρόκειται για καταχώριση στη βάση ή του αριθμού 2 εάν πρόκειται για ανάγνωση κάποιου πεδίου από την βάση.

(20)

4. Περιγραφή της εφαρμογής 4.1 Σχεδίαση των αρχείων

Όπως αναφέρεται και σε προηγούμενο κεφάλαιο, για την ανάπτυξη ενός module για την Joomla χρειάζεται ένας ελάχιστος αριθμός αρχείων, περίπου εφτά αρχεία. Ο τύπος των αρχείων αυτών αποτελείται από ένα αρχείο xml στο οποίο παρέχονται οι πληροφορίες για την διαχείριση του module στον γενικό διαχειριστή της ιστοσελίδας και μερικές παράμετροι για τον αριθμό των αρχείων που εμπεριέχονται στο module.

Υπάρχουν δυο αρχεία html που έχουν σαν σκοπό την εμφάνιση της προκαθορισμένης σελίδας εάν υπάρξει προσπάθεια απευθείας πρόσβασης χωρίς την χρήση άλλων αρχείων.

Τέλος τα αρχεία php αποτελούν την ”ραχοκοκαλιά” του module καθώς αυτά είναι υπεύθυνα για την εκτέλεση της εφαρμογής.

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

 mod_8eseis.xml

 helper.php

 mod_8eseis.php

 index.html

 tmpl/default.php

 tmpl/index.html

Το αρχείο default.php καθώς και το δεύτερο αρχείο index.html τοποθετήθηκαν σε έναν φάκελο με το όνομα tmpl.

Βασική προϋπόθεση για την σωστή λειτουργία του module είναι η χρήση μίας φόρμας login καθώς και ότι το module θα είναι εμφανές στους χρήστες μονάχα αφού κάνουν login.

4.2 Αναλυτική παρουσίαση των αρχείων 4.2.1 Αρχείο mod_8eseis.xml

Όπως έχει αναφερθεί και σε προηγούμενα κεφάλαια στο αρχείο αυτό γενικές πληροφορίες για το module. Οι πληροφορίες αυτές αναγράφονται σε ένα πεδίο με όνομα <install> και περιέχουν το όνομα που θα εμφανίζεται στο περιβάλλων διαχείρισης της ιστοσελίδας, το ονοματεπώνυμο του προγραμματιστή, την ημερομηνία κατασκευής του module, τα δικαιώματα, την τρέχουσα έκδοση του module και τέλος μία σύντομη περιγραφή για το σκοπό του η οποία εμφανίζεται στο περιβάλλον διαχείρισης των modules της Joomla.

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

<authorEmail>, η διεύθυνση της ιστοσελίδας του με την χρήση της ετικέτας

(21)

<authorUrl> εάν υπάρχει ή εάν πρόκειται για ολόκληρη σχεδιαστική ομάδα, διεύθυνση των όρων χρήσης του συγκεκριμένου module σε κάποια ιστοσελίδα μέσω της χρήσης της ετικέτας <license> και αρκετές ακόμα πληροφορίες που θέλουμε να εμφανίζονται στο περιβάλλον διαχείρισης modules της Joomla

<name>8eseis ergasias</name>

<author>Lazos Aggelos</author>

<creationDate>10-10-2011</creationDate>

<copyright>All rights reserved. </copyright>

<version>1.0.0</version>

<description>Elegxei tis 8eseis ergasias tou site tou grafeiou diasindesis</description>

Με την χρήση της ετικέτας <files> μέσα στην ετικέτα <install>

αναφέρονται όλα τα αρχεία που χρειάζονται για την εκτέλεση του module, για τα αρχεία που βρίσκονται στον φάκελο tmpl θα πρέπει να ορίζεται και διαδρομή για την προσπέλαση τους. Πρέπει να αναφέρονται όλα τα αρχεία που χρειάζονται για την εκτέλεση της εφαρμογής, για να αναγνωρίζει η Joomla ποια αρχεία να εκτελούνται

<filename module= "mod_8eseis" >mod_8eseis.php</filename>

<filename>index.html</filename>

<filename>helper.php</filename>

<filename>tmpl/default.php</filename>

<filename>tmpl/index.html</filename>

Τέλος με την χρήση της ετικέτας <params> μπορούν να τεθούν περαιτέρω παράμετροι για την χρήση του module. Για την σωστή λειτουργία των συναρτήσεων που δημιουργούν τους πίνακες, αλλά και για να αποτραπεί η συνεχής δημιουργία των πινάκων, προκαλώντας με αυτό τον τρόπο σοβαρό πρόβλημα λειτουργίας στην χρήση της Joomla. Στην ετικέτα αυτή χρησιμοποιούνται παράμετροι για την δημιουργία του πίνακα jos_user

(22)

<params group = "advanced" >

<param name = "is_installed" type = "radio" default = "0" label =

"Έχει εγκατασταθεί;" description= "Χρήση μόνο εάν γνωρίζεται τις συνέπειες ! Επιλέξτε όχι εάν θέλετε να ξαναφτιαχτεί η βάσει " >

<option value= "0" >No</option>

<option value= “1" >Yes</option>

</param>

</params>

Στην δεύτερη ενότητα της ετικέτας <params> χρησιμοποιούνται παράμετροι για την δημιουργία του πίνακα jos_log

<params group = "advanced" >

<param name = "is_install" type = "radio" default = "0" label = "Έχει εγκατασταθεί;" description= "Χρήση μόνο εάν γνωρίζεται τις συνέπειες ! Επιλέξτε όχι εάν θέλετε να ξαναφτιαχτεί η βάσει " >

<option value= "0" >No</option>

<option value= “1" >Yes</option>

</param>

</params>

4.2.2 Αρχείο helper.php

Στο αρχείο helper.php καταχωρούνται όλες οι συναρτήσεις που υπάρχουν στην εφαρμογή αντικειμενοστραφή δομή. Για την σωστή λειτουργία του αρχείου helper οι συναρτήσεις τοποθετούνται μέσα σε μία τάξη το όνομα της οποίας είναι Elegxos. Για να είναι σίγουρο ότι οι συναρτήσεις θα χρησιμοποιηθούν από το συγκεκριμένο module πρέπει για αρχή να καθορίσουμε το επίπεδο πρόσβασης που θα υπάρχει στο αρχείο αυτό. Αυτό επιτυγχάνεται με την χρήση της συνάρτησης defined

defined('_JEXEC');

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

(23)

Για την κατασκευή της εφαρμογής κατασκεύασα μία τάξη με το όνομα Elegxos. Μέσα στην τάξη αυτή δημιούργησα συνολικά τέσσερις συναρτήσεις.

Οι συναρτήσεις αυτές είναι η συνάρτηση modLog, η συνάρτηση elegxosUser, η συνάρτηση rep και τέλος η συνάρτηση pososto.

Πιο συγκεκριμένα στην συνάρτηση modLog γίνεται δημιουργία του πίνακα jos_log. Με την εγκατάσταση του module στην ιστοσελίδα και με την βοήθεια της ετικέτας <params> που βρίσκεται στο αρχείο mod_8eseis.xml ελέγχετε εάν έχει δημιουργηθεί ο πίνακας

if (!$params->get('is_installed'))

κατόπιν μέσω της συνάρτησης getDBO(), η οποία βρίσκεται στην βιβλιοθήκη JFactory που χρησιμοποιεί η Joomla, αποκτάται πρόσβαση στην βάση δεδομένων που χρησιμοποιεί η Joomla.

$database =& JFactory::getDBO();

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

$query = "CREATE TABLE IF NOT EXISTS `jos_log` ( `logId`

INT unsigned auto_increment primary key,'imerominia' date, 'action' timyint(1))";

και με τη χρήση των συναρτήσεων setQuery() και query() αποθηκεύονται τα αποτελέσματα του SQL ερωτήματος πρώτα σε μία μεταβλητή με το όνομα database και τέλος σε μία μεταβλητή με το όνομα result

$database->setQuery ( $query );

$result = $database -> query ();

Τέλος με την χρήση της συνάρτησης set() αλλάζει η καταχώριση που υπάρχει στο αρχείο mod_8eseis.xml για το αν το module είναι εγκατεστημένο έτσι ώστε να μην δημιουργεί συνεχώς τον ίδιο πίνακα

$params->set ( 'is_installed' , 1 );

(24)

Στην συνάρτηση elegxosUser ακολουθείται η ίδια διαδικασία για την δημιουργία του πίνακα jos_user με διαφορετικά ονόματα μεταβλητών

$db =& JFactory::getDBO();

$create = "CREATE TABLE IF NOT EXISTS `jos_user` (

`userId` INT unsigned auto_increment primary key, ’role’

tinyint(1) NOT NULL default `3`, ‘name’ varchar(225) NOT NULL default ` ` );";

$database->setQuery ( $create );

$result = $database -> query ();

$params->set ( 'is_install' , 1 );

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

$query = 'SELECT * FROM jos_foit WHERE id=' .$user->id ' ' ;

$db -> setQuery ( $query );

$result1 = $db -> query ();

return $result1 ;

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

if ( $result1 != NULL )

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

(25)

$query2 = 'INSERT IF NOT EXISTS INTO jos_user VALUE role=\'3\', name=' .$user -> name. ' ' ;

$db->setQuery ( $query2 );

$result2 = $db -> query ();

έπειτα γίνεται έλεγχος του πίνακα jos_thesei για τα κείμενα που έχουν αποθηκευτεί τα οποία έχουν το ίδιο tmimaId με τον σπουδαστή και επιστρέφει τη λίστα που έχει δημιουργηθεί

$getTmima = 'SELECT * FROM jos_thesei WHERE tmimaId=' .$user->tmimaId. ' ' ;

$db->setQuery ( $getTmima );

$listaTmima= ( $listaTmima = $db -> loadObjectList ())?

$listaTmima : array();

return $listaTmima ;

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

$insert1 = 'INSERT IF NOT EXISTS INTO jos_log VALUE action=2' ;

$db -> setQuery ( $insert1 );

$result = $db -> query ();

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

Referências

Documentos relacionados

  Στην ενότητα αυτή δίνεται περιγράφεται η ανάπτυξη των Μαθηματικών στην αρχαία Ελλάδα σε αντιδιαστολή με τα Μαθηματικά των Αιγυπτίων και Βαβυλωνίων, περιγράφεται η συμβολή των