Drupal

Το **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 για την αποθήκευση του περιεχομένου και των ρυθμίσεών του.

## Ιστορία
Αρχικά γραμμένο από τον Dries Buytaert ως σύστημα πίνακα ανακοινώσεων, το Drupal μετατράπηκε σε εγχείρημα ανοικτού κώδικα το 2001. *Drupal* είναι η διατύπωση στην Αγγλική γλώσσα της Ολλανδικής λέξης "druppel", που σημαίνει «σταγόνα». Το όνομα πάρθηκε από τον ξεπερασμένο πλέον ιστοτόπο Drop.org, του οποίου ο κώδικας εξελίχθηκε στο Drupal. Ο Buytaert ήθελε να ονομάσει τον ιστοτόπο "dorp" (στα Ολλανδικά σημαίνει «χωριό», αναφερόμενος στη διάσταση της κοινότητας), αλλά έκανε ένα ορθογραφικό λάθος κατά τη διαδικασία ελέγχου του ονόματος χώρου (domain name) και τελικά σκέφτηκε ότι ακούγεται καλύτερα.

Από το Μάιο του 2006 ως τον Απρίλιο του 2007, χρήστες κατέβασαν το Drupal από τον επίσημο ιστότοπο περισσότερες από 600.000 φορές. Μια μεγάλη κοινότητα χρηστών λαμβάνει πλέον μέρος στη συνεχή εξέλιξη του Drupal.

## Σχεδίαση

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

Οι μονάδες του Drupal χρησιμοποιούνται για να «υπερβούν» τα ενσωματωμένα χαρακτηριστικά του πυρήνα, επεκτείνοντας έτσι ή και αντικαθιστώντας την εξ' ορισμού συμπεριφορά του Drupal, χωρίς την επέμβαση στον αυτούσιο κώδικα των αρχείων του πυρήνα του Drupal. Η δυνατότητα αυτή της τροποποίησης της λειτουργικότητας του πυρήνα έχει επίπτωση στην προσαρμοστικότητα του Drupal καθώς και στην ασφάλειά του, ειδικότερα σε θέματα ασφαλείας, όπως η έγχυση εντολών SQL (SQL injection).

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

## Μονάδες
Ο πυρήνας του Drupal έχει σχεδιαστεί βάση ενός συστήματος από hook, ή callback, που επιτρέπει στις γραμμένες από την κοινότητα μονάδες να εισάγουν συναρτήσεις στο μονοπάτι εκτέλεσης του Drupal.

Οι μονάδες που περιέχονται στον πυρήνα του Drupal παρέχουν στους χρήστες τη δυνατότητα να:

* υποβάλλουν, αναθεωρούν και να κατηγοριοποιούν την ύλη
* εκτελούν αναζητήσεις
* υποβάλλουν σχόλια
* λαμβάνουν μέρος σε φόρουμ συζητήσεων
* ψηφίζουν σε ψηφοφορίες
* δουλεύουν σε συνεργατικά συγγραφικά έργα
* τροποποιούν και να βλέπουν προσωπικά προφίλ
* επικοινωνούν μεταξύ τους ή και με τους διαχειριστές του ιστοτόπου
* αλλάζουν την εμφάνιση του ιστοτόπου με έτοιμες ή φτιαγμένες με το χέρι θεματικές παραλλαγές
* δημιουργούν μενού με πολλαπλά επίπεδα
* βλέπουν τη γραφική διεπαφή και τα μηνύματα στην μητρική τους γλώσσα
* παρέχουν ροές RSS
* συλλέγουν περιεχόμενο από ροές RSS άλλων ιστοτόπων
* εγγράφονται ως χρήστες και να διαχειρίζονται τους λογαριασμούς τους
* καθορίζουν ρόλους χρηστών, με τον ορισμό αδειών (permissions) στους χρήστες για τη χρησιμοποίηση επιλεγμένων χαρακτηριστικών του ιστοτόπου
* χρησιμοποιούν κανόνες πρόσβασης για την άρνηση πρόσβασης στον ιστοτόπο σε συγκεκριμένα ονόματα χρηστών, διευθύνσεις ηλεκτρονικού ταχυδρομείου και διευθύνσεις IP
* λαμβάνουν στατιστικά και αναφορές για τους διαχειριστές
* χειρίζονται θέματα λανθάνουσας μνήμης και απόπνιξης ώστε να βελτιώσουν την απόδοση του ιστοτόπου σε περιόδους μεγάλης κίνησης
* δημιουργούν και καθορίζουν διάφορα φίλτρα εισόδου και μορφότυπους ύλης
* δημιουργούν φιλικές στο χρήστη, εύκολες προς απομνημόνευση, διευθύνσεις URL (π.χ. "www.mysite.com/products" αντί για "www.mysite.com/?q=node/432")

