Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών...
TRANSCRIPT
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΑΤΡΑΣ
ΠΑΡΑΡΤΗΜΑ ΠΥΡΓΟΥ
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΜΜΕ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ:
Μελέτη και συγκριτική αξιολόγηση των πιο σημαντικών
πλατφόρμων ανάπτυξης Web εφαρμογών
ΕΠΙΜΕΛΕΙΑ:
Ξένος Απόστολος
Γαρουφαλίδης Χρήστος
Εποπτεύων Καθηγητές: Σκλάβος Νίκος, Χριστοδούλου Σωτήρης
ΠΥΡΓΟΣ - ΙΟΥΝΙΟΣ 2010
1
ΠΕΡΙΕΧΟΜΕΝΑ
ΠΕΡΙΛΗΨΗ (Ελληνικά)........................................................... 3
ΠΕΡΙΛΗΨΗ (Αγγλικά).............................................................. 4
ΚΕΦΑΛΑΙΟ 1 Διαδίκτυο και Web εφαρμογές 1.1 Η ιστορία του Διαδικτύου ........................ 5
1.2 Διαδίκτυο ................................................. 6
1.3 Το Διαδίκτυο στον 21ο αιώνα .................. 7
1.4 Πλαίσιο Web εφαρμογής ......................... 7
1.5 Ιστορία Web εφαρμογών ......................... 7
1.6 Αρχιτεκτονικές ........................................ 8
1.7 Χαρακτηριστικά ...................................... 10
1.8 Λίστα πλαισίων Web εφαμοργών ........... 14
1.9 Aνάπτυξη ιστοσελίδων ........................... 19
1.10 Τεχνικές για εύχρηστες web εφαρμογές .... 19
ΚΕΦΑΛΑΙΟ 2 Συστήµατα Διαχείρισης Περιεχοµένου (CMS)
2.1 Εισαγωγή στα CMS ............................... 22
2.2 Web CMS .............................................. 24
2.3 Πως γινόταν την δεκαετία του 90’ ........ 25
2.4 Πως γίνεται σήμερα .............................. 25
2.5 Πως γίνεται με ένα Web CMS .............. 26
2.6 Πλεονεκτήματα χρήσης ενός Web CMS .. 26
ΚΕΦΑΛΑΙΟ 3 Είδη Web CMS
3.1 Κλειστού κώδικα (closed source) ........ 28
3.2 Ανοιχτού κώδικα (open source) .......... 29
3.3 Μειονεκτήματα των Commercial Closed Source Web
CMS έναντι των Open Source Web CMS 30
3.4 Πλεονεκτήματα των Commercial Closed Source Web
CMS έναντι των Open Source Web CMS 30
ΚΕΦΑΛΑΙΟ 4 Drupal 4.1 Τι είναι ................................................ 32
4.2 Απο που προήλθε ................................ 32
4.3 Σχεδίαση .............................................. 33
4.4 Μονάδες .............................................. 34
4.5 Κριτική ............................................... 36
4.6 Διανομές ............................................. 37
4.7 Χαρακτηριστικά ................................. 38
ΚΕΦΑΛΑΙΟ 5 Ruby on Rails
5.1 Τι είναι ................................................ 47
5.2 Ιστορία ................................................ 49
5.3 Τεχνική επισκόπηση ........................... 49
2
5.4 Δομή πλαισίου .................................... 50
5.5 Φιλοσοφία και σχεδίαση .................... 50
5.6 Πρόσφατε εξελίξεις ............................ 51
5.7 Trademarks ......................................... 51
5.8 Κριτική ............................................... 52
5.9 Χαρακτηριστικά ................................. 52
ΚΕΦΑΛΑΙΟ 6 Joomla
6.1 Τι είναι ................................................ 55
6.2 Ιστορία ............................................... 55
6.3 Ανάπτυξη ........................................... 57
6.4 Κοινότητα .......................................... 58
6.5 Χαρακτηριστικά ................................ 58
ΚΕΦΑΛΑΙΟ 7 Υλοποίηση
7.1 Υλοποίηση Joomla ............................. 73
7.2 Υλοποίηση Drupal ............................. 77
7.3 Υλοποίηδη WaterCMS (Ruby) .......... 84
7.4 Πίνακες κριτηρίων και Συμπεράσματα .. 93
ΒΙΒΛΙΟΓΡΑΦΙΑ
3
ΠΕΡΙΛΗΨΗ
Σκοπός της παρούσας πτυχιακής εργασίας είναι η μελέτη καθώς
και η συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων
ανάπτυξης web εφαρμογών.
Για την υλοποίηση της εργασίας, επιλέχθηκαν τρεις από τις
σημαντικότερες πλατφόρμες συστήματος διαχείρησης περιεχομένου
(CMS).
1. Joomla
2. Drupal
3. Ruby on Rails
Ο αναγνώστης μαθαίνει για το διαδίκτυο, την ιστορία του και πως
εξελίχθηκε αυτό από την αρχή της δημιουργίας του μέχρι και σήμερα.
Ενημερώνεται για τις web εφαρμογές και τις ιστοσελίδες, τον τρόπο
σχεδίασης τους και πως ωφελούν τον χρήστη.
Οι CMS πλατφόρμες χρησιμοποιούνται για την δημιουργία ιστοσελίδων
στο διαδίκτυο. Με τη χρήση πληροφορίων από το διαδίκτυο κάνουμε μια
εκτενή αναφορά για τις πλατφόρμες συστήματος διαχείρισης
περιεχομένου ανοιχτού και κλειστού κώδικα και ιδιαίτερα για τις τρεις
που έχουμε ασχοληθεί. Με απλά διαγράμματα δείχνουμε πως
κατασκευάζονταν οι ιστοσελίδες παλαιότερα και πως τώρα, καθώς και
τα πλεονεκτήματα χρήσης αυτών των πλατφόρμων.
Τέλος δημιουργήσαμε 3 ιστοσελίδες, καθεμία με μία από τις CMS
πλατφόρμες που ασχοληθήκαμε και συγκρίναμε τις δυνατότητες τους
παραθέτοντας πίνακες σύγκρισης καθώς και περιγραφή των
σημαντικότερων πλεονεκτημάτων και μειονεκτημάτων τους.
4
SUMMARY
The purpose of this thesis is to study and benchmarking of the most
significant web application development platforms.
We chose 3 of the most significant content management system
platforms (CMS), in order to implement our study. These 3 platforms are
the following:
1. Joomla
2. Drupal
3. Ruby on Rails
The reader learns about Internet, it’s history and how it has been
developed since it’s creation. He is being informed about web
applications and their benefits as well as websites and the way of their
creation.
CMS platforms are being used for website development. Using
information from web, we made an extensive report for many CMS
platforms and especially the 3 we study for. Using simple diagrams we
show the way of constructing websites along with their advantages.
At last we created 3 websites using 3 different cms and we compared
their features ,quoting comparison tables and also we desciribed their
most important advantages and disadvantages.
5
1 Διαδίκτυο και Web εφαρμογές
1.1 Η Iστορία του Διαδικτύου
Η αρχή έγινε από τον Paul Baran, ερευνητή της εταιρίας Rand, ο οποίος
σχεδίασε ένα δίκτυο επικοινωνίας υπολογιστών χωρίς κεντρικό άξονα,
κεντρικούς διακόπτες, ούτε καν κεντρική διεύθυνση. Το δίκτυο
στηριζόταν στην υπόθεση ότι οι συνδέσεις του δικτύου μεταξύ των
πόλεων είναι πλέον αναξιόπιστες.
Οι ιδέες του Baran οδήγησαν το 1969 στη
δημιουργία του πειραματικού δικτύου
ARPAnet, από τα αρχικά της υπηρεσίας ARPA,
Advanced Research Projects Agency (που
αργότερα ονομάσθηκε DARPA, Defence
Advanced Projects Agency), του αμερικανικού
Πενταγώνου.
Μετά την έναρξη λειτουργίας του δικτύου, και άλλα πειραματικά δίκτυα
συνδέθηκαν με το ARPAnet χρησιμοποιώντας την τεχνολογία των
δικτυώσεων της DARPA. Τα περισσότερα από αυτά είχαν σχέση με
στρατιωτική έρευνα, ενώ συχνά συνδέονταν και πανεπιστήμια. Οι
ερευνητές αυτοί, ενώ βρίσκονταν σε απομακρυσμένα κέντρα
υπολογιστών, μπορούσαν μέσα από το δίκτυο να μοιράζονται μεταξύ
τους προγράμματα, βάσεις δεδομένων αλλά και σκληρούς δίσκους
υπολογιστών. Το 1971 είχαν ήδη συνδεθεί 23 κόμβοι (hosts), ενώ το
1980 έγιναν 200, με παράλληλη δημιουργία των πρώτων διεθνών
συνδέσεων.
Στις αρχές του 1980 το ARPAnet χωρίστηκε σε δύο τμήματα, τα οποία
ωστόσο επικοινωνούσαν μεταξύ τους. Το πρώτο ήταν αποκλειστικά
αφιερωμένο σε στρατιωτικές εφαρμογές και ονομαζόταν MILNET. Το
άλλο τμήμα, που περιλάμβανε όλες τις υπόλοιπες χρήσεις, αρχικά
ονομάστηκε DARPA Internet, για να επικρατήσει με την πάροδο του
χρόνου η σύντομη ονομασία "δίκτυο του Internet".
Η διασύνδεση των υπολογιστών άρχισε να γίνεται ιδιαίτερα δημοφιλής
στα τέλη της δεκαετίας του '70 και στις αρχές της δεκαετίας του '80,
6
οπότε και δημιουργήθηκαν τρία μεγάλα δίκτυα: το ΒΙΤΝΕΤ (Because It's
Time Network), το CSNET(Computer Science Network) και το NSFnet
(National Science Foundation Network). Το τελευταίο, εγκαθιστώντας
μία γραμμή των 56 Kbps, έγινε ο βασικότερος κορμός (backbone) του
Διαδικτύου.
Από το 1983 άρχισε να χρησιμοποιείται το πρωτόκολλο TCP/IP
(Transmission Control Protocol/Internet Protocol), που αναπτύχθηκε στη
δεκαετία του '70 από την DARPA. Από τις αρχές όμως της δεκαετίας του
'80, ο Διεθνής Οργανισμός Προτύπων ISO 70 (International Standards
Organization) ανέπτυξε περιορισμένης χρήσης πρωτόκολλα Ανοιχτής
Διασύνδεσης Συστημάτων OSI (Open Systems Interconnection).
Παράλληλα, η ανάπτυξη του λειτουργικού συστήματος UNIX
διευκόλυνε την επέκταση των διασυνδέσεων μέσω του UUCP (UNIX-to-
UNIX Copy Program.)
1.2 Διαδίκτυο
Το Διαδίκτυο είναι οπτικοποιηµένη αναπαράσταση διαφόρων
διαδροµών (routes) διαµέσου ενός τµήµατος του Ίντερνετ. Στην γενική
του έννοια, διαδίκτυο (ίντερνετ) είναι ένα δίκτυο ηλεκτρονικών
υπολογιστών που (δια)συνδέει άλλα δίκτυα. Ο αντίστοιχος αγγλικός όρος
internet προκύπτει από τη σύνθεση λέξεων inter-network.
Στην πιο εξειδικευµένη και περισσότερο χρησιµοποιούµενη του µορφή,
µε τους όρους Διαδίκτυο, Ιντερνέτ ή Ίντερνετ (µε κεφαλαίο το αρχικό
γράµµα) περιγράφεται το παγκόσµιο πλέγµα διασυνδεδεµένων
υπολογιστών και των υπηρεσιών και πληροφοριών που παρέχει στους
χρήστες του. Το Διαδίκτυο χρησιµοποιεί µεταγωγή πακέτων (packet
switching) και τη στοίβα πρωτοκόλλων TCP/IP. Σήµερα, ο όρος
διαδίκτυο κατέληξε να αναφέρεται στο παγκόσµιο αυτό δίκτυο. Για να
ξεχωρίζει, το παγκόσµιο αυτό δίκτυο γράφεται µε κεφαλαίο το αρχικό
"Δ". Η τεχνική της διασύνδεσης δικτύων µέσω µεταγωγής πακέτων και
της στοίβας πρωτοκόλλων TCP/IP ονοµάζεται διαδικτύωση.
7
1.3 Το διαδίκτυο στον 21ο αιώνα
Το Διαδίκτυο δεν αποτελεί πλέον ένα μέσο επικοινωνίας και
ανταλλαγής δεδομένων αποκλειστικά μεταξύ φοιτητών και ερευνητών.
Έχει επεκταθεί και εισβάλει στην καθημερινότητα όλων. Ήδη μιλάμε για
ηλεκτρονικό εμπόριο, τηλε-εργασία, τηλε-εκπαίδευση, τηλε-ϊατρική. Ο
πλανήτης είναι, με λίγα λόγια, δικτυωμένος. Και με το πέρασμα του
χρόνου θα δικτυώνεται ολοένα και περισσότερο.
Το Διαδίκτυο συγκροτείται από πολύπλευρα εµπορικά συµβόλαια (π.χ.
οµότιµες συµφωνίες) και από τεχνικές προδιαγραφές ή πρωτόκολλα που
περιγράφουν την ανταλλαγή δεδοµένων στο δίκτυο. Τα πρωτόκολλα
αυτά µορφοποιούνται µε συζητήσεις µέσα στο Internet Engineering Task
Force (IETF) και τις οµάδες εργασίας του, οι οποίες είναι ανοιχτές για
δηµόσια συµµετοχή και κριτική. Αυτές οι επιτροπές παράγουν κείµενα
που είναι γνωστά ως Αιτήµατα για Σχολιασµό (ΑΓΣ). Ορισµένα ΑΓΣ
εγείρονται από το Συµβούλιο Αρχιτεκτονικής του Διαδικτύου (IAB).
1.4 Πλαίσιο Web εφαρμογής (Web application framework)
Το πλαίσιο web εφαρμογής είναι ένα πλαίσιο λογισμικού, το οποίο είναι
σχεδιασμένο να υποστηρίζει την ανάπτυξη των δυναμικών ιστοσελίδων,
των Web εφαρμογών και των υπηρεσιών web. To πλαίσιο στοχεύει να
αμβλύνει την διαδικασία που σχετίζεται με τις κοινές δραστηριότητες
που εκτελούνται στην ανάπτυξη του Web. Για παράδειγμα, πολλά
πλαίσια προμηθεύουν πληροφορίες για πρόσβαση σε βάση δεδομένων,
για πρότυπα πλαίσια, για διαχείριση τομέα και συχνά παροτρύνουν την
χρήση ήδη χρησιμοποιημένου λογισμικού ή κώδικα.
1.5 Ιστορία Web εφαρμογών
H σχεδίαση του παγκόσμιου ιστού δεν ήταν αισθητά δυναμική, καθώς
το αρχικό υπερκείμενο απαρτιζόταν απο χειρόγραφο κώδικα HTML, που
είχε εκδοθεί στους Web servers. Όλες οι μετατροπές στις ιστοσελίδες,
έπρεπε να εκτελεστούν από τον δημιουργό τους. Το Common Gateway
Interface (CGI) δημιουργήθηκε για να διασυνδέει τις εξωτερικές
8
εφαρμογές με τους Web servers , καθώς και να προσδώσει μια δυναμική
στην ιστοσελιδά που θα αντικατοπτρίζει τις εισροές του χρήστη. Το CGI
όμως μπορούσε να επηρεάσει δυσμενώς την φόρτωση του server
μολονότι κάθε αίτημα έπρεπε να ξεκινήσει μια ξεχωριστή διαδικασία.
Οι προγραμματιστές για να παρέχουν υψηλής διακίνησης Web
εφαρμογές, ζητούσαν την ενοποίηση τους με τους Web servers. O
Αpache HTTP server, για παράδειγμα, υποστηρίζει μονάδες που μπορούν
να επεκτείνουν έναν Web server με αυθαίρετες εκτελέσεις κώδικα (όπως
το mod perl) ή να πρωωθήσει συγκεκριμένες αιτήσεις σε server που
μπορεί να χειριστεί δυναμικό περιεχόμενο (όπως το mod jk). Μερικοί
Web servers (όπως ο Apache Tomcat) ήταν ειδικά σχεδιασμένοι για να
χειρίζονται δυναμικό κείμενο εκτελώντας κώδικα γραμμένo σε γλώσσες
όπως η Java.
Σχεδόν την ίδια χρονική περίοδο, νέες γλώσσες αναπτύσσονταν ειδικά
για χρήση στο διαδίκτυο, όπως οι ColdFusion, php και Active server
pages.
Παράλληλα ενώ η πλειοψηφεία των διαθέσιμων γλωσσών που
χρησιμοποιήθηκαν για τη δημιουργία δυναμικών ιστοσελίδων, έχουν
βιβλιοθήκες που βοηθούν με συχνές εργασίες, οι Web εφαρμογές συχνά
απαιτούν συγκεκριμένες βιβλιοθήκες που είναι χρήσιμες στις εφαρμογές,
όπως η δημιουργία HTML κώδικα (για παράδειγμα, JavaServer Faces).
Τελικά εμφανίστηκαν «full stack» frameworks, που συχνά
συγκέντρωναν πολλαπλές βιβλιοθήκες χρήσιμες για επέκταση του Web
σε ένα ενιαίο λειτουργικό έτοιμο για χρήση. Παραδείγματα είναι τα
JavaEE (Servlets), WebObjects, OpenACS και το Ruby on Rails.
1.6 Αρχιτεκτονικές
Model view controller (MVC)
Πολλά πλαίσια ακολουθούν το πρότυπο αρχιτεκτονικής του Model
View Controller (MVC) για να διαχωρίσουν το υπόδειγμα στοιχείων με
επιχειρηματικούς κανόνες από την διεπαφή με τον χρήστη. Γενικά αυτό
9
θεωρείται ως μια καλή εξάσκηση καθώς καταμετρεί τον κώδικα, προωθεί
την επανάχρηση του και επιτρέπει να εφαρμοστούν πολλαπλές διεπαφές.
Push-based vs Pull-based
Τα περισσότερα MVC πλαίσια ακολουθούν μια push-based
αρχιτεκτονική. Αυτά τα πλαίσια χρησιμοποιούν πράξεις που κάνουν την
απαιτούμενη επεξεργασία και μετά ωθούν την πληροφορία στο οπτικό
επίπεδο ώστε να φανούν τα αποτελέσματα. Struts, Django, Ruby on Rails
και Spring MVC είναι καλά παραδείγματα αυτής της αρχιτεκτονικής.
Μια εναλλακτική σε αυτό είναι η pull-based αρχιτεκτονική, η οποία
επίσης ονομάζεται “component-based”. Αυτά τα πλαίσια ξεκινάνε με το
οπτικό επίπεδο, το οποίο μπορεί να «τραβήξει» αποτελέσματα από
πολλαπλούς ελεκτές όπως χρειαστεί. Σε αυτήν την αρχιτεκτονική, οι
πολλαπλοί ελεκτές έχουν την δυνατότητα να συνδέονται με μια ενιαία
όψη. Struts2, Tapestry, JBoss Seam, Wicket και Stripes είναι
παραδείγματα της pull-based αρχιτεκτονικής.
Content Management Systems
Μερικά συστήματα διαχείρισης περιεχομένου έχουν ξεκινήσει να
εξαπλώνονται σε μεγαλύτερου επιπέδου πλαίσια Web εφαρμογών. Για
παράδειγμα, η κατασκευή του Drupal μας δίνει έναν μικρό πυρήνα, ο
οποίος λειτουργεί μέσω των modules που προμηθεύουν λειτουργίες
συσχετισμένες με τα πλαίσια Web εφαμοργών. Ιστορικά αυτά τα projects
έχουν οροθετηθεί ως συστήματα διαχείρισης περιεχομένου. Οπότε, είναι
αμφισβητούμενο αν ή «διαχείριση του περιεχομένου» είναι ο
πρωταρχικός σκοπός αυτών των συστημάτων, ειδικά όταν κάποια από
αυτά, όπως το SilverStripe, δίνουν ένα πλαίσιο MVC που είναι
προσανατολισμένο στην διαχείριση ενός αντικειμένου. Τα πρόσθετα
modules ενεργοποιούν αυτά τα συστήματα ώστε να λειτουργούν σαν
ολοκληρωμένες εφαρμογές πέρα από τον σκοπό της διαχείρισης
περιεχομένου. Τα πρόσθετα modules μπορούν να προμηθεύσουν
λειτουργικά APIs, λειτουργικά πλαίσια, πρότυπα κωδικοποίησης και
10
πολλές από τις λειτουργίες παραδοσιακά σχετίζονται με τα πλαίσια Web
εφαρμογών.
1.7 Χαρακτηριστικά
Ασφάλεια
Μερικά πλαίσια Web εφαρμογών έχουν πλαίσια πιστοποίησης και
εξουσιοδότησης, που καθιστούν ικανό τον Web server να αναγνωρίσει
τους χρήστες της εφαρμογής και να περιορίσει την πρόσβαση τους σε
κάποιες λειτουργίες βασισμένος σε κάποια συγκεκριμένα κριτήρια. Το
Django είναι ένα παράδειγμα που δίνει πρόσβαση σε κάθε σελίδα
ανάλογα με τον ρόλο του χρήστη και επίσης προμηθεύει μια διεπαφή
Web με τους χρήστες και τους αναθέτει τους ρόλους τους.
Πρόσβαση στη βάση δεδομένων και χαρτογράφηση
Πολλά πλαίσια Web εφαρμογών δημιουργούν ένα ενοποιημένο API στο
σύστημα υποστήριξης της βάσης δεδομένων, που ενεργοποιεί τις Web
εφαρμογές να δουλέψουν με μια ποικιλία από βάσεις δεδομένων χωρίς
αλλαγές κώδικα και επιτρέποντας τους προγραμματιστές να δουλέψουν
με υψηλότερου επιπέδου σχέδια. Για μεγαλύτερη απόδοση, οι συνδέσεις
στις βάσεις δεδομένων πρέπει να λειτουργήσουν όπως κάνει για
παράδειγμα ο AOLserver. Επιπρόσθετα, κάποια πλαίσια συσχετισμένα
με το αντικείμενο, περιέχουν εργαλεία χαρτογράφησης που προμηθεύουν
μια προγραμματιστική τεχνική που ονομάζεται Object-Relational
Mapping, η οποία θα χωρίσει τα αντικείμενα σε πλειάδες. Άλλα
χαρακτηριστικά τα οποία μπορούμε να πάρουμε από τα πλαίσια Web
εφαρμογών είναι συναλλαγματική υποστήριξη και μετεγκατάσταση της
βάσης δεδομένων.
Χαρτογράφηση του URL
Οι εγκαταστάσεις χαρτογράφησης URL ενός πλαισίου είναι ο
μηχανισμός με τον οποίο τα πλαίσια ερμηνεύουν τα URLs. Μερικά
11
πλαίσια, όπως το Django, αντιπαραβάλουν τo προμηθευόμενo URL με
πρότυπα που χρησιμοποιούν κανονικές εκφράσεις, τη στιγμή που κάποια
άλλα χρησιμοποιούν την επανεγγραφή του URL για να μεταφράσουν το
προμηθευόμενο URL, σε μορφή που θα είναι αναγνωρίσιμη από την
μηχανή επεξεργασίας. Μια άλλη τεχνική είναι η διασταύρωση
γραφήματος που χρησιμοποιεί το Zope, όπου το URL αναλύεται σε
βήματα και διασταυρώνεται με το γράφημα του αντικειμένου.
Ένα σύστημα χαρτογράφησης που χρησιμοποιεί αντιπαραβολή
προτύπων ή επανεγγραφή URL, επιτρέπει να χρησιμοποιηθούν πιο
«φιλικά» URLs, αυξάνοντας έτσι την απλότητα της ιστοσελίδας και
επιτρέποντας να δώσει καλύτερες ενδείξεις στις μηχανές αναζήτησης. Για
παράδειγμα, όταν ένα URL τελειώνει με
“/page.cgi?cat=science&topic=physics” μπορεί απλά να μετατραπεί σε
“/page/science/physics”. Αυτό καθιστά την ανάγνωση του URL πιο
εύκολη και προμηθεύει τις μηχανές αναζήτησης με καλύτερες
πληροφορίες σχετικά με την κατασκευαστική δομή της ιστοσελίδας. Η
προσέγγιση της διασταύρωσης του γραφήματος έχει ως αποτέλεσμα να
δημιουργήσει «φιλικά» URLs. Ένα σύντομο URL όπως το
“/page/science” μπορεί να υπάρχει ως προεπιλογή καθώς είναι μια
συντομότερη μορφή του “/page/science/physics”.
Πρότυπο συστήματος Web
Οι δυναμικές ιστοσελίδες συνήθως αποτελούνται από ένα στατικό
μέρος (HTML) και ένα δυναμικό μέρος, το οποίο είναι ο κώδικας που
παράγει την HTML. Ο κώδικας αυτός μπορεί να κάνει αυτή την εργασία,
βασιζόμενος στις μεταβλητές ενός προτύπου. Το κείμενο που παράγεται
μπορεί να εισέλθει από μια βάση δεδομένων, εκ τούτου κάνοντας πιθανή
την μείωση του αριθμού των σελίδων σε μια ιστοσελίδα.
Ας σκεφτούμε το παράδειγμα ενός αντιπροσώπου ακινήτων που έχει
500 σπίτια για πώληση. Σε μία στατική ιστοσελίδα, ο αντιπρόσωπος θα
έπρεπε να δημιουργήσει 500 σελίδες για να μπορέσει να δώσει
πληροφορίες για το κάθε σπίτι. Σε μία δυναμική ιστοσελίδα όμως, ο
αντιπρόσωπος μπορεί απλά να συνδέσει την σελίδα με μια βάση
δεδομένων που έχει 500 καταχωρήσεις.
12
Σε ένα πλαίσιο, οι μεταβλητές από την προγραμματιστική γλώσσα
μπορούν να εισέλθουν χωρίς την χρήση κώδικα και ως εκ τούτου δεν
χρειάζεται η γνώση προγραμματισμού για να μπορέσει κάποιος να
ανανεώσει την ιστοσελίδα. Η σύνταξη γίνεται διαθέσιμη για να γίνει
διαχωρισμός μεταξύ της HTML και των μεταβλητών. Για παράδειγμα,
στο JSP η καρτέλα <c:out> χρησιμοποιείται για να εξάγει μεταβλητές
ενώ το Smarty χρησιμοποιεί την {$variable}.
Πολλές μηχανές πλαισίων υποστηρίζουν περιορισμένες λογικές
καρτέλες, όπως οι IF και FOREACH. Αυτές υπάρχουν για να
χρησιμοποιηθούν σε περιπτώσεις που πρέπει να παρθούν αποφάσεις για
το επίπεδο παρουσίασης, για να κρατήσουν μια διαχωριστική γραμμή
από το λογικό επίπεδο, ή το μοντέλο στο πρότυπο MVC.
Caching
To Web caching είναι το «κρύψιμο» των Web εγγράφων ώστε να
μειωθεί η χρήση του εύρους ζώνης, η φόρτωση του server, και το lag. Η
Web cache αποθηκεύει αντίγραφα των εγγράφων που περνάνε μέσα από
αυτό. Μεταγενέστερες αιτήσεις μπορούν να βρουν ανταπόκριση από την
cache αν πληρούν κάποιες προϋποθέσεις. Μερικά πλαίσια εφαρμογών
προμηθεύουν μηχανισμούς για «απόκρυψη» εγγράφων και διαπερνούν
διάφορα στάδια της προετοιμασίας της σελίδας, όπως είναι η πρόσβαση
στη βάση δεδομένων και η ερμηνεία του πλαισίου.
Ajax
Ajax, η συντομογραφία δηλαδή του “Asynchronous Javascript and
XML”, είναι μια τεχνική ανάπτυξης Web για την δημιουργία
αλληλεπιδραστικών εφαρμογών Web. Ο σκοπός είναι να φτιάξει
ιστοσελίδες που θα ανταποκρίνονται καλύτερα ανταλλάσσοντας μικρά
ποσά πληροφοριών με τον server, έτσι ώστε η ιστοσελίδα να μην
χρείαζεται να ανανεωθεί ολόκληρη κάθε φορά που ο χρήστης κάνει
αίτηση για μία αλλαγή. Χρησιμοποιήθηκε για να γίνουν οι ιστοσελίδες
πιο αλληλεπιδραστικές, γρήγορες και εύχρηστες.
13
Λόγω της περισύνθετης δομής της προγραμματιστικής γλώσσας Ajax
στην Javascript, υπάρχουν πολλά πλαίσια Ajax, τα οποία ασχολούνται
αποκλειστικά με την υποστήριξη της Ajax. Μερικά από αυτά τα πλαίσια
είναι ενσωματωμένα σε μεγαλύτερα πλαίσια. Για παράδειγμα, το πλαίσιο
Prototype Javascript περιέχεται μέσα στο Ruby on Rails.
Με το αυξανόμενο ενδιαφέρον για ανάπτυξη εφαρμογών Rich Media
“Web 2.0”, η πολυπλοκότητα του προγραμματισμού στην Ajax και την
Javascript έγινε τόσο εμφανής, που η τεχνολογία μεταγλώτισης
εισχώρησε για να επιτρέψει τους developers να γράψουν υψηλού
επιπέδου κώδικα σε γλώσσες όπως η Java, Python και Ruby. Οι πρώτοι
από τους 3 μεταγλωτιστές ήταν Morfik ενώ ακολούθησε το Google Web
Toolkit και η Python και Ruby υπό την μορφή των Pyjamas και RubyJS.
Αυτοί οι μεταγλωτιστές έκαναν την ανάπτυξη των εφαρμογών Rich
Media Ajax παρόμοια με την ανάπτυξη των εφαρμογών Desktop.
Αυτόματη Διαμόρφωση
Μερικά πλαίσια ελαχιστοποιούν την διαμόρφωση των Web εφαρμογών
μέσω της χρήσης της ενδοσκόπησης γνωστών συμβάσεων. Για
παράδειγμα, πολλά πλαίσια Java χρησιμοποιούν το Hibernate σαν ένα
σταθερό επίπεδο, το οποίο μπορεί να παράγει ένα σχήμα βάσης
δεδομένων εκείνη την στιγμή, ικανό να ακολουθήσει τις απαραίτητες
πληροφορίες. Αυτό επιτρέπει τον σχεδιαστή της εφαρμογής να σχεδιάσει
επαγγελματικά αντικείμενα χωρίς να χρειάζεται να καθορίσει ακριβώς το
σχήμα της βάσης δεδομένων. Πλαίσια όπως το Ruby on Rails μπορούν
επίσης να δουλέψουν αντίστροφα, το οποίο σημαίνει ότι καθορίζουν τις
ιδιότητες του αντικειμένου του μοντέλου στο σχήμα μιας βάσης
δεδομένων.
Υπηρεσίες Web
Μερικά πλαίσια προμηθεύουν εργαλεία για την δημιουργία υπηρεσιών
Web. Αυτά τα εργαλεία μπορούν να χρησιμοποιηθούν και με άλλο τρόπο
ώστε να βοηθήσουν στην ολοκλήρωση της web εφαρμογής.
14
1.8 Λίστα πλαισίων Web εφαρμογών
1. Πλαίσια PHP
Zend Framework
CakePHP
Symphony
CodeIgniter
Seagull
Prado
Solar
eZ Components
Kohana
Jelix
Flow3
MODx
Sapphire
PHP for Applications
Yii
Limonade
Tekuna
DooPHP
Fat-Free
Akelos
15
PHP on TRAX
ATK
2. Πλαίσια Ruby
Ruby on Rails
Merb
Ramaze
Halcyon
Sinatra
Webby
Sass
3. Πλαίσια Perl
Catalyst
Interchange
Mason
CGI:Application
Jifty
Gantry
Dancer
Mojolicious
4. Πλαίσια Java
Struts
16
Hibernate
Javaserver Faces
Spring
Apache Wicket
Play
Google Web Toolkit
Stripes
5. Πλαίσια Javascript
jQuery
MooTools
Prototype
Script.aculo.us
Dojo
Yahoo! UI Librady
Ext
Qooxdoo
$fx()
Scripty2
AJS
Archetype
RightJS
Glow
17
My Library
DHTMLX
Echo
midori
6. Πλαίσια CSS
YAML
YUI Grids CSS
Blueprint
GridEasy
Malo
Emastic
960 Grid System
Elements
WYMstyle
Boilerplate
Tripoli
Sparkl
Typogridphy
The Golden Grid
The 1kb CSS Grid
SenCSs
Taffy
18
Logic CSS
Hartija
BlueTrip
Compass
Elastic
Winston
Baseline
Floatz
Formee
7. Πλαίσια Python
Django
Pylons
Grok
TurboGears
Web2spy
CherryPy
8. Πλαίσια ColdFusion
ColdFusion on Wheels
ColdSpring
onTap
Model-Glue
19
9. Πλαίσια ASP.Net
ASP.NET MVC Framework
DotNetNuke
MonoRail
Vici MVC
1.9 Aνάπτυξη ιστοσελίδων
Η ανάπτυξη ιστοσελίδων γίνεται με την γλώσσα HTML, η οποία
χρησιμοποιεί ένα είδος ετικετών <tags> για τη διαμόρφωση του τρόπου
παρουσίασης του κειμένου και των πολυμεσικών στοιχείων.
Όταν ένας φυλλομετρητής ανακαλεί μια ιστοσελίδα, τότε στην ουσία
διαβάζει τον κώδικα της ιστοσελίδας ως ένα αρχείο κειμένου και ψάχνει
να βρει μέσα σε αυτό ετικέτες, οι οποίες δηλώνουν πως θα παρουσιαστεί
το κείμενο και τα πολυμεσικά στοιχεία, ώστε να δημιουργηθεί το τελικό
οπτικό αποτέλεσμα της ιστοσελίδας. Στη συνέχεια, ο φυλλομετρητής
αναλαμβάνει να δημιουργήσει αυτό το τελικό αποτέλεσμα.
1.10 Tεχνικές για εύχρηστες Web εφαρμογές
Ένα από τα μεγαλύτερα στοιχήματα για έναν Web designer είναι ο
σχεδιασμός του περιβάλλοντος χρήσης μιας online εφαρμογής. Ακόμα
περισσότερο αν η εφαρμογή πρόκειται να χρησιμοποιείται καθημερινά
από ανθρώπους με διαφορετικές ανάγκες, λίγη υπομονή και άφθονη
όρεξη για γκρίνια! Δεν πρέπει όμως να είμαστε αυστηροί με τους
χρήστες, καθώς οι ίδιοι είμαστε οι αυστηρότεροι κριτές για τη δουλειά
των άλλων στον ίδιο τομέα.
Ο σχεδιασμός μιας Web εφαρμογής είναι ένας γρίφος που αρχικά
φαίνεται βουνό - και ίσως να είναι. Αυτό που χρειάζεται τελικά είναι
μεθοδικότητα, πολλές (μα πολλές) επαναλήψεις και σκέψη στο design
και δυο “μυστικά” συστατικά: ομοιογένεια και απλότητα.
20
Ευτυχώς όμως, δεν είναι ανάγκη να «ξανα-ανακαλύψουμε τον τροχό».
Μπορούμε να στηριχτούμε στην εμπειρία των μεγαλύτερων design
agencies για να δούμε ποια είναι τα κύρια σχεδιαστικά χαρακτηριστικά
των πιο επιτυχημένων Web εφαρμογών:
Όμορφα & λειτουργικά tables
Δεν υπάρχουν πολλά HTML tags πιο παραξηγημένα στο Web design
από το <table>. Και όμως, αν φροντίσει κάποιος να χρησιμοποιήσει
tables γι’αυτό που προορίζονταν αρχικά, την παρουσίαση δεδομένων, θα
δει ότι σε παρόμοιες περιπτώσεις είναι μονόδρομος.
Λειτουργική χρήση εικονιδίων
Όταν τα εικονίδια χρησιμοποιούνται με φειδωλό τρόπο, μπορούν να
βοηθήσουν αρκετά στη μείωση του χρόνου απόκρισης του χρήστη,
καθώς οπτικοποιούν πολύ αποτελεσματικά την πληροφορία. Δοκιμάστε
να αναζητήσετε ένα αρχείο στο filesystem σας μέσα σε ένα φάκελο
γεμάτο αρχεία ίδιου τύπου - εφόσον όλα τα εικονίδια είναι ίδια και οι
τίτλοι εκτενείς, θα δυσκολευτείτε αρκετά.
Πολλές Web εφαρμογές χρησιμοποιούν εικονίδια μεγάλου μεγέθους
στo dashboard τους και άλλα μικρότερα ως φόντο σε πεδία, σε κουμπιά
και στα μενού πλοήγησης.
Διακριτικό περιβάλλον χρήσης
Είτε αφορά την παλέτα χρωμάτων είτε το πλήθος των γραμματοσειρών
που χρησιμοποιούνται, τα περισσότερα Web apps είναι αρκετά λακωνικά
και στα δύο. Η γραμματοσειρά Lucida Grande φαίνεται να κυριαρχεί στις
αγγλόφωνες εφαρμογές (στα ελληνικά δυστυχώς δεν είναι και η πιο
καθαρή γραμματοσειρά), ενώ οι τόνοι του γκρι και τα απλά χρώματα
χρησιμοποιούνται κατά κόρον.
21
Για να μειώσει τη φθορά και την κούραση από την επαναλαμβανόμενη
χρήση, το backround διατηρεί γκρι φόντο σε όλες τις σελίδες και δίνει
στο χρήστη τη δυνατότητα να αλλάξει τα χρώματα του header.
Φόρμες
Σχεδιασμένες με κομψό τρόπο και απαραιτήτως ισομετρικές,
χρησιμοποιούνται για να αντλήσουν τις απαραίτητες πληροφορίες του
ατόμου που τις συμπληρώνει χωρίς να του προκαλούν ανία.
Tabs
Τα tab modules είναι ένας πρώτης τάξεως τρόπος να κρύψετε
πληροφορία που δεν είναι ανάγκη να είναι εμφανής ανά πάσα στιγμή,
παρά μόνο εφόσον το επιλέξει ο χρήστης. Όπως είναι λογικό, ο αριθμός
των διαφορετικών ενεργειών που μπορούν να γίνουν μέσω μιας
εφαρμογής σχεδόν επιβάλλει τη χρήση tabs σε ορισμένες περιπτώσεις.
22
2 Συστήματα Διαχείρησης Περιεχομένου (CMS)
2.1 Εισαγωγή στα CMS
Μέχρι πριν από λίγα χρόνια, ο μόνος τρόπος για να διατηρήσει μια
εταιρία το site της ενημερωμένο ήταν να συνάψει συμβόλαιο με μια
εταιρία παροχής υπηρεσιών συντήρησης. Τα τελευταία χρόνια, όμως, οι
ίδιες οι εταιρίες παροχής τέτοιων υπηρεσιών προσφέρουν μια πολλά
υποσχόμενη εναλλακτική λύση. Πολλές από αυτές έχουν αναπτύξει
ειδικά συστήματα, τα οποία μειώνουν το χρόνο και το κόστος
λειτουργίας ενός δικτυακού τόπου.
Ο όρος Content Management Systems (CMS, Συστήματα Διαχείρισης
Περιεχομένου) αναφέρεται στις εφαρμογές που επιτρέπουν στον πελάτη
να διαχειρίζεται το δικτυακό του περιεχόμενο, όπως κείμενα, εικόνες,
πίνακες κ.λπ., με εύκολο τρόπο, συνήθως παρόμοιο με αυτόν της χρήσης
ενός κειμενογράφου. Οι εφαρμογές διαχείρισης περιεχομένου επιτρέπουν
την αλλαγή του περιεχόμενου χωρίς να είναι απαραίτητα ειδικές γνώσεις
σχετικές με τη δημιουργία ιστοσελίδων ή γραφικών, καθώς συνήθως τα
κείμενα γράφονται μέσω κάποιων online WYSIWYG ("What You See Is
What You Get") html editors, ειδικών δηλαδή κειμενογράφων,
παρόμοιων με το MS Word, που επιτρέπουν τη μορφοποίηση των
κειμένων όποτε υπάρχει ανάγκη.
Οι αλλαγές του site μπορούν να γίνουν από οποιονδήποτε υπολογιστή
που είναι συνδεμένος στο Διαδίκτυο, χωρίς να χρειάζεται να έχει
εγκατεστημένα ειδικά προγράμματα επεξεργασίας ιστοσελίδων,
γραφικών κτλπ. Μέσω ενός απλού φυλλομετρητή ιστοσελίδων (browser),
ο χρήστης μπορεί να συντάξει ένα κείμενο και να ενημερώσει άμεσα το
δικτυακό του τόπο.
Αυτό που αποκαλούμε πολλές φορές "δυναμικό περιεχόμενο" σε ένα
website δεν είναι άλλο παρά οι πληροφορίες που παρουσιάζονται στο site
και μπορούν να αλλάξουν από τους ίδιους τους διαχειριστές του μέσω
κάποιας εφαρμογής, η οποία ουσιαστικά μπορεί να εισάγει (προσθέτει),
διορθώνει και να διαγράφει εγγραφές σε πίνακες βάσεων δεδομένων,
όπου τις περισσότερες φορές καταχωρούνται όλες αυτές οι πληροφορίες.
23
Αυτό σημαίνει ότι δεν χρειάζεται να δημιουργηθούν πολλές ξεχωριστές
ιστοσελίδες για την παρουσίαση των πληροφοριών στο site, αλλά αρκεί
ένας ενιαίος σχεδιασμός στα σημεία όπου θέλουμε να εμφανίζεται το
περιεχόμενό μας, καθώς και να υπάρχει ο ειδικός σε κάποια
συγκεκριμένη γλώσσα προγραμματισμού (ASP, PHP, Coldfusion, Perl,
CGI κ.λπ.), ο οποίος αναλαμβάνει να εμφανίσει τις σωστές πληροφορίες
στις σωστές θέσεις.
Έτσι, για το δικτυακό τόπο μιας εφημερίδας π.χ., που απαιτεί εύλογα
καθημερινή ενημέρωση αλλά δεν χρησιμοποιεί κάποιο σύστημα Content
Management, θα πρέπει ο υπεύθυνος για το σχεδιασμό του (designer) να
δημιουργήσει μια σελίδα με τα γραφικά, την πλοήγηση και το
περιβάλλον διεπαφής (interface) του website, ο υπεύθυνος ύλης να
τοποθετήσει το περιεχόμενο στα σημεία της ιστοσελίδας που θέλει, και
να ενημερωθούν οι σύνδεσμοι των υπόλοιπων σελίδων ώστε να
συνδέονται με την καινούργια. Αφού την αποθηκεύσει, πρέπει να την
ανεβάσει στο website μαζί με τις υπόλοιπες ιστοσελίδες που άλλαξαν.
Αντιθέτως, αν ο δικτυακός τόπος λειτουργεί με χρήση κάποιου
συστήματος CM, το μόνο που έχει να κάνει ο διαχειριστής του είναι να
ανοίξει τη σχετική φόρμα εισαγωγής νέου άρθρου στη διαχειριστική
εφαρμογή του website και να γράψει ή να επικολλήσει (copy-paste) τα
στοιχεία που επιθυμεί. Αυτόματα, μετά την καταχώριση γίνονται από το
ίδιο το σύστημα διαχείρισης περιεχομένου όλες οι απαραίτητες ενέργειες,
ώστε το άρθρο να είναι άμεσα διαθέσιμο στους επισκέπτες και όλοι οι
σύνδεσμοι προς αυτό ενημερωμένοι.
Με την αυξανόμενη τάση χρήσης των CMS στην Ελλάδα και το
εξωτερικό, γίνεται εμφανές ότι το μέλλον του Διαδικτύου σε ό,τι αφορά
περιεχόμενο και πληροφορίες που πρέπει να ανανεώνονται τακτικά,
ανήκει στα προγράμματα διαχείρισης περιεχομένου, αφού προσφέρουν
πολλά πλεονεκτήματα, ταχύτητα και ευκολίες στη χρήση τους.
Τα Συστήματα Διαχείρισης Περιεχομένου μπορούν να χρησιμοποιηθούν
και να αντικαταστήσουν ένα συμβόλαιο συντήρησης επάξια. Τα CMS
μπορούν να χρησιμοποιηθούν για:
24
Ειδήσεις (εφημερίδες, περιοδικά, πρακτορεία ειδήσεων κ.λπ.)
Παρουσιάσεις εταιριών και προσωπικού
Καταλόγους προϊόντων
Παρουσιάσεις προϊόντων
Online υποστήριξη
Αγγελίες και ανακοινώσεις
Παρουσιάσεις και προβολή γεωγραφικών περιοχών
Διαφημίσεις
Δελτία Τύπου
Όρους και συμβόλαια
Χάρτες, κατευθύνσεις, οδηγίες
Ένα ολοκληρωμένο CMS πρέπει να διαχειρίζεται όλες τις δυναμικές
πληροφορίες του site και να προσφέρει υπηρεσίες που εξυπηρετούν
πλήρως τις ανάγκες των διαχειριστών του.
2.2 Web CMS
Η διαχείριση περιεχομένου ιστού περιλαμβάνει τις λειτουργίες εκείνες
οι οποίες εμπλέκονται στη δημιουργία και διάθεση ψηφιακού
περιεχομένου σε πρόσωπα όπως πελάτες, προμηθευτές, συνεργάτες και
προσωπικό τα οποία προσπελαύνουν περιεχόμενα του Ιστού μέσω
extranet, Internet ή intranet.
Ένα σύστημα διαχείρισης περιεχομένου ιστού αποτελείται από τα
εργαλεία λογισμικού τα οποία χρησιμοποιούνται για να παρέχουν
αυτοματοποιημένη υποστήριξη σε δραστηριότητες WCM.
25
2.3 Πως γινόταν μια ιστοσελίδα τη δεκαετία του 90’
Για να δηµιουργήσουµε τη σελίδα στα δεξιά, έπρεπε να ξέρουµε πως να
γραψουµε τον κώδικα στα αριστερά.
2.4 Πως γίνεται σήµερα
Η µορφοποίηση διαχειρίζεται από την HTML σε ένα CSS αρχείο, αλλά
ακόµη απαιτείται η γνώση γραφής του κώδικα στα αριστερά για να
δηµιουργηθεί η σελίδα στα δεξιά.
26
2.5 Πως γίνεται µε ένα CMS
Με ένα CMS αυτό που χρειάζεται να ξέρει κάποιος σήµερα είναι πως να
γράψει το κόκκινο κείµενο στα αριστερά για να δηµιουργήσει τη σελίδα
στα δεξιά.
2.6 Πλεονεκτήματα χρήσης CMS
Γρήγορη ενημέρωση, διαχείριση και αρχειοθέτηση του
περιεχομένου του δικτυακού τόπου
Ενημέρωση του περιεχομένου από οπουδήποτε
Ταυτόχρονη ενημέρωση από πολλούς χρήστες και διαφορετικούς
υπολογιστές
Να μην απαιτούνται ειδικές τεχνικές γνώσεις από τους διαχειριστές
του
Εύκολη χρήση και άμεση γνώση του τελικού αποτελέσματος, όπως
γίνεται με τους γνωστούς κειμενογράφους
Δυνατότητα αναζήτησης του περιεχομένου που καταχωρείται και
αυτόματη δημιουργία αρχείου
Ασφάλεια και προστασία του σχεδιασμού του site από
λανθασμένες ενέργειες, που θα μπορούσαν να δημιουργήσουν
προβλήματα στην εμφάνισή του
Διαχωρισμός του περιεχομένου από το σχεδιασμό και την
πλοήγηση (navigation) του δικτυακού τόπου
27
Αλλαγή σχεδιασμού ή τρόπου πλοήγησης χωρίς να είναι
απαραίτητη η ενημέρωση όλων των σελίδων από τον ίδιο το
χρήστη
Αυτόματη δημιουργία των συνδέσμων μεταξύ των σελίδων και
αποφυγή προβλημάτων ανύπαρκτων σελίδων (404 error pages)
Μικρότερος φόρτος στον εξυπηρετητή (server) και χρήση
λιγότερου χώρου, αφού δεν υπάρχουν πολλές επαναλαμβανόμενες
στατικές σελίδες, από τη στιγμή που η ανάπτυξη των σελίδων
γίνεται δυναμικά
Όλο το περιεχόμενο καταχωρείται στην/στις βάσεις δεδομένων, τις
οποίες μπορούμε πιο εύκολα και γρήγορα να τις προστατεύσουμε
τηρώντας αντίγραφα ασφαλείας
Ασφαλώς υπάρχουν και άλλα χαρακτηριστικά και πρόσθετες υπηρεσίες,
ανάλογα με το CMS, που άλλοτε χρεώνονται επιπλέον και άλλοτε
ενσωματώνονται και προσφέρονται δωρεάν προς χρήση, όπως:
Εφαρμογή διαχείρισης και προβολής διαφημιστικών banners,
δημοσκοπήσεων και παραμετροποίησης (personalisation)
Δυνατότητα παρουσίασης του περιεχομένου σε συνεργαζόμενα
sites (syndication)
Στατιστικά
Διαχείριση μελών
Newsletters
Forum
28
3 Είδη Web CMS
3.1 Κλειστού κώδικα
Ο όρος «εφαρμογή κλειστού κώδικα» περιγράφει την εφαρμογή της
οποίας ο κώδικας δεν έχει δημοσιευτεί, σε αντίθεση με την «εφαρμογή
ανοιχτού κώδικα».
Τα πιο δημοφιλή CMS κλειστού κώδικα είναι:
Vignette Content Management: Τα προϊόντα και οι λύσεις της
Vignette βοηθούν τις επιχειρήσεις να αποκτήσουν και να
διαχειρίζονται τις πληροφορίες που χρειάζονται. Ως έμπειρη
εταιρεία αποδοτικότητας, η Vignette συντελεί στην αύξηση της
παραγωγικότητας, μείωση του κόστους, βελτίωση της εμπειρίας
του χρήστη και διαχείριση ρίσκου. Οι Intranet, extranet και
Internet λύσεις της συμπεριλαμβάνουν portal, integration,
enterprise content management και δυνατότητες συνεργασίας που
γρήγορα μπορούν να αποδώσουν μοναδικά προτερήματα.
ΙΒΜ Workplace Web Content Management: Αυτό το προϊόν
παρέχει μια ευρεία γκάμα λειτουργιών όπως: personalization, το
web content management, η διαχείριση εγγράφων και οι
λειτουργίες συνεργασίας και παραγωγικότητας στα πλαίσια της
επεκτάσιμης υποδομής του Webshere Portal.
Jalios JCMS: Αυτό το σύστημα διαχείρισης περιεχομένου
αναπτύχθηκε από μια γαλλική εταιρεία την Jalios, η οποία
ιδρύθηκε το 2001 και βασίστηκε στο Παρίσι και στην Γαλλία. Το
σύστημα αυτό εκτός των άλλων περιλαμβάνει διαχείριση
περιεχομένου, διαχείριση κειμένου, πύλες, collaborations και
workflow.
Powerfront CMS: Το Powerfront CMS είναι καθαρά εμπορικό
σύστημα διαχείρισης περιεχομένου το οποίο εξασφαλίζει λύσεις
για διαχείριση περιεχομένου, σχεδιασμό ιστοσελίδων, θέματα
ασφάλειας, ηλεκτρονικές συναλλαγές, procurement, reportion
options και θέματα υποστηρίξης. Στοχεύει στην υποστήριξη
29
πολύπλοκων επαγγελματικών websites, intranets, extranets ή
procurement websites.
Dynamicweb: Η τεχνολογική πλατφόρμα DynamicWEB η οποία
κατέχει ηγετική θέση στην Σκανδιναβία, βασίζεται στην σύγχρονη
τεχνολογία Microsoft .NET, και έχει επιλεχθεί από περισσότερες
από 3.000 εταιρείες και οργανισμούς σε Σκανδιναβία, Ολλανδία,
Βέλγιο, Ην. Βασίλειο, Ιαπωνία, Ισπανία, Πορτογαλία και Ρωσία.
3.2 Ανοιχτού κώδικα
Οι εφαρμογές ανοιχτού κώδικα έχουν τα παρακάτω χαρακτηριστικά:
1. Επιτρέπουν την πρόσβαση και την αλλαγή του πηγαίου κώδικα.
2. Συχνά είναι δωρεάν.
3. Τυπικά απαιτούν τουλάχιστον κάποιες τεχνικές γνώσεις για να
στηθούν και να λειτουργήσουν.
4. Υποστηρίζονται από μία κοινότητα χρηστών και
προγραμματιστών.
5. Συχνά, συνοδεύονται από αρκετά «plug-ins» τα οποία δημιουργεί
και προσφέρει η κοινότητα.
Τα πιο δημοφιλή CMS ανοιχτού κώδικα είναι:
Joomla: Ένα πλήρες σύστημα διαχείρισης περιεχομένου, γεμάτο
δυνατότητες αλλά και ταυτόχρονα εξαιρετικά ευέλικτο και φιλικό.
Το Joomla είναι η εφαρμογή που χρειάζεστε για να δημοσιεύσετε
στο διαδίκτυο μια προσωπική ιστoσελίδα, αλλά και έναν ολόκληρο
εταιρικό διαδικτυακό τόμο. Είναι προσαρμόσιμο σε περιβάλλον
επιχειρηματικής κλίμακας όπως τα intranets μεγάλων επιχειρήσεων
ή οργανισμών. Οι δυνατότητες επέκτασης του είναι πρακτικά
απεριόριστες.
Drupal: Το Drupal είναι ένα ανοιχτού κώδικα σύστημα
διαχείρισης περιεχομένου. Χρησιμοποιείται για την δημιουργία και
την διαχείριση πολλών και διαφορετικών ιστότοπων. Η
σταθερότητα, ευελιξία και η ασφάλεια του είναι μερικά από τα
σημεία αναφοράς του.
30
Dotnetnuke: Είναι ανοιχτού κώδικα εφαρμογή, ιδανικό πλαίσιο
για δημιουργία, ανάπτυξη και διαχείριση διαδραστικού Ιστού, για
ενδοδικτυακές ή extranet περιοχές.
3.3 Μειονεκτήματα των Commercial Closed Source Web CMS έναντι
των Open Source Web CMS
Κόστος: Ο σημαντικότερος παράγοντας είναι το κόστος. Στα
εμπορικά Web CMS πρέπει να πληρωθεί η άδεια λειτουργίας.
Επίσης επιβαρύνονται με έξοδα συντήρησης κάθε χρόνο.
Ασφάλεια: Οι εμπορικές πλατφόρμες είναι κυρίως κλειστού
κώδικα, το οποίο σημαίνει ότι δεν είναι ορατός ο πηγαίος κώδικας
τους. Ώς αποτέλεσμα, κάποια ελλατωματικά κενά ή λειτουργίες
του κώδικα που μπορεί να προκύψουν και σχετίζονται με την
ασφάλεια, να μην μπορούν να διορθωθούν.
Σταθερότητα και επιδόσεις: Οι πλατφόρμες ανοιχτού κώδικα
έχουν ως επί το πλείστον μια πολύ ευρύτερη βάση από την
εγκατάσταση των εμπορικών πλατφόρμων κλειστού κώδικα.
Συνεπώς ελέγχονται περισσότερο διεξοδικά και βελτιστοποιούνται
μέσα από αυτές τις εμπειρίες.
Υποστήριξη: Στην περίπτωση των Web CMS κλειστού κώδικα, η
υποστήριξη μπορεί να κοστίζει. Κυρίως forum ή λίστες για την
ανταλλαγή μεταξύ τους δεν υπάρχουν.
3.4 Πλεονεκτήματα των Commercial Closed Source Web CMS
έναντι των Open Source Web CMS
Ασφάλεια για το μέλλον: Η ανάπτυξη ή η υποστήριξη μιας
πλατφόρμας ανοιχτού κώδικα μπορεί να διακοπεί ανά πάσα
στιγμή, διότι ορισμένοι προγραμματιστές μπορεί να μην έχουν
χρόνο ή ενδιαφέρον να συνεχίσουν το συγκεκριμένο έργο πια.
Αυτό εξασφαλίζεται στον εμπορικό τομέα καθώς υπάρχουν
συμβάσεις ανάπτυξης για κάθε σχεδιασμό πλατφόρμας.
31
Ανάπτυξη τεχνογνωσίας: Η εταιρεία ανάπτυξης του Web CMS
μπορεί να προβεί σε τροποποιήσεις του λογισμικού ανά πάσα
στιγμή για να ικανοποιήσει τα έργα των πελατών της, λόγω του ότι
υπάρχουν εκτενείς γνώσεις προγραμματισμού. Στον χώρο του
ανοιχτού κώδικα η προμήθεια του κώδικα που περιέχει κάποιες
συγκεκριμένες δεξιότητες είναι πρόβλημα.
Σταθερότητα και απόδοση: Οι open source πλατφόρμες συνήθως
δεν κατασκευάζονται από επαγγελματίες προγραμματιστές ούτε
ελέγχονται επαγγελματικά. Οπότε είναι πιθανόν να υπάρξει κάποιο
πρόβλημα σταθερότητας ή απόδοσης λόγω κάποιου λάθος στον
προγραμματισμό.
Εγγύηση: Στις πλατφόρμες ανοιχτού κώδικα δεν υπάρχει εγγύηση.
Υποστήριξη: Στις πλατφόρμες κλειστού κώδικα η εκτενής
υποστηρίξη είναι εγγυημένη, καθώς υπάρχουν κυρώσεις σε
περίπτωση μη επίβλεψης.
32
4 DRUPAL
4.1 Τι είναι
To Drupal είναι ένα αρθρωτό σύστημα διαχείρισης περιεχομένου
(Content management system, CMS) ανοικτού/ελεύθερου λογισμικού,
γραμμένο στη γλώσσα προγραμματισμού PHP. Το Drupal, όπως πολλά
σύγχρονα CMS, επιτρέπει στο διαχειριστή συστήματος να οργανώνει το
περιεχόμενο, να προσαρμόζει την παρουσίαση, να αυτοματοποιεί
διαχειριστικές εργασίες και να διαχειρίζεται τους επισκέπτες του
ιστοτόπου και αυτούς που συνεισφέρουν. Παρόλο που υπάρχει μια
πολύπλοκη προγραμματιστική διεπαφή, οι περισσότερες εργασίες
μπορούν να γίνουν με λίγο ή και καθόλου προγραμματισμό. Το Drupal
ορισμένες φορές περιγράφεται ως "υποδομή για εφαρμογές ιστού",
καθώς οι δυνατότητές του προχωρούν παραπέρα από τη διαχείριση
περιεχομένου, επιτρέποντας ένα μεγάλο εύρος υπηρεσιών και
συναλλαγών.
Το Drupal μπορεί να εκτελεστεί σε διάφορες πλατφόρμες,
συμπεριλαμβανομένων των λειτουργικών συστημάτων Windows, Mac
OS X, Linux, FreeBSD, ή οποιουδήποτε λογισμικού που υποστηρίζει είτε
το διακομιστή ιστοσελίδων Apache HTTP Server (έκδοση 1.3+), είτε το
Internet Information Services (έκδοση IIS5+), καθώς επίσης και τη
γλώσσα προγραμματισμού PHP (έκδοση 4.3.3+). Το Drupal απαιτεί μια
βάση δεδομένων όπως η MySQL και η PostgreSQL για την αποθήκευση
του περιεχομένου και των ρυθμίσεων του.
4.2 Από πού προήλθε
Αρχικά γραμμένο από τον Dries Buytaert ως σύστημα πίνακα
ανακοινώσεων (BBS, bulletin board system), το Drupal μετατράπηκε σε
εγχείρημα ανοικτού κώδικα το 2001. Drupal είναι η διατύπωση στην
33
Αγγλική γλώσσα της Ολλανδικής λέξης "druppel", που σημαίνει
"σταγόνα". Το όνομα πάρθηκε από τον ξεπερασμένο πλέον ιστότοπο
Drop.org, του οποίου ο κώδικας εξελίχθηκε στο Drupal. Ο Buytaert
ήθελε να ονομάσει τον ιστότοπο "dorp" (στα Ολλανδικά σημαίνει
"χωριό", αναφερόμενος στη διάσταση της κοινότητας), αλλά έκανε ένα
ορθογραφικό λάθος κατά τη διαδικασία ελέγχου του ονόματος χώρου
(domain name) και τελικά σκέφτηκε ότι ακούγεται καλύτερα.
Από το Μάιο του 2006 ως τον Απρίλιο του 2007, χρήστες κατέβασαν
το Drupal από τον επίσημο ιστότοπο περισσότερες από 600.000 φορές.
Μια μεγάλη κοινότητα χρηστών λαμβάνει πλέον μέρος στη συνεχή
εξέλιξη του Drupal.
4.3 Σχεδίαση
Το Drupal έχει λάβει επαίνους από τους διαχειριστές ιστοσελίδων,
σχεδιαστές και προγραμματιστές για τον αρθρωτό σχεδιασμό του, που
παρέχει το βασικό του στρώμα, ή "πυρήνα", να παρέχει τα βασικά
χαρακτηριστικά του Drupal στην προεπιλεγμένη εγκατάστασή του.
Πρόσθετα χαρακτηριστικά λειτουργικότητας και παρουσίασης μπορούν
να επεκταθούν στον πυρήνα με την πρόσθεση προσαρτώμενων μονάδων
και θεματικών παραλλαγών.
Οι μονάδες του Drupal χρησιμοποιούνται για να "υπερβούν" τα
ενσωματωμένα χαρακτηριστικά του πυρήνα, επεκτείνοντας έτσι ή και
αντικαθιστώντας την εξ' ορισμού συμπεριφορά του Drupal, χωρίς την
επέμβαση στον αυτούσιο κώδικα των αρχείων του πυρήνα του Drupal. Η
δυνατότητα αυτή της τροποποίησης της λειτουργικότητας του πυρήνα
έχει επίπτωση στην προσαρμοστικότητα του Drupal καθώς και στην
ασφάλειά του, ειδικότερα σε θέματα ασφαλείας, όπως η έγχυση εντολών
SQL (SQL injection).
Προσαρμοσμένες θεματικές παραλλαγές, που μπορούν να προστεθούν
χωρίς να επηρεάζουν τον πυρήνα του Drupal, χρησιμοποιούν
προτυποποιημένες μορφές που μπορούν να δημιουργηθούν από μηχανές
σχεδίασης θεματικών παραλλαγών τρίτων.
34
4.4 Μονάδες
Ο πυρήνας του Drupal έχει σχεδιαστεί βάση ενός συστήματος από hook,
ή callback, που επιτρέπει στις γραμμένες από την κοινότητα μονάδες να
εισάγουν συναρτήσεις στο μονοπάτι εκτέλεσης του Drupal.
Οι μονάδες που περιέχονται στον πυρήνα του Drupal παρέχουν στους
χρήστες τη δυνατότητα να:
υποβάλλουν, αναθεωρούν και να κατηγοριοποιούν την ύλη
εκτελούν αναζητήσεις
υποβάλλουν σχόλια
λαμβάνουν μέρος σε φόρουμ συζητήσεων
ψηφίζουν σε ψηφοφορίες
δουλεύουν σε συνεργατικά συγγραφικά έργα
τροποποιούν και να βλέπουν προσωπικά προφίλ
επικοινωνούν μεταξύ τους ή και με τους διαχειριστές του
ιστοτόπου
αλλάζουν την εμφάνιση του ιστότοπου με έτοιμες ή φτιαγμένες με
το χέρι θεματικές παραλλαγές
δημιουργούν μενού με πολλαπλά επίπεδα
βλέπουν τη γραφική διεπαφή και τα μηνύματα στη μητρική τους
γλώσσα
παρέχουν ροές RSS
συλλέγουν περιεχόμενο από ροές RSS άλλων ιστότοπων
εγγράφονται ως χρήστες και να διαχειρίζονται τους λογαριασμούς
τους
καθορίζουν ρόλους χρηστών, με τον ορισμό αδειών (permissions)
στους χρήστες για τη χρησιμοποίηση επιλεγμένων
χαρακτηριστικών του ιστότοπου
χρησιμοποιούν κανόνες πρόσβασης για την άρνηση πρόσβασης
στον ιστοτόπο σε συγκεκριμένα ονόματα χρηστών, διευθύνσεις
ηλεκτρονικού ταχυδρομείου και διευθύνσεις IP
λαμβάνουν στατιστικά και αναφορές για τους διαχειριστές
χειρίζονται θέματα λανθάνουσας μνήμης και απόπνιξης ώστε να
βελτιώσουν την απόδοση του ιστοτόπου σε περιόδους μεγάλης
κίνησης
35
δημιουργούν και καθορίζουν διάφορα φίλτρα εισόδου και
μορφότυπους ύλης
δημιουργούν φιλικές στο χρήστη, εύκολες προς απομνημόνευση,
διευθύνσεις URL (πχ. "www.mysite.com/products" αντί για
"www.mysite.com/?q=node/432")
Επιπρόσθετα, ο ιστότοπος του Drupal παρέχει εκατοντάδες δωρεάν
μονάδες γραμμένες από την κοινότητα του Drupal, που παρέχουν:
δυνατότητες συστημάτων e-commerce
χαρακτηριστικά ροής εργασιών
γκαλερί φωτογραφιών
σελίδες ομάδων ατόμων (οργανικά γκρουπ)
χάρτες ιστοτόπου για το Google
αντικείμενα Amazon
διαχείριση λιστών ηλεκτρονικού ταχυδρομείου
ένα σύστημα διαχείρισης πελατών (CRM), το CiviCRM
ενσωμάτωση με ένα CVS.
Παρακολούθηση των εκδόσεων συστήματος
Η μονάδα module_update, μια σχετικά νέα μονάδα διαθέσιμη για την
έκδοση 5.x (που προστίθεται και ως μέρος του πυρήνα για την 6.0),
ειδοποιεί αυτόματα το διαχειριστή για τυχόν νέες εκδόσεις των
εγκατεστημένων μονάδων και θεματικών παραλλαγών.
Θεματικές παραλλαγές
Οι περισσότερες θεματικές παραλλαγές είναι γραμμένες για τη μηχανή
PHPTemplate ή την XTemplate. Παλιότερες παραλλαγές
χρησιμοποιούσαν γραμμένο στο χέρι κώδικα σε PHP.
Προηγούμενες εκδόσεις του συστήματος θεματικής παραλλαγής του
Drupal είχαν δεχθεί κριτική ότι ήταν λιγότερο προσανατολισμένο για τη
σχεδίαση και περισσότερο πολύπλοκο από άλλα συστήματα όπως το
36
Mambo. Η συμπερίληψη στο Drupal των μηχανών PHPTemplate και
XTemplate διόρθωσαν αυτά τα προβλήματα.
Μεταφράσεις
Τον Αύγουστο του 2007, οι μεταφράσεις για τη διεπαφή του Drupal
είναι διαθέσιμες σε 37 γλώσσες εκτός της Αγγλικής (της εξ' ορισμού). Οι
υποστηριζόμενες γλώσσες περιλαμβάνουν ορισμένες που διαβάζονται
από δεξιά προς τα αριστερά, όπως τα Αραβικά και τα Εβραϊκά.
4.5 Κριτική
Ορισμένοι χρήστες θεωρούν το Drupal δυσκολότερο στην εκμάθηση
και στην εγκατάσταση συγκρινόμενο με άλλες δημοφιλείς εφαρμογές
διαχείρισης περιεχομένου. Συγκεκριμένα, η πολυπλοκότητα των
επιλογών των ρυθμίσεων και η σπαρτιάτικη εμφάνιση ενός ιστότοπου
του οποίου μόλις ολοκληρώθηκε η εγκατάσταση συχνά έρχονται σε
αντιπαράθεση με την απλότητα εργαλείων όπως το WordPress και της
πρόσφατης ανανεωμένης εμπειρίας χρήστη του Joomla. Το Drupal 5.0,
που ανακοινώθηκε στις 15 Ιανουαρίου 2007, έρχεται πακέτο με ένα
εγκαταστάτη διεπαφής ιστοσελίδας, με μια νέα θεματική παραλλαγή και
με ένα επανασχεδιασμένο πίνακα διαχείρισης για να απαντήσει εν μέρει
σε αυτές τις κριτικές. Το Drupal υποστηρίζει τη χρήση προφίλ
εγκαταστάσεων με προκαθορισμένο περιεχόμενο για τον ιστότοπο, αλλά
λίγα έχουν εκδοθεί έως τώρα (2007).
Ορισμένοι προγραμματιστές ασκούν κριτική στο Drupal για την
αποκλειστική χρήση διαδικασιακής PHP αντί για αντικειμενοστραφή
PHP. Το άρθρο Προγραμματισμός του Drupal από μια οπτική
αντικειμενοστρέφειας εξηγεί πως αρχές του αντικειμενοστραφούς
προγραμματισμού και της έννοιας του AOP εφαρμόζονται στο Drupal,
παρόλο που δεν χρησιμοποιούνται τα αντικειμενοστραφή
χαρακτηριστικά της PHP. Η βελτιωμένη υποστήριξη για τον
αντικειμενοστραφή προγραμματισμό στην PHP5 υπήρξε ως ένας από
τους λόγους για τα σχέδια του έργου του Drupal να αφαιρέσει την
υποστήριξη για την PHP4 σε μελλοντικές εκδόσεις του λογισμικού.
37
4.6 Διανομές
Προσαρμοσμένες διανομές του Drupal περιλαμβάνουν ορισμένα πακέτα
με μονάδες τρίτων, ορισμένα από τα οποία έρχονται με τροποποιήσεις
στον πυρήνα, συμπεριλαμβανομένου του vbDrupal, που είναι το Drupal
συγχωνευμένο με το VBulletin.
Το Drupal 4.2 υπήρξε η βάση για το DeanSpace, ένα σύστημα
διαχείρισης περιεχομένου που χρησιμοποιήθηκε για τη λειτουργία
πολλών ανεξάρτητων ιστοτόπων για την υποστήριξη της προεδρικής
προεκλογικής καμπάνιας του Χάουαρντ Ντιν το 2004. Αφού έληξε η
καμπάνια του Dean, το έργο DeanSpace εξελίχθηκε στο CivicSpace, μια
πλατφόρμα βασισμένη στο Drupal που "ενθάρρυνε τη συλλογική πράξη
μέσα σε κοινότητες και συνένωσε απομακρυσμένες ομάδες
υποστηρικτών με συνεκτικό τρόπο". Έτσι, το CivicSpace είναι μια
διανομή βασισμένη στο Drupal 4.2.
Πολλές καινοτομίες του CivicSpace έχουν ενσωματωθεί πίσω στο
σχέδιο του Drupal. Χαρακτηριστικά ιδιαίτερα χρήσιμα σε μη
κερδοσκοπικούς οργανισμούς και πολιτικές καμπάνιες παρέχονται στη
μονάδα CiviCRM για το Drupal 5.0 και άνω.
Έχει προταθεί η διανομή "προ-κατασκευασμένων" εγκαταστάσεων
Drupal που έχουν προ-διαμορφωθεί με μονάδες τρίτων και ρυθμιστεί για
συγκεκριμένα ήδη ιστοτόπων: ένα on-line κατάστημα, ένας ιστότοπος με
κριτικές για μουσική, ένας ιστοτόπος για ιστολόγια, κτλ. Το Drupal 5.x
τείνει προς αυτή την κατεύθυνση, παρέχοντας ένα σετ από "προφίλ
εγκατάστασης" προσαρμοσμένα για συγκεκριμένους στόχους.
38
4.7 Χαρακτηριστικά
Γενικά Χαρακτηριστικά
Collaborative Book: Το collaborative book μας επιτρέπει να
εγκαταστήσουμε ένα "βιβλίο" και να αδειοδοτήσουμε άλλους
χρήστες να συνεισφέρουν με περιεχόμενο.
«Φιλικά» URLs: Το Drupal χρησιμοποιεί το mod_rewrite από τον
Apache για να ενεργοποιήσει προσαρμόσιμα URLs τα οποία είναι
«φιλικά» προς τον χρήστη και της μηχανές αναζήτησης.
Σχήμα 1. Φιλικά URLs (Friendly URLs)
Modules: Η κοινότητα του Drupal έχει συνεισφέρει με πολλά
modules που είναι λειτουργικά και επεκτείνουν τον πυρήνα του
Drupal.
Σχήμα 2. Modules
39
Online βοήθεια
Ανοιχτός κώδικας: Ο πηγαίος κώδικας του Drupal είναι
διαθέσιμος υπό τους όρους της GNU General Public License 2
(GPL). Αντίθετα με το ιδιόκτητα blogging ή CMS, το Drupal είναι
ελεύθερο να αναπτυχθεί και να διαμορφωθεί.
Εξατομίκευση: Ένα εύρωστο εξατομικευμένο περιβάλλον υπάρχει
στον πυρήνα του Drupal. Το περιεχομένο και η παρουσίαση
μπορούνε να διαμορφωθούν βάση τις προτιμήσεις του χρήστη.
Σύστημα Αδειοδότησης: Οι Διαχειριστές του Drupal δεν
χρειάζεται να δώσουν σε κάθε χρήστη ξεχωριστά, κάποια
δικαιώματα. Θέτουν τα δικαιώματα σε ρόλους και σε γκρουπς και
μετά βάζουν τους χρήστες μέσα σε αυτά τα γκρουπ.
Σχήμα 3-4. Σύστημα Αδειόδοτησης (Role based permission system)
40
Αναζήτηση: Όλο το περιεχόμενο του Drupal είναι πλήρως
καταχωρημένο και εύκολο στην αναζήτηση.
Σχήμα 5. Αναζήτηση (Search)
Διαχείριση Χρήστη
Πιστοποίηση Χρήστη: Οι χρήστες μπορούν να εγγραφούν και να
πιστοποιήσουν την ταυτότητα τους, τοπικά ή χρησιμοποιώντας
κάποια εξωτερική πιστοποίηση όπως το Jabber, Blogger,
LiveJournal. Σχήμα 6.
41
Διαχείριση Περιεχομένου
Ψηφοφορίες: Το Drupal έχει ενσωματωμένο το module
ψηφοφοριών το οποίο δίνει τη δυνατότητα στους διαχειριστές ή
στους χρήστες να δημιουργήσουν ψηφοφορίες και να τις
εμφανίσουν σε διάφορες σελίδες.
Templating: Το theme του Drupal ξεχωρίζει το περιεχόμενο από
την παρουσίαση επιτρέποντας να χειριστούμε το πως δείχνει και
την αίσθηση μιας σελίδας του Drupal. Τα Templates
δημιουργούνται από βασικό HTML και PHP κώδικα που σημαίνει
ότι δεν χρειάζεται να μάθει κάποιος μια ιδιόκτητη γλώσσα
πλαισίου.
Σχήμα 7. Παράδειγμα 1 Template
42
Σχήμα 8. Παράδειγμα 2 Template
Threaded comments: To Drupal δίνει την δυνατότητα να
συζητήσουμε για ένα θέμα στο δημοσιευμένο περιεχόμενο. Τα
σχόλια ιεραρχούνται όπως σε ένα newsgroup ή σε ένα forum.
Έλεγχος έκδοσης: Το σύστημα ελέγχου έκδοσης ανιχνεύει τις
πληροφορίες μιας επερχόμενης ανανέωσης συμπεριλαμβανομένου,
το τι άλλαξε, ποιος το άλλαξε, την ημερομηνία και την μέρα των
αλλαγών. Ο έλεγχος έκδοσης μας δίνει την επιλογή να κρατήσουμε
την καταγραφή των αλλαγών ή ακόμα να μπορέσουμε να
επιστρέψουμε σε κάποια προηγούμενη έκδοση.
43
Σχήμα 9. Έλεγχος Έκδοσης (Version Control)
Blogging
Blogger API υποστήριξη: Το Blogger API επιτρέπει στην
ιστοσελίδα να ανανεωθεί από πολλά και διάφορα εργαλεία. Αυτό
συμπεριλαμβάνει εργαλεία τα οποία δεν έχουν σχέση με κάποιον
Web browser και έχουν ένα πιο «πλούσιο» περιβάλλον
επεξεργασίας.
Content syndication: Το Drupal εξάγει το περιεχόμενο της
ιστοσελίδας σε RDF/RSS μορφή. Αυτό επιτρέπει σε όσους
συλλέγουν νέα να πλοηγούνται με ευκολία στα νέα της
ιστοσελίδας.
News aggregator: Το Drupal έχει ενσωματωμένο το News
aggregator για διάβασμα νέων από άλλες ιστοσελίδες. Το News
aggregator «αποκρύπτει» άρθρα στην βάση δεδομένων MySQL
και ο χρόνος που απαιτείται είναι καθορισμένος από τον χρήστη.
44
Σχήμα 9. Συλλέκτης νέων (News aggregator)
Permalinks: Όλο το περιεχόμενο που δημιουργείται στο Drupal
έχει ένα μόνιμο σύνδεσμο ή “perma link” βοηθώντας έτσι τους
χρήστες να δώσουν τον σύνδεσμο σε άλλους με ευκολία.
Πλατφόρμα
Apache or IIS, Unix/Linux/BSD/Solaris/Windows/Mac OS X
υποστήριξη: Από την αρχή, το Drupal σχεδιάστηκε για να
υποστηρίζει πολλές πλατφόρμες.
Ανεξαρτησία βάσης δεδομένων: Αρκετοί χρήστες τρέχουν το
Drupal με MySQL αλλά δεν είναι η καλύτερη λύση για όλους. Το
Drupal κατασκευάστηκε για να υποστηρίζει MySQL και
PostgreSQL μαζί.
Multi-language: Το Drupal σχεδιάστηκε για να καλύπτει τις
προδιαγραφές του κοινού παγκοσμίως και μπορεί να δημιουργεί
ιστοσελίδες ή άλλες εφαρμογές σε όλες τις γλώσσες. Όλο το
κέιμενο μπορεί να μεταφραστεί με μια γραφική διεπαφή χρήστη ή
ενσωματώνοντας εργαλεία μεταγλωτισμού όπως το GNU gettext.
45
Διαχείριση και ανάλυση
Ανάλυση, ανίχνευση και στατιστικές: Το Drupal μπορεί να
εκτυπώσει αναφορές του browser με πληροφορίες από
παραπομπές, διασημότητα περιεχομένου και τον τρόπο με τον
οποίο οι επισκέπτες πλοηγούνται στην ιστοσελίδα. Σχήμα 10.
Ανάλυση, ανίχνευση και στατιστικές (Analysis, Tracking and Statistics)
Καταγραφή και Αναφορά: Όλες οι σημαντικές δραστηριότητες
καταγράφονται σε ένα μέρος καταγραφής γεγονότων για να
ελεγχθεί από τον διαχειριστή οποιαδήποτε στιγμή.
Σχήμα 11. Καταγραφή και Αναφορά (Logging and Report)
46
Διαχείριση μέσω Web: Το Drupal μπορεί να διαχειριστεί
εξ’ολοκλήρου χρησιμοποιώντας έναν Web browser, δίνοντας την
δυνατότητα, αυτό να γίνει από οποιοδήποτε σημείο του κόσμου
και δεν χρειάζεται επιπρόσθετο λογισμικό να υπάρχει στον
υπολογιστή.
Σχήμα 12. Διαχείριση μέσω Web (Web based administration)
Κοινότητα
Forums: Το χαρακτηριστικό της συζήτησης σε forum έχει
σχεδιαστεί στο Drupal ώστε να δημιουργεί ζωντανές και δυναμικές
ιστοσελίδες.
Απόδοση και Επεκτασιμότητα
Caching: Ο μηχανισμός caching εξαλείφει ερωτήματα στη βάση
δεδομένων αυξάνοντας την απόδοση και μειώνοντας της φόρτωση
του server. To Caching μπορεί να συντονιστεί σε πραγματικό
χρόνο και πολλές ιστοσελίδες υψηλής επισκεψιμότητας έχουν
αποδώσει εξαιρετικά σε περίπτωση φόρτωσης.
47
5 Ruby On Rails
5.1 Τι είναι
Το Ruby On Rails, ή αλλιώς RoR, είναι μια εφαρμογή Web ανοιχτού
κώδικα, για την γλώσσα προγραμματισμού Ruby, που προορίζεται να
χρησιμοποιηθεί με μια ευέλικτη μεθοδολογία και χρησιμοποιείται από
τους Web developers για ταχεία ανάπτυξη.
Το Rails είναι ένα πλαίσιο ανάπτυξης του Web «γραμμένο» στην
γλώσσα προγραμματισμού Ruby. Σχεδιάστηκε για να καταστήσει τις
εφαρμογές Web ευκολότερες, δημιουργώντας διάφορες υποθέσεις
σχετικά με το τι χρειάζεται ο κάθε developer για να ξεκινήσει. Παρέχει
την ευκολία στον developer να γράψει λιγότερο κώδικα και την ίδια
στιγμή να επιτυγχάνει περισσότερα απο άλλες γλώσσες και
Frameworks.Οι «βετεράνοι» developers του Rails αναφέρουν επίσης πως
η ανάπτυξη Web εφαρμογής μετατρέπεται σε παιχνίδι.
Το Rails είναι ένα αδιάλλακτο λογισμικό.Δηλαδή, υποθέτει οτί υπάρχει
ένας καλύτερος τρόπος για να γίνουν τα πράματα, και έχει σχεδιαστεί για
να προτρέπει τον εν λόγω(καλύτερο) τρόπο-και σε μερικές περιπτώσεις
να αποθαρρύνει τις εναλλακτικές λύσεις.
Εάν κατανοήσετε τον «Τρόπο του Rails»είναι πιθανόν να ανακαλύψετε
μία τεράστια αύξηση στην παραγωγικότητα. Εάν εμμένετε όμως στις
παλιές «συνήθειες» απο τις άλλες γλώσσες προγραμματισμού κατά την
ενασχόληση σας με το Rails, και προσπαθείτε να χρησιμοποιήσετε
πρότυπα που διδαχθήκατε αλλού, είναι πιθανόν να έχετε μια λιγότερο
ευχάριστη εμπειρία.
48
Η Ruby είναι μια γλώσσα προγραμματισμού που εμπνέεται από την Perl
με μερικά από τα χαρακτηριστικά της Smalltalk, μιας πραγματικά παλιάς
γλώσσας. Σχεδιάστηκε και αναπτύχθηκε από τον Yukihiro Matsumoto.
Είναι μια αρκετά αντικειμενοστραφής γλώσσα που μπορεί να
παρομοιαστεί εύκολα με το Python.
Eίναι μια γλώσσα σχετικά άγνωστη έναντι των άλλων γλωσσών, όπως
είναι η Perl και η PHP.Πρόκειται για μια object-oriented γλώσσα.Object
θεωρείται οτιδήποτε έχει ιδιότητες και συγκεκριμένους τρόπους
λειτουργίας .Π.χ. ένα αυτοκίνητο έχει τις εξής ιδιότητες: μάρκα, μοντέλο,
χρώμα.Οι ιδιότητες των objects εύκολα αποτυπώνονται στις στήλες ενός
πίνακα βάσεων δεδομένων.
Μία γλώσσα σαν την Ruby είναι ιδανική για Web εφαρμογές βασισμένες
σε βάσεις δεδομένων.
Το Ruby on Rails γρήγορα εξελίσσεται σε έναν απο τους πιο δημοφιλή
συνδυασμούς μοντέρνας γλώσσας προγραμματισμού με Web
framework.Βασικά η Ruby είναι μια γλώσσα προγραμματισμού η οποία
χρησιμοποιείται εδώ και κάποια χρόνια και το Rails είναι ενα Web
framework για την Ruby το οποίο αν και πρόσφατα παρουσιάστηκε
αποτελεί ενα πολύ σημαντικό εργαλείο σχετικά με τις εφαρμογές και το
Web development. To Rails με την εύκολη ένταξη του στους Web server
και τις βάσεις καθώς και το “κομψό” του περιβάλλον το κάνουν τον
ιδανικό υποψήφιο για κάθε προγραμματιστή που επιθυμεί να αναπτύξει
μία απο τις πίο πρόσφατες και εξαιρετικές Web εφαρμογές.
Ωστόσο όμως ,όπως γίνεται με όλες τις γλώσσες ή τα framework,το να
προσπαθήσεις να μάθεις το Rails και γενικότερα τον τρόπο λειτουργίας
του απο την αρχή μπορεί να καταλήξει αρκετά δύσκολο.
49
5.2 Ιστορία
Το Ruby On Rails εξήχθη από τον Davin Heinemeier Hansson από την
εργασία του Basecamp, πρόκειται για ένα εργαλείο διαχείρισης
εφαρμογών από την 37signals (τώρα πια μια επιχείρηση εφαρμογών
Ιστού). Ο Heinemeier Hansson αρχικά εξέδωσε το Rails ως ανοιχτό
κώδικα τον Ιούλιο του 2004, αλλά δεν έδωσε δικαιώματα χρήσης στο
πρόγραμμα μέχρι τον Φεβρουάριο του 2005. Ο Αύγουστος του 2006
αποτελεί ορόσημο για το framework καθώς η Apple ανήγγειλε ότι θα
εξέδιδε το Ruby On Rails με το MAC OS Χ v10.5 "Leopard" , που
εκδόθηκε τον Οκτώβριο του 2007.
5.3 Τεχνική επισκόπηση
Όπως πολλά σύγχρονα Web frameworks,έτσι και το Rails χρησιμοποιεί
το σχέδιο αρχιτεκτονικής MVC για να οργανώσει τον προγραμματισμό
της εφαρμογής.
Το Ruby On Rails έχει διάφορα εργαλεία που προορίζονται για να
κάνουν την ανάπτυξη των κοινών εφαρμογών πιο εύκολη. Το Rails
παρέχει scaffolding το οποίο μπορεί αυτόματα να κατασκευάσει μερικά
από τα μοντέλα και τις απόψεις που απαιτούνται για έναν βασικό
ιστοχώρο. Ένας απλός Ruby Web server περιέχει το WEBrick και το
RAKE. Με τη συμπερίληψη αυτών των απλών εργαλείων με το Rails
Framework ουσιαστικά έχουμε ένα βασικό περιβάλλον ανάπτυξης με
όλες τις εκδόσεις του λογισμικού.
Το Ruby On Rails βασίζεται σε Web server για να λειτουργήσει. Το
Mongrel προτιμάται σε γενικές γραμμές πέρα από το WEBrick ,αλλά
μπορεί επίσης να λειτουργήσει με τα Lighttpd, Abyss, Apache και πολλά
άλλα.
Το Rails επίσης ξεχωρίζει για την εκτενή χρήση βιβλιοθήκης
JavaScript Prototype και Script.aculo.us. Στο Rails χρησιμοποίησαν
αρχικά το “ελαφρύ” SOAP για τις υπηρεσίες δικτύου το οποίο και
αντικαταστάθηκε απο το RESTful web services.
50
Από την έκδοση 2.0, το Ruby On Rails προσφέρει και HTML και XML
ως σχήματα παραγωγής.
5.4 Δομή πλαισίου
Το Ruby On Rails είναι χωρισμένο σε διάφορα πακέτα, όπως το
ActiveRecord (ένα σύστημα χαρτογράφησης για την πρόσβαση βάσεων
δεδομένων), το ActiveResource (παρέχει τις υπηρεσίες Ιστού
ActionPack, ActiveSupport και ActionMailer. Πριν από την έκδοση 2.0,
το Rails περιελάμβανε επίσης το πακέτο Action Web Service που
αντικαταστάθηκε τώρα από τον Active Resource. Εκτός βέβαια από τα
βασικά πακέτα , οι Web developers μπορούν να δημιουργήσουν plugins
για να επεκτείνουν τα ήδη υπάρχοντα πακέτα.
5.5 Φιλοσοφία και σχεδίαση
Το Ruby On Rails έχει ως σκοπό να δώσει έμφαση στο Convention
over Configuration (CoC) ,και τη σύντομη αρχή ανάπτυξης Don't Repeat
Yourself (DRY).
"Convention over Configuration" " σημαίνει ότι ένας developer πρέπει
μόνο να διευκρινίσει τις μη συμβατικές πτυχές της εφαρμογής.
Παραδείγματος χάριν, εάν υπάρχει μια κατηγορία πώλησης στο μοντέλο,
ο αντίστοιχος πίνακας στη βάση δεδομένων θα ονομαστεί πωλήσεις εξ’
ορισμού. Έτσι με αυτό τον τρόπο ο developer θα γράψει λιγότερο κώδικα
μειώνοντας έτσι τις επαναλήψεις.
"Don't repeat yourself" σημαίνει ότι οι πληροφορίες βρίσκονται σε μια
ενιαία, σαφή θέση. Παραδείγματος χάριν, χρησιμοποιώντας την ενότητα
ActiveRecord του Rails, ο developer δεν χρειάζεται να διευκρινίσει τα
ονόματα απο τις στήλες στην βάση δεδομένων στους ορισμούς
κατηγορίας. Αντ' αυτού, το Ruby On Rails μπορεί να ανακτήσει αυτές τις
πληροφορίες από τη βάση δεδομένων βάσει του ονόματος της
κατηγορίας.
51
5.6 Πρόσφατες Εξελίξεις
Η έκδοση Rails 2.3 κυκλοφόρησε στις 15 Μαρτίου 2009.Έγιναν
σημαντικές νέες αναπτύξεις όπου περιλαμβάνονται templates, engines,
Rack και τα τοποθετημένα μοντέλα εντύπου.
• Τα templates επιτρέπουν τον developer να παράγει τον σκελετό της
εφαρμογής με τα σύνηθες gems και τις διαμορφώσεις.
• Οι engines, επιτρέπουν την επαναχρησιμοποίηση διάφορων
κομματιών μιας εφαρμογής με τις διαδρομές, τις πορείες άποψης και τα
πρότυπα.
• Η επιφάνεια εργασίας(interface) του Rack Web server επιτρέπουν
σε κάποιον να γράψει τα βελτιστοποιημένα κομμάτια του κώδικα που
αποστέλλονται γύρω από ActionController.
Στις 23 Δεκεμβρίου 2008, το Merb, ένα άλλο πλαίσιο εφαρμογής Web,
και το Rails ανήγγειλαν μια δέσμευση για την από κοινού τους εργασία.
Η ομάδα του Rails ανήγγειλε ότι θα δουλέψουν με το εγχείρημα Merb
για να φέρουν “Τις καλύτερες ιδέες του Merb" στo Rails 3, λήγοντας
έτσι την άσκοπη " πανομοιότυπη αναπαραγωγή"(duplication) και στις
δύο κοινότητες.
5.7 Trademarks
Τον Μάρτιο του 2007 ο David Heinemeier Hansson κατέθεσε τρεις
trademarks αιτήσεις σχετικά με το Rails στο USPTO. Αυτές οι εφαρμογές
κατωχυρώνουν τη φράση "RUBY ON RAILS " , τη λέξη " RAILS" και
το επίσημο λογότυπο .Κατά συνέπεια, το καλοκαίρι του 2007 ο Hansson
αρνήθηκε την άδεια στην Apress να χρησιμοποιήσει το λογότυπο Rails
στο εξώφυλλο κάποιου καινούργιου βιβλίο σχετικά με το RAILS. Το
επεισόδιο αύτο έδωσε αφορμή για διαμαρτυρία στην κοινότητα του
Rails. Σε απάντηση σε αυτήν την κριτική, ο Hansson έκανε τις ακόλουθες
δηλώσεις «Θα χορηγήσω μόνο προωθητική χρήση [Του λογότυπου Rails]
για προϊόντα στα οποία είμαι άμεσα συνδεμένος . Όπως στα βιβλία στα
οποία είχα λόγο κατά την εγγραφή τους ή σε διασκέψεις όπου θα έχω το
52
δικαίωμα λόγου στην εκτελεστική επιτροπή. Θα επιδιώξω να επιβάλω
trademarks για όλα τα σύμβολα του Rails.»
5.8 Κριτική
Το Rails έχει επικριθεί για ζητήματα σχετικά με την εξελιξιμότητα του,
ειδικότερα σε προβλήματα σε σχέση με την συμβατότητα με τις βάσεων
δεδομένων . Αυτοί οι κριτικοί ανέφεραν συχνά τις διάφορες διακοπές του
Twitter{http://twitter.com/} το 2007 και το 2008, οι οποίες προέτρεψαν
φαινομενικά το Twitter να μετεξελιχθεί σε Scala(το οποίο λειτουργεί σε
Java Virtual Machine) για το σύστημα αναμονής τους.
5.9 Χαρακτηριστικά
Το Ruby on Rails περιέχει κάποια χαρακτηριστικά τα οποία βοηθούν
στην αύξηση της παραγωγικότητας των developers. Μερικά από αυτά
είναι τα εξής:
Αρχιτεκτονική MVC: Το Ruby on Rails βασίζεται στην αρχιτεκτονική
MVC (Model View Controller) η οποία δίνει την δυνατότητα στην βάση
δεδομένων να διαχωριστεί από την παρουσίαση.
Σχήμα 1. Αρχιτεκτονική MVC (MVC Architecture)
53
Βιβλιοθήκη πρόσβασης στη βάση δεδομένων: Το Ruby on Rails
περιέχει μια βιβλιοθήκη πρόσβασης στη βάση δεδομένων – Ενεργή
εγγραφή η οποία απλουστεύει τον χειρισμό δεδομένων στις βάσεις. Η
Ενεργή εγγραφή χαρτογραφεί αυτόματα τους πίνακες σε κατηγορίες και
τις σειρές σε αντικείμενα.
Σχήμα 2.
Βιβλιοθήκη πρόσβασης στη βάση δεδομένων (Database Access Library)
Βιβλιοθήκες για κοινές εργασίες: Το Ruby on Rails περιέχει ένα πλήθος
από βιβλιοθήκες που απλοποιούν την κωδικοποίηση των κοινών
προγραμματισμένων εργασιών όπως επικυρώσεις, διαχείρησης τομέων
κτλπ.
Βιβλιοθήκη AJAX: Μια επεκτεινόμενη βιβλιοθήκη από AJAX
λειτουργίες παρέχεται στο πλαίσιο Rails. Ο κώδικας της Ruby μπορεί να
χρησιμοποιηθεί για να παράγει κώδικα AJAX. To συσχετισμένο Java
scripting χρησιμοποιείται για να παραχθεί αυτόματα το AJAX.
54
Convention over configuration: Το Ruby on Rails δεν έχει κάποια
ρύθμιση XML αρχείων. Περιέχει απλές προγραμματιστικές συμβάσεις
που μπορούν να χρησιμοποιηθούν για να προσδιοριστεί η ρύθμιση των
παραμέτρων.
Customized URL: Προσαρμοσμένα ή «φιλικά» στις μηχανές
αναζήτησης URLs μπορούν να αναπτυχθούν χρησιμοποιώντας το
πλαίσιο Ruby on Rails.
Debugging: Λεπτομερή αναφορές σφαλμάτων προμηθεύονται,
καθιστώντας πιο εύκολο να εξαλειφθούν τα bugs από τις εφαρμογές.
Components: Τα Components μπορούν να χρησιμοποιηθούν για
αποθήκευση του ήδη υπάρχοντα κώδικα. Επίσης μπορούν να
συμπεριληφθούν για το template modularization.
55
6 JOOMLA
6.1 Τι είναι;
Το Joomla είναι ένα δωρεάν σύστημα διαχείρισης περιεχομένου.
Χρησιμοποιείται για τη δημοσίευση περιεχομένου στον Παγκόσμιο ιστό
(World Wide Web) και σε τοπικά δίκτυα - intranets. Είναι γραμμένο σε
PHP και αποθηκεύει τα δεδομένα του στη βάση MySQL. Το βασικό
χαρακτηριστικό του είναι ότι οι σελίδες που εμφανίζει είναι δυναμικές,
δηλαδή δημιουργούνται την στιγμή που ζητούνται. Ένα σύστημα
διακομιστή (server) όπως είναι ο Apache λαμβάνει τις αιτήσεις των
χρηστών και τις εξυπηρετεί. Με ερωτήματα προς τη βάση λαμβάνει
δεδομένα τα οποία μορφοποιεί και αποστέλλει στον εκάστοτε
φυλλομετρητή (Web browser) του χρήστη. Το Joomla έχει και άλλες
δυνατότητες εμφάνισης όπως η προσωρινή αποθήκευση σελίδας, RSS
feeds, εκτυπώσιμες εκδόσεις των σελίδων, ειδήσεις, blogs,
δημοσκοπήσεις, έρευνες, καθώς και πολύγλωσση υποστήριξη των
εκδόσεών του.
6.2 Ιστορία
Το Joomla είναι ένα νόμιμο αποτέλεσμα της αντιγραφής του πηγαίου
κώδικα του Mambo, που αναπτύχθηκε ξεχωριστά από την αναπτυξιακή
ομάδα του Joomla στις 17 Αυγούστου του 2005. Το όνομα Mambo
ήταν το εμπορικό σημα της Miro International Pty Ltd, η οποία
δημιούργησε έναν μη κερδοσκοπικό οργανισμό με την προϋπόθεση να
χρηματοδοτήσει το σχέδιο και να το προστατεύσει από νομικές αγωγές.
Η αναπτυξιακή ομάδα του Joomla επικαλέστηκε ότι πολλές από τις
παροχές που είχαν αρχικά συμφωνηθεί, δεν τηρήθηκαν από την
οργανωτική επιτροπή του Mambo, με αποτέλεσμα να τεθεί υπό
αμφισβήτηση η δημιουργία του Joomla ως πλατφόρμα ανοιχτού
κώδικα.Η αναπτυξιακή ομάδα του Joomla δημιούργησε μια .org
56
ιστοσελίδα ονομαζόμενη “OpenSourceMatters” για να διαμοιράσει
πληροφορίες στους χρήστες, στους developers, στους Web designers και
γενικά σε όλη την κοινότητα. Ο αρχηγός της ομάδας ο Andrew Eddie,
γνωστός και ως “MasterChief”, έγραψε ένα γράμμα ανοιχτό προς όλη την
κοινότητα, το οποίο εμφανιζόταν στον τομέα των ανακοινώσεων του
forum στην ιστοσελίδα mamboserver.com. Κάτι λιγότερο από 1000
χρήστες επισκέφθηκαν την ιστοσελίδα opensourcematters.org μέσα σε
μία μέρα, πράγμα πολύ ενθαρρυντικό. Ο διευθυντής της Miro, Peter
Lamont, έδωσε μια σκληρή απάντηση στην αναπτυξιακή ομάδα με ένα
άρθρο που είχε τίτλο “The Mambo Open Source Controversy – 20
Questions with Miro”. Έτσι δημιουργήθηκε μια αντιπαράθεση στην
κοινότητα σχετικά με το ελεύθερο λογισμικό και τον προσδιορισμό του
ως «ανοιχτού κώδικα». Τα forums από πολλές άλλες πλατφόρμες
«ανοιχτού κώδικα» ήταν ενεργά με δημοσιεύσεις άλλοτε υπέρ και άλλοτε
κατά των πράξεων των δύο πλευρών (Joomla development team –
Miro).Δύο εβδομάδες μετά από τις ανακοινώσεις του Eddie, οι 2 πλευρές
αναδιοργανώθηκαν και η κοινότητα συνέχισε ξανά να μεγαλώνει. O Eben
Moglen και το Νομικό Κέντρο Ελευθερίας Λογισμικού (Software
Freedom Law Center, SFLC) βοήθησαν την κεντρική ομάδα του Joomla
που ξεκίνησε τον Αύγουστο του 2005, πράγμα που ήταν φανερό από τις
ανακοινώσεις στο blog του Moglen. Το Νομικό Κέντρο Ελευθερίας
Λογισμικού συνέχισε να βοηθάει με νόμιμη καθοδήγηση το Joomla
project.
Την 18η Αυγούστου 2005, ο Andrew Eddie έκανε έκκληση προς την
κοινότητα για την εύρεση ονομάτος για το project. Η κεντρική ομάδα του
Joomla έδειξε ότι θα έπαιρνε την τελική απόφαση για το όνομα, με βάση
τις προτάσεις από την κοινότητα. Τελικά όμως, επιλέχθηκε ένα όνομα το
οποίο δεν ήταν στην λίστα με τα προτεινόμενα ονόματα από την
κοινότητα.
Την 1η Σεπτεμβρίου του 2005, το νέο όνομα, “Joomla”, ανακοινώθηκε.
Είναι η αγγλική μετάφραση της λέξης από την γλώσσα των Swahili
“jumla”, που σημαίνει «όλοι μαζί».Στις 6 Σεπτεμβρίου 2005, η
αναπτυξιακή ομάδα κάλεσε την κοινότητα να βοηθήσει στην δημιουργία
του λογότυπου. Έτσι η κοινότητα μπορούσε να ψηφίσει πιο λογότυπο
ήταν το καλύτερο, με την τελική απόφαση να βγαίνει στις 22
57
Σεπτεμβρίου. Μετά την επιλογή του λογότυπου, ακολούθησαν επιλογές
για τις brand guidelines, τα εγχειρίδια χρήσης τα οποία εκδόθηκαν για το
κοινό στις 2 Οκτωμβρίου.
Το Joomla (έκδοση 1.0.0) εκδόθηκε στις 16 Σεπτεμβρίου 2005. Ήταν
μια επεξεργασμένη έκδοση του Mambo 4.5.2.3, το οποίο είχε αρκετά
bugs και προστασία μέτριου επιπέδου.
Το Joomla κέρδισε το βραβείο Packt Publishing το 2006 και το 2007, ως
η καλύτερη πλατφόρμα συστήματος διαχείρησης περιεχομένου ανοιχτού
κώδικα.
Στις 27 Οκτωμβρίου 2008, το Packt Publishing ανακοίνωσε τον Johan
Janssens, το πολυτιμότερο άτομο (MVP), για την δουλειά του ως
developer του Joomla 1.5 και της αρχιτεκτονικής του. Το 2009 ο Louis
Landry έλαβε το βραβείο του MVP, για την συμβολή του στην
αρχιτεκτονική και στην καθοδήγηση δημιουργίας του Joomla.
Η έκδοση 1.5 του Joomla εκδόθηκε στις 22 Ιανουαρίου του 2008. Η πιο
πρόσφατη έκδοση μέχρι στιγμής είναι η 1.5.17 (27 Απριλίου 2010). Τον
Μάϊο, η πρώτη beta έκδοση 1.6 έγινε διαθέσιμη στο κοινό για testing
λόγους.
6.3 Ανάπτυξη
Το Joomla μπορεί να εγκατασταθεί χειροκίνητα από τον πηγαίο κώδικα,
σε ένα σύστημα το οποίο τρέχει έναν Web server που υποστηρίζει
εφαρμογές PHP. Η χειροκίνητη εγκατάσταση συνήθως απαιτεί
περισσότερο χρόνο και εμπειρία από οποιαδήποτε άλλη εναλλακτική
λύση, όπως είναι η εγκατάσταση με τη χρήση ενός αυτοματοποιημένου
συστήματος ή με την χρήση του TurnKey.
Υπάρχουν πολλές εταιρείες Web hosting, οι οποίες προμηθεύουν έναν
πίνακα ελέγχου που αυτοματοποιεί την ανάπτυξη της ιστοσελίδας στο
Joomla.
58
Το Joomla επίσης μπορεί να εγκατασταθεί μέσω της Microsoft Web
πλατφόρμας των Windows. Η πλατφόρμα αυτή ανιχνεύει πιθανόν
ελλείψεις των PHP ή MySQL, τις εγκαθιστά και τις τροποποιεί
κατάλληλα πριν προχωρήσει στην τελική εγκατάσταση του Joomla.
6.4 Κοινότητα
Το Joomla έχει μια επίσημη και πολλές ανεπίσημες κοινότητες. Από τον
Ιούλιο του 2008 η επίσημη κοινότητα του Joomla έχει πάνω από 300.000
θέματα στα forums της και πάνω από 1.300.000 posts. Περισσότερα από
255.000 μέλη είναι εγγεγραμμένα χρησιμοποιώντας 40 διαφορετικές
γλώσσες. Ανεπίσημες ιστοσελίδες εκδόθηκαν σε πολλές γλώσσες κατά
καιρούς με την χρήση του Joomla.
6.5 Χαρακτηριστικά
Διαχειριστής Χρηστών: Το Joomla έχει ένα σύστημα εγγραφής το οποίο
επιτρέπει στους χρήστες να τροποποιούν τις προσωπικές τους ρυθμίσεις.
Υπάρχουν 9 γκρουπ χρηστών με διάφορους τύπους αδειών, πάνω στα
οποία οι χρήστες έχουν την ανάλογη πρόσβαση, ρύθμιση και έλεγχο. Η
αναγνώριση του χρήστη είναι το πιο σημαντικό μέρος του
χαρακτηριστικού «Διαχείριση Χρηστών» γι’αυτό το Joomla υποστηρίζει
πολλαπλά πρωτόκολα, συμπεριλαμβανομένου το LDAP, OpenID και το
Gmail. Αυτό επιτρέπει στους χρήστες να χρησιμοποιήσουν τον ήδη
υπάρχων λογαριασμό τους για να προχωρήσουν στην διαδικασία
εγγραφής.
59
Σχήμα 1. Διαχειριστής Χρηστών (User Manager)
Διαχειριστής Μέσων: Ο Διαχειριστής Μέσων είναι ένα εργαλείο για την
εύκολη διαχείριση των αρχείων ή των φακέλων των Μέσων. Δίνεται η
δυνατότητα να τροποποιηθούν οι ρυθμίσεις τύπου MIME ώστε να
χειριστούμε αρχεία οποιουδήποτε τύπου. Ο Διαχειριστής Μέσων είναι
ενσωματωμένος στο εργαλείο επεξεργασίας αντικειμένων με αποτέλεσμα
να βοηθάει στην λήψη φωτογραφιών ή άλλων τύπων αρχείων,
οποιαδήποτε στιγμή.
Σχήμα 2. Ο Διαχειριστής Μέσων (Media Manager) βρίσκεται στο
SiteDirectory drop-down μενού.
60
Σχήμα 3. Κάτω από την λίστα αρχείων και φακέλων, μπορούμε να δούμε
αυτά τα 3 κουτιάς εισαγωγής.
Σχήμα 4. Το «ανέβασμα» αρχείου (Upload) μας επιτρέπει να επιλέξουμε το
αρχείο και να το «ανεβάσουμε» στην θήκη φωτογραφιών
(χρησιμοποιώντας το κουμπί Browse και έπειτα πατώντας το κουμπί
Upload στην πανω δεξιά γωνία)
61
Σχήμα 5. Το κουτί Code εμφανίζει τον κώδικα σε HTML και μας επιτρέπει
να δώσουμε τον σύνδεσμο της φωτογραφίας που έχουμε επιλέξει.
Σχήμα 6. Μέσω του κουμπιού Create Directory μπορούμε να
δημιουργήσουμε έναν καινούριο φάκελο, μέσα στον οποίο μπορούμε να
«ανεβάσουμε» αρχεία. Πληκτρολογούμε στο όνομα του καταλόγου, όπως
φαίνεται στην φωτογραφία και έπειτα πατάμε το εικονίδιο Create στο
μενού στην πάνω δεξιά γωνία.
62
Σχήμα 7. Αν θελήσουμε να σβήσουμε ένα αρχείο ή έναν άδειο φάκελο,
μπορούμε να πατήσουμε στο εικονίδιο με τον Κάδο που βρίσκεται κάτω
από το αντικείμενο που θέλουμε να σβήσουμε. Θα χρειαστεί να
επιβεβαιώσουμε την διαγραφή.
Διαχειριστής Γλώσσας: Υπάρχει μεγάλη υποστήριξη για πολλές
γλώσσες του κόσμου και UTF-8 κωδικοποίηση. Αν χρειαστεί η
ιστοσελίδα να είναι σε μια συγκεκριμένη γλώσσα, και ο πίνακας του
Διαχειριστή σε κάποια άλλη, υπάρχει η δυνατότητα υποστήριξης
πολλαπλών γλωσσών.
Σχήμα 8. Διαχειριστής Γλώσσας (Language Manager)
63
Σχήμα 9. Πως να προσθέσουμε μια νέα γλώσσα στο Joomla;
Όταν μπούμε στον πίνακα διαχείρισης, θα δούμε την ενδεικτική σελίδα με
όλες τις ρυθμίσεις.
Σχήμα 10. Αν θελήσουμε να προσθέσουμε μια νέα γλώσσα στην
εγκατάσταση του Joomla, τότε μπορούμε να επισκεφθούμε την σελίδα
Joomla Extentions - Languages και να «κατεβάσουμε» την επιθυμητή
γλώσσα. Μετά πάμε στο μενού Installers και επιλέγουμε Languages.
64
Πατάμε το κουμπί Browse και μετά βρίσκουμε το αρχείο εγκατάστασης της
γλώσσας και έπειτα πατάμε στην επιλογή Upload File & Install. Σχήμα 11.
Σχήμα 12. Περιμένουμε για επιβεβαίωση και πατάμε Continue. Από τις
γλώσσες που βρίσκονται στον κατάλογο επιλέγουμε την καινούρια και μετά
πατάμε στο εικονίδιο Publish.
Τώρα έχουμε εγκαταστήσει επιτυχημένα μια νέα γλώσσα στο Joomla. Το
επόμενο βήμα είναι να την θέσουμε ως προεπιλεγμένη. Θα πρέπει να πάμε
στον πίνακα διαχείρισης: Global Configuration -> Site. Στην επιλογή
Γλώσσας επιλέγουμε αυτή που εγκαταστήσαμε τελευταία και αυτόματα θα
γίνει προεπιλογή στην ιστοσελίδα μας.
65
Διαχείριση των Banner: Είναι εύκολο να τοποθετηθούν banners στην
ιστοσελίδα με την χρήση του Διαχειριστή Banner, ξεκινώντας απλά από
την δημιουργία ενός πελατειακού προφίλ. Μόλις προστεθούν τα
επιθυμητά campaigns και banners, μπορεί κάποιος να τοποθετήσει
impression numbers, special URLs και πολλά άλλα.
Σχήμα 13. Διαχείριση των Banner (Banner Management)
Διαχείριση Επαφών: Ο Διαχειριστής Επαφών βοηθάει τους χρήστες να
βρουν το κατάλληλο άτομο που ψάχνουν καθώς και πληροφορίες του.
Επίσης, υποστηρίζει πολλαπλές φόρμες επαφών ξεκινώντας από
ξεχωριστές επαφές μέχρι και ολόκληρα γκρουπς.
Σχήμα 14. Διαχείριση Επαφών (Contact Management)
66
Ψηφοφορίες: Αν κάποιος θέλει να μάθει περισσότερες πληροφορίες για
τους χρήστες, είναι εύκολο να δημιουργήσει ψηφοφορίες με πολλαπλές
επιλογές.
Σχήμα 15. Πως να δημιουργήσουμε μια ψηφοφορία;
Βήμα 1 Από το μενού στην κορυφή της σελίδας του διαχειριστή επιλέγουμε
Components -> Polls:
Βήμα 2 Πατάμε το New από το μενού πάνω δεξιά. Ας ονομάσουμε την
ψηφοφορία: «Πως σας φαίνεται η ιστοσελίδα μας;».
Σχήμα 16. Βήμα 3 Στο δεξιό μενού τοποθετούμε τις επιθυμητές επιλογές:
«Υπέροχη», «Μέτρια» , «Κακή».
67
Βήμα 4 Για να αποθηκεύσουμε την ψηφοφορία, πατάμε στο κουμπί Save
πάνω δεξιά.
Σχήμα 17. Βήμα 5 Τώρα η ψηφοφορία πρέπει να δημοσιευτεί. Πηγαίνουμε
Extensions -> Module Manager από το μενού στην κορυφή.
Σχήμα 18. Βήμα 6 Επιλέγουμε New από πάνω δεξιά, βρίσκουμε το Poll
στην λίστα και το τσεκάρουμε.
Βήμα 7 Πατάμε: Next
Βήμα 8 Βάζουμε τίτλο: Πως σας φαίνεται η ιστοσελίδα μας;
Βήμα 9 Επιλέγουμε :“Show title” , No.
Βήμα 10 Από το δεξιό κουτί, Module Parameters > Poll επιλέγουμε την
ψηφοφορία «Πώς σας φαίνεται η ιστοσελίδα μας;».
68
Βήμα 11 Πατάμε το Save και θα δούμε ότι η ψηφοφορία εμφανίστηκε στην
αρχική σελίδα. Σχήμα 19.
Αναζήτηση: Βοηθάει στην πλοήγηση των χρηστών στα πιο δημοφιλή
αντικείμενα και προμηθεύει τον Διαχειριστή με στατιστικές αναζήτησης.
Διαχείριση των Συνδέσμων: Προμηθεύει πηγές συνδέσμων στους
χρήστες της ιστοσελίδας οι οποίες είναι απλό να χωριστούν σε
κατηγορίες.
Σχήμα 20. Διαχείριση Συνδέσμων (Web link Management)
69
Διαχείριση Περιεχομένου: Το απλοποιημένο σε 3 βαθμίδες σύστημα
των αντικειμένων, δίνει την δυνατότητα το περιεχόμενο να οργανωθεί
στιγμιαία. Το περιεχόμενο μπορεί να οργανωθεί με οποιοδήποτε
επιθυμητό τρόπο και δεν έχει απαραίτητα σχέση με το πως θα φαίνεται
στην ιστοσελίδα. Οι χρήστες μπορούν να αξιολογούν τα αντικείμενα, να
τα στέλνουν μέσω e-mail σε άλλους, ή να τα αποθηκεύουν αυτόματα σε
ένα .PDF αρχείο (με UTF-8 υποστήριξη για όλες τις γλώσσες). Οι
Διαχειριστές μπορούν να αρχειοθετήσουν το περιεχόμενο για ασφάλεια,
κρύβοντας το από τους απλούς επισκέπτες της ιστοσελίδας.
Στις ιστοσελίδες που είναι ανοιχτές για το κοινό, το ενσωματωμένο
εργαλείο απόκρυψης των e-mail, προστατεύει τις ηλεκτρονικές
διευθύνσεις από τα spambots.
Η δημιουργία του περιεχομένου είναι απλή με τον επεξεργαστή
WYSIWYG, δίνοντας την δυνατότητα στους χρήστες να τοποθετήσουν
κείμενο και φωτογραφίες μαζί με έναν πολύ ελκυστικό τρόπο. Μόλις
δημιουργηθούν τα άρθρα, υπάρχει ένας μεγάλος αριθμός από
προεγκατεστημένα modules για να εμφανίσουν τα πιο δημοφιλή άρθρα,
τα τελευταία νέα αντικείμενα, newsflashes, συσχετισμένα άρθα και άλλα.
Σχήμα 21. Διαχείριση Περιεχομένου (Content Management)
70
Σύνδεση και Διαχείριση των Newsfeed: Με το Joomla, είναι εύκολο να
συνδέσεις το περιεχόμενο της ιστοσελίδας σου, επιτρέποντας στους
χρήστες να γράψουν το νέο περιεχόμενο στη λίστα με το αγαπημένο τους
RSS reader. Είναι το ίδιο εύκολο να ενσωματώσουν τα RSS feeds από
άλλες πηγές και να τα συγκεντρώσουν όλα στην ιστοσελίδα.
Πως να προσθέσουμε και να χρησιμοποιήσουμε News/RSS Feed;
Για να συμπεριλάβουμε ένα RSS feed από άλλη ιστοσελίδα, πρέπει πρώτα
να φτιάξουμε ένα RSS Block. Είναι το ίδιο με το να προσθέσουμε ενα νέο
Block, αλλά στο Block dropdown μενού, επιλέγουμε: Core / RSS
Newsfeed. Μετά πατάμε Update. Έπειτα συμπληρώνουμε τις πληροφορίες
και επιλέγουμε την τοποθεσία. Τέλος, πατάμε το κουμπί Update. Σχήμα 22.
Διαχειριστής Μενού: Ο Διαχειριστής Μενού επιτρέπει τη δημιουργία
όσων μενού και αντικειμένων μενού χρειαζόμαστε. Μπορούμε να
δομήσουμε την ιεραρχία των μενού εντελώς ανεξάρτητα από την δομή
του περιεχομένου. Το μενού μπορεί να τοποθετηθεί σε πολλαπλά μέρη
και σε οποιοδήποτε στυλ επιλεχθεί, π.χ rollovers, dropdown, flyouts και
οτιδήποτε άλλο τρόπο πλοήγησης μπορούμε να σκεφτούμε.
71
Σχήμα 23. Διαχειριστής Μενού (Menu Manager)
Διαχείριση Προτύπου: Τα πρότυπα στο Joomla είναι ένας καλός δρόμος
να διαμορφώσουμε την ιστοσελίδα μας ώστε να φαίνεται όπως ακριβώς
θέλουμε. Μπορούμε να χρησιμοποιήσουμε το ίδιο πρότυπο για όλο την
ιστοσελίδα ή ξεχωριστό για κάθε τομέα.
Ενσωματωμένο Σύστημας Βοήθειας: Το Joomla έχει ενσωματωμένο
τομέα βοήθειας για να βοηθήσει του χρήστες να βρουν ότι ζητάνε. Ένα
γλωσσάριο εξηγεί τους όρους σε απλά Αγγλικά, ένας ελεγκτής έκδοσης
σιγουρεύει ότι χρησιμοποιούμε την τελευταία έκδοση, ένα εργαλείο
πληροφοριών συστήματος βοηθάει στην αντιμετώπιση προβλημάτων και
αν όλα αυτά δεν καταφέρουν να βοηθήσουν υπάρχουν πολλοί σύνδεσμοι
σε άλλες πηγές για περαιτέρω βοήθεια και υποστήριξη.Ενσωματωμένο
72
Σχήμα 24. Σύστημα Βοήθειας (Intergrated Help System)
Χαρακτηριστικά Συστήματος: Αν ο Διαχειριστής της ιστοσελίδας
χρειαστεί να αντιμετωπίσει ένα πρόβλημα, το debugging mode και η
αναφορά λαθών είναι ανεκτίμητα.
Το επίπεδο FTP επιτρέπει διάφορες διαδικασίες αρχείων (όπως
εγκατάσταση προεκτάσεων) χωρίς να χρειάζεται να γίνουν όλοι οι
φάκελοι ή τα αρχεία writable. Έτσι το έργο για τον Διαχειριστή είναι πιο
εύκολο και αυξάνεται η ασφάλεια της ιστοσελίδας.
Οι Διαχειριστές μπορούν να επικοινωνήσουν γρήγορα και αποδοτικά με
τους χρήστες, ένας προς έναν, μέσω προσωπικών μηνυμάτων ή με όλους
μαζί μέσω του συστήματος πολλαπλών μηνυμάτων.
Υπηρεσίες Web: Με τις Υπηρεσίες Web, μπορούμε να
χρησιμοποιήσουμε Remote Procedure Calls (μέσω HTTP και XML).
Επίσης μπορούμε να ενσωματώσουμε υπηρεσίες XML-RPC με το
Blogger και τα Joomla APIs.
Επεκτασιμότητα: Υπάρχουν μερικά βασικά χαρακτηριστικά του Joomla
αλλά η «δύναμη» του είναι ο τρόπος με τον οποίο μπορεί να
προσαρμοστεί στις ανάγκες μας.
73
7 Υλοποίηση και Σύκριση
7.1 Joomla
Η υλοποίηση που κάναμε του Joomla υπάρχει στο
http://174.132.7.136/~ptixiaki/joomla/index.php
Σχήμα 1. Αρχική / Administrator
Κάνοντας Login ο Administrator, εμφανίζεται ένα μενού κάτω αριστερά
που επιτρέπει να γίνει η διαχείριση της ιστοσελίδας. Οι επιλογές που
υπάρχουν είναι “Your details” , “Submit an Article” , “Submit a Web
Link” , “Logout”.
Σχήμα 2. Your details
74
Πατώντας στην επιλογή “Your details”, εμφανίζεται η παραπάνω
σελίδα. Εδώ μπορούμε να τροποποιήσουμε τις προσωπικές μας
λεπτομέρειες, να αλλάξουμε την γλώσσα και την ώρα.
Σχήμα 3. Submit an Article
Στην παραπάνω σελίδα, μας δίνεται η δυνατότητα να γράψουμε ένα
άρθρο, να ανεβάσουμε φωτογραφίες, να το κατηγοριοποιήσουμε και να
επιλέξουμε σε ποιους χρήστες θα είναι ορατό.
Σχήμα 4. Submit a Web Link
Μέσω αυτής της σελίδας μας δίνεται η δυνατότητα να δημοσιεύσουμε
έναν σύνδεσμο από κάποια άλλη ιστοσελίδα, και να τον βάλουμε σε
κάποια κατηγορία.
Τέλος υπάρχει η επιλογή ¨Logout¨ που μας οδηγεί στην αποσύνδεση
από τον λογαριασμό μας.
75
Σχήμα 5. Αρχική / Επισκέπτης
Σχήμα 6. Σύνδεσμος Ποδόσφαιρο
Σχήμα 7. Σύνδεσμος Φωτογραφιών Μπάσκετ/Ποδοσφαίρου
76
Σχήμα 8. Forum
Σχόλια
Το Joomla μπορούμε να πούμε ότι είναι αρκετά εύκολο στην διαχείριση
του. Έχουμε πλήρη έλεγχο σε ότι υπάρχει στην ιστοσελίδα π.χ το άρθρο
στην Αρχική σελίδα μπορούμε να το μετατρέψουμε σε .pdf αρχείο, να το
εκτυπώσουμε ή να στείλουμε σαν email πατώντας τα κουμπάκια που έχει
δίπλα.
Αρκετά σημαντικό είναι ότι η κατηγοριοποίηση παρ’όλο που είναι
υψηλού επιπέδου, είναι ευέλικτη και δεν πρόκειται να δυσκολέψει ακόμα
και κάποιον αρχάριο χρήστη. Υποστηρίζει πολλά plugins με το
σημαντικότερο να είναι το forum και έχει search box.
Έχει όλες τις επιλογές συγκεντρωμένες και δεν χρειάζεται κάποιος να
ψάχνει σε όλα τα μέρη της ιστοσελίδας για να τις βρει.
Η δυσκολία που προέκυψε ήταν στο να φορτώσουμε ένα video από
άλλη ιστοσελίδα, καθώς αργούσε αρκετά η ιστοσελίδα μας – πιθανόν
λόγω της χρήσης Javascript και CSS.
77
7.2 Drupal
Η υλοποίηση που κάναμε του Drupal υπάρχει στο
http://ksenos.drupalcafe.com
Σχήμα 1. Αρχική / Administator
Αυτή είναι η αρχική σελίδα του site μας. Υπάρχουν διάφορα μενού και
καρτέλες τα οποία χρησιμεύουν στην πλοήγηση μας στο site. Όπως
βλέπουμε, πάνω αριστερά υπάρχει το admin menu, το οποίο μας
επιτρέπει να διαχειριστούμε την ιστοσελίδα. Έχει 4 επιλογές τις οποίες
θα δούμε παρακάτω.
78
Σχήμα 2. My account
Μόλις πατήσουμε αυτή την επιλογή εμφανίζεται η παραπάνω σελίδα.
Έχουμε την δυνατότητα να αλλάξουμε το username μας, την διεύθυνση
email και τον κωδικό μας. Μπορούμε να επιλέξουμε αν ο λογαριασμός
θα είναι ενεργός με την επιλογή Active ή εάν δεν θα υπάρχει δυνατότητα
πρόσβασης με την επιλογή Blocked. Τέλος πιο κάτω υπάρχουν ρυθμίσεις
για το theme του site και για την τοπική ώρα και ημερομηνία.
79
Σχήμα 3. Create content
Εδώ, μπορούμε εύκολα και γρήγορα να δημιουργήσαμε ένα θέμα στο
forum μας, να ανεβάσουμε εικόνες, να δημιουργήσουμε σελίδες ή
ψηφοφορίες αλλά και να γράψουμε ολόκληρο άρθρο.
Σχήμα 4. Administer
80
Αυτή η επιλογή είναι στην ουσία η διαχείριση του site. Επιλέγουμε να
τροποποιήσουμε το περιεχόμενο που υπάρχει, την εμφάνιση του site,
τους χρήστες και τις άδειες που έχουν, τις ονομασίες από τις υποσελίδες
και γενικά οτιδήποτε υπάρχει στην ιστοσελίδα.
Σχήμα 5. Logout
Πατώντας την επιλογή Logout, ξαναφορτώνει η αρχική σελίδα, και
βλέπουμε τα κουτάκια username και password, όπου μπορούμε να
συνδεθούμε σαν κάποιος άλλος χρήστης, να δημιουργήσουμε καινούριο
λογαριασμό, να ζητήσουμε χαμένο κωδικό ή να μείνουμε απλά ως
επισκέπτες.
81
Σχήμα 6. Αρχική / Επισκέπτης
Σχήμα 7. Forum
82
Σχήμα 8. Σύνδεσμος Φωτογραφίες
Σχήμα 9. Σύνδεσμος Videos
83
Σχόλια
Το Drupal CMS έχει πολλές δυνατότητες, αρκεί ο χρήστης να είναι
εξοικειωμένος για να μπορέσει να τις χρησιμοποιήσει κατάλληλα.
Όπως φαίνεται η σελίδα είναι αρκετά φιλική και ευπαρουσίαστη,
παραθέτοντας επιλογές οι οποίες είναι κατηγοριοποιημένες στα
αντίστοιχα μενού και καλύπτουν όλες τις ανάγκες.
Η αλλαγή του theme γίνεται γρήγορα και υπάρχει μια πληθώρα από
ελεύθερα themes, που ανανεώνουν το site και του δίνουν άλλη
αίσθηση. Ανά πάσα στιγμή μπορούμε να ανεβάσουμε κάποιο κέιμενο
και να διορθώσουμε τυχόν λάθη. Το ίδιο συμβαίνει και με τις
φωτογραφίες.
Παρ’όλα αυτά υπάρχουν μερικά αρνητικά. Υπάρχουν τόσες πολλές
επιλογές που υπάρχει περίπτωση να χαθείς. Δεύτερον τα βελάκια που
υπάρχουν δίπλα από τις επιλογές είναι εντελώς γραφικά και δεν
βοηθάνε στο άνοιγμα-κλείσιμο των υποκατηγοριών. Αυτό σημαίνει
ότι πρέπει να πατήσουμε σε άλλη επιλογή για να «κλείσουν» οι
υποκατηγορίες της προηγούμενης. Επίσης δεν μας παρέχει
φωτογραφίες χρηστών δίπλα από κάθε σχόλιο ή δημοσίευση τους.
Σημαντικό είναι ότι δεν υπάρχει search box, τουλάχιστον στα free
themes που παρέχονται. Τέλος, το taxonomy module μας μπέρδεψε,
αρχικά ως ορολογία αλλά και ως δυσκολία στην χρήση των tags για
κατηγοριοποίηση του περιεχομένου.
84
7.3 WaterCMS (Ruby)
Η υλοποίηση του WaterCMS, που είναι βασισμένο στη γλώσσα
Ruby, υπάρχει στο http://soloikos.publishpath.com
Σχήμα 1. Αρχική / Administrator
Αυτή είναι η αρχική σελίδα που βλέπει ο Administrator μόλις κάνει
login. Τα μενού διαχείρισης βρίσκονται στην κορυφή στα δεξιά. Ας
δούμε πρώτα τις επιλογές Page Settings, Preview Page και Add a New
Page.
85
Σχήμα 2. Page Settings (Basic)
Εδώ υπάρχουν ρυθμίσεις σχετικά με την ονομασία της σελίδας.
Σχήμα 3-4. Page Settings (Advanced)
Στην καρτέλα advanced υπάρχουν ρυθμίσεις σχετικά με το στήσιμο της
ιστοσελίδας, τα templates που παρέχονται και άλλα διάφορα όπως SSL
encryption ή να είναι κρυφή από κάποια κατηγορία χρηστών.
86
87
Σχήμα 5. Page Settings (Users and Roles)
Σε αυτή την καρτέλα, ρυθμίζουμε σε ποιους θα είναι ορατή η σελίδα.
Παρακάτω υπάρχουν οι ανάλογες επιλογές.
88
Σχήμα 6. Η επιλογή Preview Page χρησιμοποιείται για να δει ο
Administrator το πως βλέπει την ιστοσελίδα ένας απλός επισκέπτης ή
χρήστης.
Η επιλογή Αdd a New Page προσθέτει μια καρτέλα δίπλα από τις ήδη
υπάρχουσες Home, ΠΟΔΟΣΦΑΙΡΟ, ΜΠΑΣΚΕΤ. Δυστυχώς το δωρεάν
πακέτο δεν επιτρέπει να προσθέσουμε πάνω από 3 καρτέλες.
89
Σχήμα 7. Ας περάσουμε τώρα στο Administator μενού. Όπως φαίνεται
στην παρακάτω εικόνα, μόλις πάμε τον κέρσορα πάνω από την επιλογή
“My Website” εμφανίζεται αυτόματα ένα drop down μενού, με 5
επιλογές.
Εδώ μπορούμε να ρυθμίσουμε το design της ιστοσελίδας ανεβάζοντας
κάποιο δικό μας layout ή αγοράζοντας κάποιο έτοιμο. Μπορούμε να
διαχειριστούμε τις πληροφορίες των χρηστών, τα δικαιώματα που έχουν
και να δούμε στατιστικές επισκεψιμότητας στην ιστοσελίδα μας και στα
επιμέρους κομμάτια της. Η επιλογή “My Account” χρησιμεύει στο να
δούμε/επεξεργαστούμε τις ρυθμίσεις του προσωπικού μας λογαριασμού.
Τέλος η επιλογή Help μας μεταφέρει σε έναν οδηγό βοηθειών και με την
επιλογή log-out αποσυνδεόμαστε από τον λογαριασμό μας.
90
Σχήμα 8. Αρχική / Επισκέπτης
91
Σχήμα 9. Σύνδεσμος (link) Ποδόσφαιρο
Σχήμα 10. Σύνδεσμος Μπάσκετ
92
Σχόλια
Από την χρήση του WaterCMS βγάλαμε τα εξής συμπεράσματα. Είναι
αρκετά φιλικό προς τον νεό χρήστη, γιατί έχει λίγες και βασικές επιλογές
που δεν σε κάνουν να χαθείς ή να μην ξέρεις τι κάνεις. Προσφέρει μια
σχετικά εύκολη προσθήκη/επεξεργασία υλικού.
Δίπλα από κάθε επιλογή έχει ένα κουμπάκι “Explain this” που πατώντας
το εξηγεί τη χρήση της. Πολύ θετική είναι η παρουσία του search box
ακόμα και στο δωρεάν πακέτο. Επίσης έχει προαιρετική εμφάνιση
κώδικα στις αναρτήσεις, πράγμα που καθιστά τον χρήστη ικανό να μάθει
HTML.
Από την άλλη πλευρά, είναι κλειστού κώδικα οπότε υπάρχουν
περιορισμοί ως δωρεάν πακέτο. Δεν αφήνει να δημιουργήσουμε πάνω
από 3 subpages και δεν μπορεί να υπάρξει πάνω από ένας διαχειριστής.
Τέλος, το πιο σημαντικό μειονέκτημα του είναι ότι δεν υποστηρίζει
forum.
93
7.4 Πίνακες Κριτηρίων και Συμπεράσματα
Γενικά
Χαρακτηριστικά Drupal Joomla RoR
Τελευταία ανανέωση 6/3/2010 - 5.22
& 6.16
27/04/2010 –
1.5.17
7/12/2009 – Ruby
1.9.1
25/05/2010 –
Rails 2.3.8
System requirements IE 6.x +
Firefox 2.x +
Opera 7 +
Safari 1.x +
Camino 1.x +
IE 6.x +
Firefox 1.5 +
Safari 1.x +
Opera 7 +
IE 6.x +
Firefox 1.5 +
Safari 1.x +
Opera 7 +
Application Server PHP PHP FastCGI
Approximate Cost Free Free Free
Βάση δεδομένων MySQL 4.1 or 5.0
Postgre 7.4
MySQL 3.23 + MySQL
PostgreSQL
SQL Server
Oracle
Άδεια GNU/GPL GNU/GPL v2 MIT
Operating System Any Any Any
Γλώσσα προγραμματισμού PHP 4.3.5 + PHP 4.4.10 + Ruby
Root Access
Shell Access
Web Server Apache &
Microsoft IIS
Apache 1.3.x + &
2.x +
Mongrel &
Apache
94
Υποστήριξη
Χαρακτηριστικά Drupal Joomla RoR
Πρόγραμμα πιστοποίησης
Κώδικας Skeletons
Εμπορικά Manuals
Εμπορική υποστήριξη
Κοινότητα ανάπτυξης
Διαδικτυακή βοήθεια
Pluggable API
Επαγγελματική υποστήριξη
Επαγγελματικές υπηρεσίες
Public Forum
Public Mailing List
Test Framework Free Add On
Third-Party Developers
Συσκέψεις χρηστών
Ευχρηστία
Χαρακτηριστικά Drupal Joomla RoR
Drag N Drop Content Free Add On Free Add On
Email to discussion Free Add On Free Add On
Φιλικά Urls
Αυξομείωση μεγέθους εικόνας Free Add On
Macro Language Free Add On
95
Mass Upload Free Add On
Πρωτοτυπία Περιορισμένη
Server Page Language
Ορθογραφικός Έλεγχος Free Add On
Style Wizard Περιορισμένο
Subscriptions Free Add On
Template Language Περιορισμένη
UI επίπεδα
Αναίρεση Περιορισμένη
WYSIWYG Editor Free Add On Free Add On
Zip Archives
Απόδοση
Χαρακτηριστικά Drupal Joomla RoR
Advanced Caching
Database Replication Περιορισμένη
Load Balancing
Page Caching
Static Content Export Free Add On
96
Interoperability (Διαλειτουργικότητα)
Χαρακτηριστικά Drupal Joomla RoR
Content Syndication
FTP Support Περιορισμένη
iCal Free Add On Free Add On
UTF-8 Support
WAI compliant Περιορισμένη
WebDAV Support
XHTML Compliant
Flexibility (Ευελιξία)
Χαρακτηριστικά Drupal Joomla RoR
CGI-Mode Support
Content Reuse Περιορισμένο
Extensible User Profiles
Interface Localization Περιορισμένο
Metadata Περιορισμένη
Multi-Lingual Content Free Add On Περιορισμένο
Multi-Lingual Content
Integration
Free Add On Free Add On
Multi System Deployment Free Add On
URL αντιγραφή Περιορισμένη
97
Διαχείριση
Χαρακτηριστικά Drupal Joomla RoR
Διαχείριση Διαφήμισης Free Add On
Asset Management Free Add On
Clipboard
Content Scheduling Free Add On
Content Staging Free Add On
Inline Administration
Διαδικτυακή Διαχείριση
Package Deployment
Subsites/Roots Free Add On
Themes/Skins
Trash
Web Statistics
Web-Based Style/Template
Management Free Add On
Web-Based Translation
Management Free Add On
Workflow Engine Περιορισμένη
Ασφάλεια
Χαρακτηριστικά Drupal Joomla RoR
Audit Trail
Captcha Free Add On Free Add On
98
Content Approval
Email Verification
Granular Privileges
Kerberos Authentication
LDAP Authentication Free Add On
Login History
NIS Authentication
NTLM Authentication Free Add On
Pluggable Authentication
Problem Notification
Sandbox
Session Management
SMB Authentication
SSL Compatible
SSL Logins
SSL pages
Versioning
Ενσωματωμένα Συστήματα
Χαρακτηριστικά Drupal Joomla RoR
Blog Free Add On
Chat Free Add On Free Add On
Ταξινόμηση Free Add On Free Add On
Διαχείριση περιεχομένου Free Add On Free Add On
99
Καταχώριση δεδομένων Free Add On Free Add On
Αναφορά βάσης δεδομένου Free Add On
Discussion / Forum Free Add On
Document Management Περιορισμένο Free Add On
Events Calendar Free Add On Free Add On Free Add On
Events Management Free Add On Free Add On
Expense Reports Free Add On
FAQ Management
File Distribution Free Add On Free Add On
Graphs and Charts Free Add On
Groupware Free Add On Free Add On
Guest Book Free Add On Free Add On Free Add On
Help Desk / Bug Reporting Free Add On Free Add On
HTTP Proxy
In/Out Board
Job Postings Free Add On Free Add On
Link Management Free Add On
Φόρμα Επικοινωνίας Free Add On Free Add On
Matrix
My Page / Πίνακας οργάνων Free Add On
Αλληγραφία Free Add On Free Add On
Έκθεση φωτογραφιών Free Add On Free Add On Free Add On
Polls
Διαχείριση προΐοντων Free Add On
100
Project Tracking Free Add On Free Add On
Μηχανή αναζήτησης
Χάρτης ιστοσελίδας Free Add On Free Add On
Stock αποθέματα Free Add On
Δημοσκοπήσεις Free Add On Free Add On
Syndicated Content (RSS)
Tests/ Quizzes Free Add On Free Add On
Time Tracking Free Add On
Συμβολή χρήστη Free Add On
Καιρός Free Add On
Web Services Front End
Wiki Free Add On Free Add On
Εμπόριο
Χαρακτηριστικά Drupal Joomla RoR
Παρακολούθηση Συνεργάτων Free Add On Free Add On
Inventory Management Free Add On Free Add On
Pluggable Payments Free Add On Free Add On
Pluggable Shipping Free Add On Free Add On
Pluggable Tax Free Add On Free Add On
Point of Sale Free Add On
Shopping Cart Free Add On Free Add On
Συνδρομές Free Add On Free Add On
Wish Lists Free Add On Free Add On
101
Συμπεράσματα
Χωρίς αμφισβήτηση το Drupal και το Joomla είναι τα δύο μεγάλα
ονόματα και οι ναυαρχίδες στον χώρο των CMS. To WaterCMS που
βασίζεται στη γλώσσα Ruby, δεν είναι τόσο διαδεδομένο και δεν έχει το
ίδιο εύρος υποστήριξης με τα άλλα δύο.
Τα βασικά πλεονεκτήματα του Joomla είναι η ευκολία στη χρήση, η
μεγάλη κοινότητα, τα πολλά extensions και η ξεκάθαρη λογική που
ακολουθεί με αυτά. Δηλαδή το component κάνει αυτό, το module εκείνο,
το plugin το τάδε κλπ. Θα προτείναμε το Joomla για ιστοσελίδες με
πολλά δεδομένα και περιεχόμενο, που χρειάζεται συνεχή ενημέρωση.
Μερικά παραδείγματα εταιρειών/ιστοσελίδων που χρησιμοποιούν το
Joomla είναι:
MTV Networks Quizilla (Social networking) -
http://www.quizilla.com
IHOP (Restaurant chain) - http://www.ihop.com
Harvard University (Educational) - http://gsas.harvard.edu
Citibank (Financial institution intranet) - Not publicly accessible
The Green Maven (Eco-resources) - http://www.greenmaven.com
Outdoor Photographer (Magazine) -
http://www.outdoorphotographer.com
PlayShakespeare.com (Cultural) - http://www.playshakespeare.com
Senso Interiors (Furniture design) - http://www.sensointeriors.co.za
Το Drupal, από την άλλη, απευθύνεται σε πιο προχωρημένους χρήστες
καθώς έχει πολλά πράγματα και πρέπει να ψάξεις που είναι το καθένα και
το πως λειτουργεί. Έχει όμως τεράστιες δυνατότητες και πρόκεται να
καλύψουν κάθε ανάγκη. Η κατηγοριοποίηση του περιεχομένου του δεν
είναι και το ευκολότερο πράγμα και ίσως μπορεί να μπερδέψει. Η
εξοικείωση μαζί του είναι απαραίτητη για την σωστή και κατάλληλη
χρήση του. Μεγάλες εταιρίες οργανισμοί καθώς και ιδρύματα
χρησιμοποιούν το Drupal:
The Whitehouse uses Drupal - see Drupal founder Dries Buytaert's
blog entry and TechPresident post (TechPresident also a Drupal
site).
102
Foreign Affairs uses Drupal
The BBC uses Drupal
The Fiancial Times uses Drupal
Ubuntu and Canonical use Drupal
Die Zeit (major German newspaper) uses Drupal
Die Welt (another major German newspaper) uses Drupal
The Cable News Network (CNN) uses Drupal
Amnesty International uses Drupal
Greenpeace uses Drupal
The US National Aeronautics and Space Administration (NASA)
uses Drupal
The North Atlantic Treaty Organisation(NATO) uses Drupal
The United Nations uses Drupal
IBM recommends Drupal
Popular Science tears out Vignette and replaced it with Drupal
Fast Company uses Drupal
America Online (AOL) uses Drupal
Sun Microsystems uses Drupal (here, too)
Novell uses Drupal
Yahoo! uses Drupal
Harvard University uses Drupal
In fact, many universities use Drupal
Fedex uses Drupal
Nike uses Drupal
Forbes uses Drupal
Warner Bros uses Drupal
20th Century Fox uses Drupal
MacWorld uses Drupal
Adobe uses Drupal (here too)
Java.net uses Drupal
RackSpace (major web hosting provider) uses Drupal
New York City mayor Mike Bloomberg uses Drupal
Former first lady and (unsuccessful) contender for the US
Democratic presidential nomination, Hillary Clinton uses Drupal
Το WaterCMS έχει λίγα πράγματα, είναι απλό αλλά και αρκετά
εύκολο. Δεν υποστηρίζει ότι τα άλλα δύο, πράγμα που φαίνεται και στους
παραπάνω πίνακες σύγκρισης. Συνήθως είναι ιδανικό για κάποια
προσωπική ιστοσελίδα ή blog κάποιου που δεν έχει ιδιαίτερες γνώσεις.
103
Μια ξεκάθαρη απάντηση στην προτίμηση για κάποιο από τα 3 CMS
δεν υπάρχει. Σίγουρα τα 2 πρώτα έχουν σημαντικό προβάδισμα αλλά όλα
κρίνονται στο τι πραγματικά χρειάζεται ο χρήστης και τις δυνατότητές
του. Οι προχωρημένοι χρήστες συνήθως τα δοκιμάζουν οι ίδιοι ώστε να
έχουν προσωπική άποψη και πιο μπορεί να καλύψει πραγματικά τις
ανάγκες τους. Αν πάλι αυτό φαίνεται δύσκολο, παρέχουμε τους
παραπάνω πίνακες για τον έλεγχο, του τι πραγματικά υποστηρίζει η κάθε
πλατφόρμα ώστε να κάνει κάποιος την τελική επιλογή του.
104
ΒΙΒΛΙΟΓΡΑΦΙΑ
1. PHP, Ruby, Perl, Java, Javascript, CSS, Python, ColdFusion,
ASP.NET Web Frameworks Tables
http://www.bestwebframeworks.com
2. Web Application Framework
http://en.wikipedia.org/wiki/Web_application_framework
3. Συστήματα Διαχείρισης Περιεχομένου (CMS)
http://www.go-online.gr/ebusiness/specials/article.html?article_id=1042
4. Drupal v6.16
http://en.wikipedia.org/wiki/Drupal
http://drupal.org
http://mydrupal.gr
5. Ruby on Rails (Ruby v1.9.1 & Rails v2.3.8)
http://en.wikipedia.org/wiki/Ruby_on_rails
http://rubyonrails.org
6. Joomla v1.5.17
http://en.wikipedia.org/wiki/Joomla
http://www.joomla.org
http://www.joomla.gr
7. Open vs Closed source
http://www.mytechcorner.com/2009/06/open-source-vs-closed-source-
cms.html
http://www.contentmanager.net/magazine/article_257_open_source_com
mercial_cms.html
8. Joomla/Drupal/WaterCMS Tutorials & Screenshots
http://www.siteground.com/site_search_results.htm?site_search_qry=tuto
rial
105
9. Πίνακες Σύγκρισης
http://www.cmsmatrix.org
10. Υλοποίηση Drupal
http://www.drupalcafe.com
11. Υλοποίηση WaterCMS
http://www.embracewater.com