Μου ανατέθηκε να στήσω ένα καινούριο ιστοτόπο (site ελληνιστί). Επειδή υπήρξε παλιότερα μια συζήτηση από τα εμπλεκόμενα άτομα, αποφασίστηκε να ακολουθηθεί η λύση του Joomla. Αυτό έγινε πριν 3,5 μήνες περίπου.
Λόγω της δουλειάς δεν μπόρεσα να ασχοληθώ με τον ιστοτόπο (το στήσιμο θα το παρείχα ως δωρεάν υπηρεσία). Εν τω μεταξύ, βγήκε η έκδοση 1.5 του Joomla, με νέα χαρακτηριστικά. Όταν κάποια στιγμή αποφάσισα να ασχοληθώ, είπα φυσικά να ξεκινήσω με το 1.5, εφόσον δεν είχα κανένα ιδιαίτερο ζόρι να έχει γίνει port στο 1.5 κάποιο συγκεκριμένο extension ή module για το 1.5. Ο ιστοτόπος δεν είχε ιδιαίτερες απαιτήσεις, είναι ιστοτόπος που παρέχει απλά πληροφορία (κείμενο, άντε και καμιά φωτογραφία ή κανένα συνημμένο). Η διάρθρωσή του αφού είχε συζητηθεί με τα εμπλεκόμενα άτομα αποφασίστηκε και ήταν μια δομή τριών επιπέδων (το μέγιστο). Δηλαδή:
1. Λαλαλα
1.1 Υπολαλαλα
1.1.1 Υποϋπολαλαλα
Δηλαδή κάθε επίπεδο μπορεί να παρέχει μια σειρά άρθρων. Ωραία ως εδώ. Στήνω το Joomla 1.5 τοπικά στο Gentoo, βλέπω τα νέα χαρακτηριστικά, utf-8, νέο interface στη διαχείριση, κατά τα άλλα, ήταν παρόμοιο με το 1.0.x. Στη διάρθρωση βλέπω ότι το Joomla υποστηρίζει τα εξής είδη:
Sections (τμήματα) -> Categories (κατηγορίες) -> Articles (άρθρα)
Η δομή αυτή είναι υποχρεωτική και έτσι ήταν και στην έκδοση 1.0.x. Δηλαδή ένα άρθρο ανήκει σε ένα τμήμα (εφόσον κατηγοριοποιηθεί κάτω από τμήμα, μπορεί και να μην ανήκει πουθενά) και υποχρεωτικά σε μια κατηγορία. Αρχίζω το στήσιμο των τμημάτων και κατηγοριών και συνειδητοποιώ ότι έχω πρόβλημα. Πώς θα κατατάξω ένα άρθρο (μια σελίδα ουσιαστικά) κάτω από ένα μόνο τμήμα, χωρίς να ανήκει σε κατηγορία; Ή πως θα κατατάξω ένα άρθρο σε περισσότερες του ενός κατηγορίες ή τμήματα; Εδώ διαπιστώνω τη θεμελιώδη έλλειψη του Joomla στον τομέα αυτόν, όπως και στον τομέα δικαιώματα και ρόλους χρηστών (που ουσιαστικά είναι και πάλι περιορισμένα).
Σταματώ εκεί και ξανασυζητώ με τους εμπλεκόμενους. Τους εξηγώ τις θεμελιώδεις αυτές ελλείψεις και αποφασίζουμε να στηθεί σε Drupal. Το Drupal υποστηρίζει τις κατηγορίες, που περιέχουν όρους (terms) σε οποιαδήποτε ιεραρχία μέσα στην κατηγορία (γονέας, παιδί, εγγόνι, κ.ο.κ.). Η διαδικασία του tagging στο Drupal μπορεί να γίνεται όπως θέλει κανείς. Ένας κόμβος (αντίστοιχα άρθρο στην ορολογία του Joomla), μπορεί να ανήκει σε οποιουσδήποτε όρους και κατηγορίες θέλεις, με αποτέλεσμα να δημιουργείς έτσι μια εικονική ιεραρχία του περιεχομένου σου. 1-0 για το Drupal.
Δικαιώματα: Το Drupal υποστηρίζει οποιονδήποτε αριθμό από ρόλους χρηστών, με κάθε ρόλο να έχει συγκεκριμένα χαμηλού επιπέδου δικαιώματα (πχ. επεξεργασία του δικού σου κόμβου ως αρχικός συγγραφέας ή δημιουργία συγκεκριμένου τύπου ύλης - content type), δημιουργώντας έτσι ένα σύστημα από ρόλους που έχουν διαβαθμίσεις δικαιωμάτων. 2-0 για το Drupal.
Με αυτά, συνειδητοποίησα για μια ακόμη φορά ότι το Drupal είναι ένα από τα καλύτερα open source CMS που υπάρχουν, με τα δύο αυτά προαναφερόμενα χαρακτηριστικά να είναι λίγα από τα ισχυρά ατού του. Το Joomla παίζει στο δικό του γήπεδο, με τα πολυάριθμα modules, extensions και themes του, αλλά και με βασικές ελλείψεις σαν αυτές που περιγράφω παραπάνω, τόσο βασικές που με απέτρεψαν να συνεχίσω το στήσιμο του ιστοτόπου. Ωστόσο, το Drupal έχει ένα ιδιαίτερα ισχυρό API για τους προγραμματιστές. Απλά δεν είχε μέχρι τώρα την απαιτούμενη προσοχή από τις εταιρίες, κάτι που φαίνεται να αλλάζει (λέγε με Acquia).