Επιπρόσθετα, ο ιστότοπος του Drupal παρέχει εκατοντάδες δωρεάν μονάδες γραμμένες από την κοινότητα του Drupal, που παρέχουν:

* δυνατότητες συστημάτων ηλεκτρονικού εμπορίου (e-commerce)
* χαρακτηριστικά ροής εργασιών
* γκαλερί φωτογραφιών
* σελίδες ομάδων ατόμων (οργανικά γκρουπ)
* χάρτες ιστοτόπου για το Google
* αντικείμενα Amazon
* διαχείριση λιστών ηλεκτρονικού ταχυδρομείου
* ένα σύστημα διαχείρισης των συστατικών στοιχείων σχέσεων (Customer relationship management, CRM), το CiviCRM
* ενσωμάτωση με ένα "Concurrent Versions System" (CVS).

### Παρακολούθηση των εκδόσεων συστήματος

Η μονάδα **module_update**, μια σχετικά νέα μονάδα διαθέσιμη για την έκδοση 5.x (που προστίθεται και ως μέρος του πυρήνα για την 6.0), ειδοποιεί αυτόματα το διαχειριστή για τυχόν νέες εκδόσεις των εγκατεστημένων μονάδων και θεματικών παραλλαγών.

### Θεματικές παραλλαγές

Οι περισσότερες θεματικές παραλλαγές είναι γραμμένες για τη μηχανή PHPTemplate ή την XTemplate. Παλιότερες παραλλαγές χρησιμοποιούσαν γραμμένο στο χέρι κώδικα σε PHP.

Προηγούμενες εκδόσεις του συστήματος θεματικής παραλλαγής του Drupal είχαν δεχθεί κριτική ότι ήταν λιγότερο προσανατολισμένο για τη σχεδίαση και περισσότερο πολύπλοκο από άλλα συστήματα όπως το Mambo και το Plone. Η συμπερίληψη στο Drupal των μηχανών PHPTemplate και XTemplate διόρθωσαν αυτά τα προβλήματα.

### Μεταφράσεις
Τον Ιούνιο του 2011, οι μεταφράσεις για τη διεπαφή του Drupal, εκτός της (προεπιλεγμένης) Αγγλικής, είναι διαθέσιμες σε περισσότερες από 50 γλώσσες, μεταξύ των οποίων και η Ελληνική. Οι υποστηριζόμενες γλώσσες περιλαμβάνουν ορισμένες που διαβάζονται από δεξιά προς τα αριστερά, όπως τα Αραβικά και τα Εβραϊκά.

## Κριτική

Ορισμένοι χρήστες θεωρούν το Drupal δυσκολότερο στην εκμάθηση και στην εγκατάσταση συγκρινόμενο με άλλες δημοφιλείς εφαρμογές διαχείρισης περιεχομένου. Συγκεκριμένα, η πολυπλοκότητα των επιλογών των ρυθμίσεων και η σπαρτιάτικη εμφάνιση ενός ιστοτόπου του οποίου μόλις ολοκληρώθηκε η εγκατάσταση συχνά έρχονται σε αντιπαράθεση με την απλότητα εργαλείων όπως το WordPress και της πρόσφατα ανανεωμένης εμπειρίας χρήστη του Joomla. Το Drupal 5.0, που ανακοινώθηκε στις 15 Ιανουαρίου 2007, έρχεται πακέτο με ένα εγκαταστάτη διεπαφής ιστοσελίδας, με μια νέα θεματική παραλλαγή και με ένα επανασχεδιασμένο πίνακα διαχείρισης για να απαντήσει εν μέρει σε αυτές τις κριτικές. Το Drupal υποστηρίζει τη χρήση προφίλ εγκαταστάσεων με προκαθορισμένο περιεχόμενο για τον ιστοτόπο, αλλά λίγα έχουν εκδοθεί έως τώρα (2007).

Ορισμένοι προγραμματιστές ασκούν κριτική στο Drupal για την αποκλειστική χρήση διαδικασιακής PHP αντί για αντικειμενοστρεφή PHP. Το άρθρο Προγραμματισμός του Drupal από μια οπτική αντικειμενοστρέφειας εξηγεί πως αρχές του αντικειμενοστρεφούς προγραμματισμού και της έννοιας του *Aspect-oriented_programming* (AOP) εφαρμόζονται στο Drupal, παρόλο που δεν χρησιμοποιούνται τα αντικειμενοστρεφή χαρακτηριστικά της PHP. Η βελτιωμένη υποστήριξη για τον αντικειμενοστρεφή προγραμματισμό στην PHP5 υπήρξε ως ένας από τους λόγους για τα σχέδια του έργου του Drupal να αφαιρέσει την υποστήριξη για την PHP4 σε μελλοντικές εκδόσεις του λογισμικού.

## Διανομές
Προσαρμοσμένες διανομές του 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 τείνει προς αυτή την κατεύθυνση, παρέχοντας ένα σύνολο από «προφίλ εγκατάστασης» προσαρμοσμένα για συγκεκριμένους στόχους.

## Δείτε επίσης
* Σύστημα διαχείρισης περιεχομένου
* Κατάλογος Συστημάτων Διαχείρισης Περιεχομένου

## Αναφορές


## Για περαιτέρω ανάγνωση

* Crumlish, Christian. *The Power of Many: How the Living Web Is Transforming Politics, Business, and Everyday Life*. San Francisco: Sybex, 2004. ISBN 0782143466.
* Douglass, Robert T., Mike Little, and Jared W. Smith. *Building Online Communities With Drupal, phpBB, and WordPress*. New York: Springer Verlag/Apress, 2005. ISBN 1590595629.
* Gillmor, Dan. *We the Media: Grassroots Journalism by the People for the People*. Sebastopol, Calif.: O’Reilly, 2004. ISBN 0-596-00733-7.
* Graf, Hagen. *Drupal. Community-Websites entwickeln und verwalten mit dem Open Source-CMS.*  Munich: Addison-Wesley, 2006. ISBN 3827323215. 
* Mercer, David. *Drupal: Creating Blogs, Forums, Portals, and Community Websites*. Birmingham, England: Packt Publishing, 2006. ISBN 1904811809.
* Trippi, Joe. *The Revolution Will Not Be Televised: Democracy, the Internet, and the Overthrow of Everything*. New York: ReganBooks, 2004. ISBN 0-06-076155-5.
* VanDyk, John K., and Matt Westgate. *Pro Drupal Development*.  New York: Springer Verlag/Apress, 2007. ISBN 1590597559.

## Εξωτερικοί σύνδεσμοι

* Ο ιστότοπος του Drupal 
* Τεκμηρίωση για τους προγραμματιστές 
* Drupal Cookbook (for New Drupallers)
* Οργανισμός (Association) Drupal 
* Drupal tutorial σε βίντεο
* Το σύστημα διαχείρισης Drupal και γιατί να το χρησιμοποιήσετε
* Ζωντανή Προεπισκόπηση Θεματικών Παραλλαγών για Drupal
* Βοήθεια και Συμβουλές για Drupal, φιλοξενία ιστοτόπων
* myDrupal.gr Η ελληνική κοινότητα Drupal
* Ελληνικά video tutorials για το drupal

Κατηγορία:Ελεύθερο λογισμικό
Κατηγορία:Συστήματα διαχείρισης περιεχομένου
Κατηγορία:Λογισμικό ανάπτυξης εφαρμογών διαδικτύου