Γιατί να επιλέξει κανείς το Drupal ως υποδομή για μια Κυβερνητική Εφαρμογή

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Το Drupal 7 είναι ένα ευέλικτο, αποδοτικό, ασφαλές και τεχνολογικά ώριμο Σύστημα Διαχείρισης Περιεχομένου (CMS) το οποίο χρησιμοποιείται εκτεταμένα ως βάση για απαιτητικές διαδικτυακές εφαρμογές στο χώρο της εκπαίδευσης, της ηλεκτρονικής διακυβέρνησης και σε πολλά άλλα επιχειρηματικά πεδία.
Παρακάτω παρατίθεται μια συνοπτική λίστα με τα κυριότερα χαρακτηριστικά, λειτουργίες και ιδιότητες που καθιστούν την επιλογή του Drupal CMS ιδιαίτερα ελκυστική:

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

2 Εξαιρετική Συμβατότητα με διαφορετικές Τεχνολογίες Υποδομής
Το Drupal CMS παρέχει εξαιρετικά χαρακτηριστικά συμβατότητας καθώς συνεργάζεται με διαφορετικά λειτουργικά συστήματα (όπως Linux, Windows, MacOS), με διαφορετικές τεχνολογίες HTTP Server (όπως Apache, Nginx ή Microsoft IIS HTTP Server) με διαφορετικές υλοποιήσεις της PHP (Zend ή HHVM PHP με ή χωρίς χρήση APC και FPM) και με διαφορετικές σχεσιακές βάσεις δεδομένων (MySQL, PostgreSQL, MariaDB κ.α.).

3 Αρθρωτή Αρχιτεκτονική και άρτια Προγραμματιστική Διεπαφή (API)
Το Drupal CMS είναι δομημένο με αρθρωτή (modular) αρχιτεκτονική. Τo πλήθος των modules για την έκδοση 7 που παρέχονται τόσο στην βασική έκδοση είτε ως πρόσθετα από την κοινότητα (contributed modules) ξεπερνούν τις 10.000. Τα modules είναι σχεδιασμένα ώστε να επεκτείνουν την λειτουργικότητα του Drupal παρέχοντας συγκεκριμένες λειτουργίες. Οι μηχανικοί λογισμικού που αναπτύσσουν μια εφαρμογή Drupal μπορούν να χρησιμοποιήσουν μόνο τα δομικά χαρακτηριστικά (modules) που απαιτούνται για την συγκεκριμένη εφαρμογή, δίχως να προσθέτουν επιπλέον φόρτο για λειτουργίες που δεν θα χρησιμοποιηθούν. Επιπλέον καθώς τα modules κατασκευάζονται ώστε να χρησιμοποιηθούν σε πολλές διαφορετικές εφαρμογές προωθείται η υψηλή ποιότητά τους, η ασφάλεια τους και η ευελιξία τους.
Ακόμα το drupal διαθέτει εξαιρετική τεκμηρίωση για την προγραμματιστική διεπαφή του (API documentation) ώστε οι μηχανικοί λογισμικού να μπορούν να δημιουργήσουν με ένα τρόπο ομογενή και προβλέψιμο custom modules ειδικά για τις ανάγκες μιας συγκεκριμένης εφαρμογής.
Το Drupal API προωθεί την υψηλή ποιότητα κώδικα των modules αλλά και την δυνατότητα συντήρησής του με την χρήση των Hooks. Η χρήση των hooks επιτρέπει στους προγραμματιστές να αλλάξουν την συμπεριφορά της εφαρμογής δίχως όμως να απαιτείται να τροποποιούν τον βασικό κώδικα του Drupal ή των Contributed Modules.
Δηλαδή τόσο το Drupal Core όσο και τα Contributed Modules μπορούν να αναβαθμιστούν εύκολα ώστε να καλυφθούν τυχόν κενά ασφαλείας, σφάλματα ή ελλείψεις δίχως να επηρεάζουν τις λειτουργίες που έχουν τροποποιηθεί με την χρήση των Hooks.

4 Ανεπτυγμένο Υποσύστημα Διαχείρισης της Δομής του Περιεχομένου
Το Drupal διαθέτει το πλέον ανεπτυγμένο υποσύστημα διαχείρισης της δομής του περιεχομένου στην κατηγορία των CMS συστημάτων. Ειδικότερα υιοθετεί την έννοια «οντότητα» για κάθε αντικείμενο περιεχομένου. Ως περιεχόμενο ορίζεται γενικά ό,τι μπορεί να καταχωρήσει κάποιος χρήστης στην εφαρμογή.
Οι τυπικές οντότητες που ορίζονται είναι:
• Κόμβοι περιεχομένου (content nodes) – Αποτελεί τον βασικό τύπο οντότητας περιεχομένου. Τυπικά το drupal περιέχει δύο υποτύπους (bundles ή αλλιώς content types) αυτού του τύπου τα Basic Pages και τα Articles. Οι διαχειριστές μπορούν να προσθέσουν όμως απεριόριστους υπο-τύπους.
• Όροι Ταξινόμησης (taxonomy terms) – Οι όροι ταξινόμησης χρησιμοποιούνται για τον χαρακτηρισμό του περιεχομένου. Κάθε υπο-τύπος (bundle ή αλλιώς vocabulary) υποστηρίζει την ιεραρχική καταχώρηση διαφορετικών όρων. Οι διαχειριστές μπορούν να δημιουργήσουν διαφορετικά vocabularies που τυπικά μοντελοποιούν ανεξάρτητες διαστάσεις χαρακτηρισμού όλων ή κάποιων content types.
• Στοιχεία Μενού (menu items) – Ο τύπος αυτός είναι παρόμοιος με τον όρο ταξινομίας, δηλαδή οι οντότητες καταχωρούνται σε ένα ιεραρχικά δομημένο δένδρο, αλλά είναι περισσότερο προσανατολισμένος στην παραγωγή των μενού πλοήγησης της εφαρμογής. Για τον λόγο αυτό το περιεχόμενο αυτού του τύπου οντότητας γίνεται cached σε επίπεδο εφαρμογής για λόγους απόδοσης.
• Χρήστες (Users) – Οι χρήστες στο Drupal αποτελούν ακόμα ένα τύπο οντότητας περιεχομένου. Με τον τρόπο αυτό και με την χρήση των πεδίων όπως περιγράφεται παρακάτω επιτυγχάνεται μεγάλη ευελιξία στο ποια στοιχεία μπορούν να αποτελούν καταχαρούμενα χαρακτηριστικά για κάθε χρήστη.
• Σχόλια (Comments) – Σχόλια σε ιεραρχικό νήμα που μπορούν να προσθέσουν οι χρήστες σε άλλες οντότητες περιεχομένου.
• Αρχεία (Files) – π.χ. εικόνες ή συνημμένα έγγραφα σε άλλες οντότητες.

Η ενοποίηση αυτή επιταχύνεται στο core του drupal και έτσι η προγραμματιστική διεπαφή του επιτρέπει στους προγραμματιστές εξαιρετική ευελιξία στην ανάπτυξη modules καθώς ο απαιτούμενος κώδικας είναι περισσότερο επαναχρησιμοποιήσιμος, ευανάγνωστος και διαχειρίσημος.
Αυτό πρακτικά σημαίνει ότι τα modules και κατ’ επέκταση η προσφερόμενες λειτουργίες παρουσιάζουν μεγαλύτερη ομοιογένεια και συμπεριφέρονται περισσότερο προβλέψιμα ακόμα και σε διαφορετικές περιπτώσεις.
Ακόμα τυπικά τα modules του drupal είναι πιο ασφαλή από ότι σε άλλα CMS αφού τα θέματα δικαιωμάτων ορίζονται σε επίπεδο οντότητας από δοκιμασμένο πυρήνα του Drupal και όχι σε custom δομές του εκάστοτε module του οποίου την ευθύνη έχει ο εκάστοτε συγγραφέας του.
Το σημαντικότερο όμως χαρακτηριστικό των οντοτήτων είναι ότι διαχειριστές της εφαρμογής έχουν εξαιρετικό έλεγχο στην μοντελοποίηση μιας φυσικής έννοιας σε κάποιο τύπο οντότητας. Ειδικότερα οι διαχειριστές έχουν την δυνατότητα να προσθέσουν μέσα από εύχρηστες διαχειριστικές φόρμες διαφορετικά «πεδία» σε οντότητες ανάλογα με τον τύπο (entity type) τους ή τον υπο-τύπο τους (entity bundle) διαφοροποιώντας έτσι το περιεχόμενο που μπορεί να μοντελοποιήσει και να καταχωρήσει.
Τα πεδία μπορεί να είναι είτε υποχρεωτικά κατά την εισαγωγή είτε προαιρετικά είτε ακόμα να εξαρτούνται από την τιμή κάποιου άλλου πεδίου που έχει συμπληρωθεί στην συγκεκριμένη οντότητα. Ακόμα μπορούν να λαμβάνουν και να καταχωρούν μόνο μια τιμή ή ένα πλήθος τιμών (πχ πολλά διαφορετικά τηλέφωνα για μια οντότητα τύπου χρήστη)
Το Drupal υποστηρίζει μια μεγάλη πληθώρα πεδίων που καλύπτουν σχεδόν κάθε ανάγκη μοντελοποίησης. Ενδεικτικά αναφέρονται μερικοί από τους τύπους πεδίων που υποστηρίζονται είτε από το drupal core είτε με την προσθήκη κάποιου contributed module.
• Αριθμοί
• Απλό Κείμενο
• Μορφοποιημένο Κείμενο (πχ HTML)
• Εικόνα ή άλλα αρχεία
• Αναφορά σε όρο ταξινόμησης ή γενικά σε άλλη οντότητα
• Υπερ-σύνδεσμοι (Links)
• Ημερομηνίες
• Email
• URL διευθύνσεις
• Γεωγραφικές συντεταγμένες
• Πεδίο βαθμολογίας (rating)
• Διασυνδεδεμένα Media (πχ Youtube Videos)
• Υπολογιζόμενα πεδία (δεν εισάγονται από τους χρήστες)
Κάθε τύπος πεδίου εμπεριέχει κανόνες για την επαλήθευση (validation) της καταχωρούμενης από τους χρήστες τιμής (πχ το email field κάνει έλεγχο ότι η τιμή που καταχώρησε κάποιος χρήστης έχει σωστή μορφή αλλιώς του εμφανίζει κατάλληλο μήνυμα σφάλματος)

Εκτός από τα πεδία κάθε οντότητα ανάλογα με τον τύπο της διαθέτει και κάποιες βασικές ιδιότητες (πχ οντότητες τύπου content node διαθέτουν τις ιδιότητες τίτλος, συγγραφέας, ημερομηνία/ώρα δημιουργίας, ημερομηνία/ώρα τελευταίας επεξεργασίας, publishing status, γλώσσα κ.α. βασικές ιδιότητες)

Τέλος το drupal σε συνδυασμό με κάποιο εγκατεστημένο module είναι δυνατό να ορίζει επιπλέον ειδικούς τύπους οντοτήτων όπως:
• Ομάδες Χρηστών (Groups)
• Φόρμες Συλλογής Δεδομένων (Webforms)
• Προϊόντα ή ψηφιακές συνδρομές (ecommerce product)
• Ευρετήρια Αναζήτησης (Search API index)

5 Άρτια Γραφική Διεπαφή Χρήστη (UI)
Το Drupal διαχωρίζει το περιεχόμενο από την παρουσίασή του. Ειδικότερα το Drupal core ενσωματώνει templating μηχανισμό βασισμένο στην PHP που επιτρέπει την ανάπτυξη γραφιστικών θεμάτων (theme modules). Το ενεργοποιημένο γραφιστικό θέμα ορίζει τον τρόπο παρουσίασης του περιεχομένου.
Ορισμένα από τα themes που είναι διαθέσιμα ως contributed modules προσφέρουν όλα τα χαρακτηριστικά εκείνα που απαιτούνται από μια άρτια, σύγχρονη γραφική διεπαφή UI. (πχ τα modules “boostrap” ή “zen”)
• Συμμόρφωση με τα διεθνείς οδηγίες προσβασιμότητας για τον παγκόσμιο ιστό (WAG)
• Mobile First σχεδιασμό που εξασφαλίζει βέλτιστη προσαρμογή σε κινητές συσκευές με οθόνη περιορισμένου μεγέθους (responsive design)
• Κώδικα συμμορφωμένο με το HTML5 standard
• Υποστήριξη CSS precompilers (πχ LESS ή SASS) για την καλύτερη οργάνωση και διαχειρισιμότητα του κώδικα για τα Stylesheets
• Υποστήριξη παλαιών browsers με την βοήθεια JavaScript compatibility scripts
• Υποστήριξη πλοήγησης με keyboard shortcuts (πχ για μενού ή στοιχεία φόρμας)
• Υποστήριξη ενεργής διαδρομής πλοήγησης (breadcrumb)
Οι προγραμματιστές της εφαρμογής μπορούν να δημιουργήσουν ένα custom sub-theme module ώστε να εξειδικεύσουν την παρουσίαση και να καλύψουν πλήρως τις αισθητικές και λειτουργικές ανάγκες της διεπαφής χρήστη.
Κάθε theme ορίζει ένα σύνολο από διαφορετικές περιοχές (regions) οι οποίες αποτελούν μια κατάτμηση του χώρου της γραφικής διεπαφής. Τυπικά ορίζονται τα παρακάτω regions:
• Κύρια Περιοχή περιεχομένου
• Περιοχή Κεφαλίδας
• Περιοχή Μενού Πλοήγησης
• Περιοχές Πλευρικών ζωνών
• Περιοχή προβολής λαθών και ενδείξεων
• Περιοχή υποσέλιδου
Ανάλογα με τις γραφιστικές ανάγκες της εφαρμογής τα regions μπορούν να τροποποιηθούν ώστε να εμφανίζονται με συγκεκριμένο στυλ ή ακόμα να προστεθούν/αφαιρεθούν regions
Ακόμα το Drupal επιτρέπει τον ορισμό ανεξάρτητων επαναχρησιμοποιήσιμων δομικών συστατικών (blocks) τα οποία μπορούν να επικολληθούν σε κάποιο από τα regions που ορίζει το χρησιμοποιούμενο theme module.
Τα blocks είναι δυνατό να περιέχουν στατικό HTML (πχ ένα ενημερωτικό κείμενο ή ένα banner) είτε περιεχόμενο - λειτουργίες που παράγονται δυναμικά από κάποιο εγκατεστημένο module (πχ Φόρμα login χρήστη, προβολή ενός μενού vocabulary κ.α.)
Με την χρήση των regions και τον blocks οι διαχειριστές της εφαρμογής έχουν εξαιρετικό έλεγχο στην παρουσίαση της Εφαρμογής δίχως να απαιτούνται εξειδικευμένες τεχνικές γνώσεις προγραμματισμού αφού οι ρυθμίσεις πραγματοποιούνται μέσα από διαχειριστικές φόρμες.
Τέλος το Drupal εκμεταλλεύεται ειδικές βιβλιοθήκες επεξεργασίας εικόνας (πχ php-gd ή imagick) ώστε να μετατρέψει τις εικόνες σε κατάλληλη μορφή για την ομοιογενή και αποδοτική παρουσίασή τους (πχ resizing, crop, αποχρωματισμός, προσθήκη υδατογραφήματος).

6 Πλήρες Υποσύστημα Χρηστών – Ρόλων – Δικαιωμάτων Πρόσβασης
Το Drupal CMS διαθέτει ένα από τα πιο ευέλικτα και δοκιμασμένα υποσυστήματα χρηστών, ρόλων και δικαιωμάτων.
Η Αυθεντικόποιηση (Authectication) των χρηστών πραγματοποιείται χρήση ασφαλούς κρυπτογραφίας SHA των διαπιστευτηρίων κωδικών πρόσβασης και ακόμα με την χρήση contributed modules μπορεί να επιτευχθεί υψηλή διαλειτουργικότητα με τρίτα συστήματα authentication (πχ LDAP, oAuth2, Sibboleth, OpenId, CAS κ.α.) για την επίτευξη Single Sign On ή δυνατότητα σύνδεσης με social media accounts (πχ google, facebook, linkedin κ.α.)
Οι διαχειριστές της εφαρμογής μπορούν να δημιουργήσουν εύκολα, μέσα από ειδικές κεντρικές διαχειριστικές φόρμες, ρόλους δικαιωμάτων που αντιστοιχούν σε ένα υποσύνολο δικαιωμάτων πρόσβασης. Έπειτα μπορούν να αποδώσουν έναν ή περισσότερους ρόλους σε συγκεκριμένους χρήστες.
Μπορούν ακόμα να ορίσουν τα αυτοματοποιημένα μηνύματα εγγραφής και αλλαγής κατάστασής τους, τα οποία θα λαμβάνουν οι χρήστες αλλά και να μεταβάλλουν εύκολα την κατάσταση ενός χρήστη (πχ ενεργός ή μπλοκαρισμένος)
Δηλαδή, τα δικαιώματα πρόσβασης μπορούν να αποδοθούν σε συγκεκριμένους χρήστες που κατέχουν κάποιο συγκεκριμένο ρόλο. Τα δικαιώματα μπορούν να παρέχουν πρόσβαση στην προβολή ή και την δυνατότητα επεξεργασίας (δημιουργία, επεξεργασία ή διαγραφή) και ορίζονται σε επίπεδο τύπου οντότητας, σε επίπεδο πεδίων των οντοτήτων ή ακόμα επίπεδο συγκεκριμένης οντότητας αν αυτό είναι επιθυμητό.
Δεν τίθενται περιορισμοί στο πλήθος των χρηστών, των ρόλων ή των δικαιωμάτων που οι διαχειριστές της Εφαρμογής μπορούν να ορίσουν.
Ο χρήστης που δημιούργησε μια συγκεκριμένη οντότητα (author) μπορεί ακόμα να διαφοροποιηθεί και να έχει επιπλέον δικαιώματα σε αυτή την οντότητα από αυτά που ορίζουν οι ρόλοι που του έχουν αποδοθεί.
Ακόμα με την βοήθεια του module "organic groups" μπορούν να δημιουργηθούν ομάδες συγκεκριμένων χρηστών οι οποίες μπορεί να έχουν επιπλέον δικαιώματα σε συγκεκριμένους τύπους οντοτήτων που ανήκουν στην ομάδα.
Επίσης δικαιώματα μπορούν να αποδοθούν στην χρήση λειτουργιών που μπορεί να προσφέρει ένα εγκατεστημένο module (πχ χρήση στην περιοχή διαχείρισης της δομής του περιεχομένου ή πρόσβαση στην γενική σελίδα καθορισμού δικαιωμάτων, πρόσβαση σε μια δυναμική προβολή views, χρήση ενός συγκεκριμένου block κ.α.)
Τέλος με την βοήθεια του module "workflow" μπορούν να ορισθούν δικαιώματα προβολής ή επεξεργασίας σε οντότητες ανάλογα με την τρέχουσα κατάστασή τους (πχ χρήστες με το ρόλο “συγγραφέας περιεχομένου” είναι δυνατό να δικαίωμα να τροποποιήσουν μια οντότητα μόνο όσο αυτή βρίσκεται σε κατάσταση «μη-εγκεκριμένο» αλλά μόνον οι χρήστες με τον ρόλο «υπεύθυνος έγκρισης» να μπορεί να τις επεξεργασθεί όταν αυτές βρίσκονται στην κατάσταση «εγκεκριμένο». Περισσότερα σχετικά με την δυνατότητα διαχείρισης των ροών εργασίας αναφέρονται σε επόμενη παράγραφο.

7 Αποδοτικοί μέθοδοι Εισαγωγής - Επεξεργασίας Περιεχομένου
Το Drupal εκμεταλλεύεται την βασική υποδομή των fieldable entities και το υποσύστημα theming ώστε να παρέχει εύχρηστες και διαισθητικές φόρμες καταχώρησης – επεξεργασίας του περιεχομένου.
Ειδικότερα κάθε πεδίο ενσωματώνει εναλλακτικά εργαλεία εισαγωγής (input widgets) ανάλογα με τον τύπο του (πχ μια ημερομηνία μπορεί να εισαχθεί με την βοήθεια ενός html textbox input ή ενός jquery αναδυόμενου ημερολογίου επιλογής, ανάλογα ένα πεδίο τύπου ταχυδρομικής διεύθυνσης επιτρέπει στον χρήστη να εισάγει τιμές είτε με την χρήση συνδυασμού cascading λιστών προσδιορισμού χώρας – περιοχής και html text input για την ταχυδρομική διεύθυνση και τον Τ.Κ. είτε με την βοήθεια διαδραστικού χάρτη επιλογής σημείου)
Ειδικά για τα πεδία τύπου μορφοποιημένου κειμένου μπορεί να εγκατασταθεί ως module οποιοσδήποτε από τους πλέον δημοφιλείς WYSWYG κειμενογράφους (πχ CKEditor, nice editor, tinymce κ.α.) που δίδουν στους χρήστες την επιλογή να μορφοποιήσουν το κείμενο εύκολα με την βοήθεια ειδικού toolbar. Παράλληλα οι διαχειριστές μπορούν να καθορίσουν ορισμένα φίλτρα δρουν στο εισαγόμενο από τον χρήστη μορφοποιημένο κείμενο πριν αυτό καταχωρηθεί προκειμένου να αφαιρέσουν ανεπιθύμητα χαρακτηριστικά (πχ HTML syntax λάθη, εικόνες, ανεπιθύμητα στυλ, κώδικα javascript κ.α.) Τα φίλτρα εξασφαλίζουν την ποιότητα και την ομοιογένεια του περιεχομένου.
Τέλος οι διαχειριστές της Εφαρμογής μπορούν να ορίσουν inline οδηγίες βοήθειας συμπλήρωσης για κάθε τύπο οντότητας περιεχομένου ή ακόμα για διαφορετικό πεδίο τους.

8 Ευέλικτη υποδομή για την αναζήτηση του Περιεχομένου
Το Drupal διαθέτει ενσωματωμένη υποδομή για την text αναζήτηση περιεχομένου βάση τίτλου. Η υποδομή εκμεταλλεύεται SQL indexes προκειμένου να είναι αποδοτική.
Επιπλέον σε συνδυασμό με το module “Search API” το drupal μπορεί να υποστηρίξει
• full text search που περιλαμβάνει indexes πολλαπλών πεδίων
• εξελιγμένο search ranking με βάρη που μπορούν να καθορίσουν οι διαχειριστές για κάθε indexed πεδίο ανάλογα με την σημασία του
• δυνατότητα να γίνεται indexed το περιεχόμενο και των επισυνημμένων αρχείων των αναζητούμενων οντοτήτων (πχ αρχεία doc, docx, xls, xlsx, pdf, txt)
• Δυνατότητα καθορισμού λέξεων μικρής σημασίας που δεν γίνονται indexed (stop words) όπως συντακτικοί σύνδεσμοι ή κοινές λέξεις
• Δυνατότητα καθαρισμού της HTML markup του περιεχομένου πριν γίνει indexed
• Δυνατότητα να γίνει case insensitive αναζήτηση σε συγκεκριμένα πεδία
• Δυνατότητα παραγωγής του αποσπάσματος που βρέθηκε ο όρος αναζήτησης σε κάθε αποτέλεσμα (search fragment)
• Δυνατότητα λειτουργίας με διασύνδεση σε εξωτερικό εξειδικευμένο server αναζήτησης Apache Solr
• Δυνατότητα ορισμού Search Facets που δίνουν την δυνατότητα αναζήτησης με πολλαπλές ανεξάρτητες διαστάσεις κατηγοριοποίησης ταχύτατα.

9 Δυναμική παρουσίαση περιεχομένου (Views)
Η δυναμική παρουσίαση του περιεχομένου με τη χρήση του “Views” module αποτελεί μία από τις σημαντικότερες και πλέον ευέλικτες λειτουργίες του Drupal. Ειδικότερα το Drupal σε συνδυασμό με το contributed module views αυτό επιτρέπει στους διαχειριστές να καθορίσουν φίλτρα για την παρουσίαση του περιεχομένου με διαφορετικούς τρόπους. Κάθε δυναμική προβολή που δημιουργούν οι διαχειριστές μέσα από την φόρμα διαχείρισης του module παράγει αυτόματα τον απαιτούμενο SQL κώδικα αλλά και τo HTML που απαιτείται για την δυναμική παρουσίαση του περιεχομένου σύμφωνα με της ανάγκες της εφαρμογής.
Τυπικά τα αποτελέσματα μια δυναμικής προβολής εμφανίζονται ως μια σελίδα της εφαρμογής είτε ως ένα block.
Με τις δυναμικές προβολές οι διαχειριστές της εφαρμογής μπορούν να δημιουργήσουν εύκολα και αξιόπιστα συγκεντρωτικές αναφορές, λίστες με σχετιζόμενο περιεχόμενο, δυναμικά γραφήματα, προβολές περιεχομένου σε χάρτη, ημερολόγιο κ.α.
Οι δυναμικές προβολές υποστηρίζουν πολλαπλούς τρόπους φιλτραρίσματος του περιεχομένου (σε αντιστοιχία με την λειτουργία WHERE της SQL) αλλά και ορισμού της σειράς προβολής των αποτελεσμάτων (σε αντιστοιχία με την λειτουργία ORDER BY της SQL), ανάλογα με της τιμές πεδίων ή ιδιοτήτων των οντοτήτων
Ακόμα οι δυναμικές προβολές υποστηρίζουν ορισμό σχέσεων μεταξύ διαφορετικών οντοτήτων (σε αντιστοιχία με την λειτουργία JOIN της SQL), αυτόματη αφαίρεση διπλότυπων αποτελεσμάτων (σε αντιστοιχία με την λειτουργία DISTINCT της SQL) αλλά και ομαδοποίηση (aggregation) των αποτελεσμάτων (σε αντιστοιχία με την λειτουργία GROUP BY της SQL)
Οι τιμή ενός φίλτρου μπορεί να παρέχεται:
• Ως στατική προκαθορισμένη τιμή από τον διαχειριστή που δημιούργησε την συγκεκριμένη προβολή
• Ως φόρμα επιλογής που μπορούν να χρησιμοποιήσουν οι χρήστες της εφαρμογής προκειμένου να επηρεάσουν τα αποτελέσματα δυναμικά (exposed filter)
• Ως εξωτερικό όρισμα (argument). Τυπικά η δυναμικές προβολές υποστηρίζουν εξωτερικά ορίσματα από την διεύθυνση URL, από το πλαίσιο αναφοράς (context) –π.χ. το αναγνωριστικό του χρήστη που χρησιμοποιεί την προβολή την συγκεκριμένη στιγμή – ή ακόμα με προσαρμοσμένη λογική ειδικά για τις ανάγκες της Εφαρμογής (custom php)
To module views σε συνδυασμό με το module “views bulk operations” επιτρέπει την δημιουργία δυναμικών προβολών για την μαζική επεξεργασία του περιεχομένου. (πχ μπορεί να δημιουργηθεί μια προβολή που θα επιτρέπει σε διαχειριστές να φιλτράρουν το περιεχόμενο που έχει δημιουργηθεί από συγκεκριμένους χρήστες και ύστερα από μια συγκεκριμένη ημερομηνία και να αλλάξουν σε όλα τα αποτελέσματα την τιμή της ιδιότητας published status, την τιμή ενός συγκεκριμένου πεδίου, ή ακόμα να διαγράψουν μαζικά τις αντίστοιχες οντότητες.
Τέλος σε συνδυασμό με εξειδικευμένα modules μια δυναμική προβολή μπορεί να εξαχθεί σε αρχείο (πχ pdf, excel, csv, word document)

10 Ασφάλεια, Ακεραιότητα και Αυθεντικότητα Δεδομένων
Η ασφάλεια και η ακεραιότητα των δεδομένων σε μια εφαρμογή βασισμένη στο Drupal διασφαλίζεται από μια συλλογή συνεργαζόμενων εξειδικευμένων μηχανισμών. Πολλοί από αυτούς εμπεριέχονται στο Drupal Core ενώ άλλοι προσφέρονται ως Contributed Modules.
Αναφέρονται ενδεικτικά μερικοί από τους μηχανισμούς αυτούς:
• Το Drupal διαθέτει ώριμο και δοκιμασμένο session management με χρήση CSRF tokens για κάθε αίτηση για την εμφάνιση οποιασδήποτε φόρμας. Αυτός ο μηχανισμός διασφαλίζει το σύστημα από επιθέσεις τύπου Cross-Site-Scripting ιδιαίτερα όταν η φόρμες κάνουν χρήση ajax. Η διάρκεια ζωής του session είναι ρυθμιζόμενη από τους διαχειριστές της εφαρμογής. Μικρότερες τιμές ζωής σε συνδυασμό με την χρήση HTTPS παρέχουν σημαντική προστασία από επιθέσεις session hijacking. Δεν τίθεται περιορισμός στον αριθμό των ανοικτών sessions από την εφαρμογή (περιορίζεται μόνο από τις δυνατότητες του hardware και του λειτουργικού συστήματος)
• To Drupal διαθέτει ώριμο και δοκιμασμένο και προγραμματιστικά επεκτάσιμο μηχανισμό Form Validation. Κάθε πεδίο οντότητας μπορεί να ρυθμιστεί ώστε να δέχεται μόνο τιμές που πληρούν αυστηρά καθορισμένα κριτήρια (πχ επιλογή μόνο προκαθορισμένων τιμών με χρήση στατικής λίστας επιλογών δυναμικής λίστας επιλογών ή autocomplete, μέγιστη τιμή για αριθμητική τιμή για αριθμητικά δεδομένα, έλεγχος ότι η ημερομηνία αρχής είναι νεότερη από την ημερομηνία τέλους, έλεγχος μοναδικότητας κ.α.). Ο μηχανισμός υποστηρίζει επίσης εύληπτα μηνύματα λάθους και highlighting των στοιχείων που χρήζουν διόρθωσης για την διευκόλυνση των χρηστών.
• Το Drupal διαθέτει ώριμο και δοκιμασμένο μηχανισμό καθαρισμού των εισαγώμενων τιμών σε φόρμες ή σε URL arguments για την αποφυγή επιθέσεων τύπου injection
• Υποστηρίζεται private filesystem. Τα αρχεία που αποθηκεύονται στο ιδιωτικό filesystem δεν είναι άμεσα προσβάσιμα στους χρήστες αλλά μόνο αφού αυθεντικοποιηθούν και διαπιστωθεί ότι διαθέτουν τα κατάλληλα δικαιώματα. Τα αρχεία αυτά με την βοήθεια εξειδικευμένων πρόσθετων module μπορεί ακόμα να θωρακιστούν περεταίρω με ισχυρό αλγόριθμο συμμετρικής κρυπτογραφίας (πχ AES-256)
• Το Drupal διαθέτει ώριμο και δοκιμασμένο μηχανισμό μονόδρομης κρυπτογράφησης SHA (hashing) των διαπιστευτηρίων των χρηστών (credentials) με παρεμετροποιήσιμη salt τιμή. H χρήση του salt καθιστά εξαιρετικά δύσκολη την αποκρυπτογράφηση ακόμα και με επιθέσεις που κάνουν χρήση προυπολογισμένων rainbow tables.
• Το Drupal ενσωματώνει περιγραφικά αρχεία .htaccess που ρυθμίζουν αυτόματα τον HTTP server ώστε να αποφευχθούν συνήθη κενά ασφαλείας (πχ directory listing, πρόσβαση σε αρχεία ρυθμίσεων ή private files, προβλήματα από την κακή εφαρμογή του πιστοποιητικού SSL για HTTPS συνδέσεις κ.α.)
• Το Drupal διαθέτει ώριμο και δοκιμασμένο και παραμετροποιήσιμο μηχανισμό αυτόματου αποκλεισμού χρηστών ή IP διεύθυνσης αν διαπιστωθεί επίθεση brute force attack κατά την προσπάθεια σύνδεσης.
Ακόμα το Drupal υποστηρίζει την καταγραφή ιστορικών εκδόσεων του περιεχομένου (revisions) οπότε να είναι δυνατή η ανάκτηση μιας παλαιότερης έκδοσης σε περίπτωση λάθους εισαγωγής αλλά και η καταγραφή των αλλαγών ανά χρήστη που επεξεργάστηκε κάθε οντότητα.
Πρόσθετα το drupal σε συνδυασμό με ειδικά contributed modules παρέχει αξιόπιστους μηχανισμούς αποφυγής επιθέσεων spam (πχ με την μέθοδο captcha, χρήση stopwords στην φόρμα επικοινωνίας κ.α.).
Παράλληλα είναι δυνατή η εγκατάσταση ειδικών modules που ελέγχουν την ακεραιότητα του κώδικα ώστε να εντοπίζονται οι όποιες αλλοιώσεις από κακόβουλο λογισμικό που εκμεταλλεύονται τυχόν λανθασμένη ρύθμιση των δικαιωμάτων write του HTTP server.
Τέλος το drupal διαθέτει ολοκληρωμένο και πλήρως παραμετροποιήσιμο μηχανισμό συμβάντων και λαθών και debugging πληροφοριών (watchdog) με δυνατότητα file logging (syslog) ή database logging.

11 Μοντελοποίηση Ροών Εργασίας και Αυτοματισμοί
Το Drupal σε συνδυασμό με το module “workflow” μπορεί να μοντελοποιήσει με ευκολία σύνθετες ροές εργασίας. Ειδικότερα η οντότητες μπορούν να βρίσκονται κάθε στιγμή σε μια συγκεκριμένη κατάσταση από ένα σύνολο πιθανών καταστάσεων που καθορίζουν οι διαχειριστές της εφαρμογής.
Οι χρήστες ανάλογα με τον ρόλο τους αλλά και την τρέχουσα κατάσταση μιας οντότητας περιεχομένου μπορούν να έχουν ειδικά δικαιώματα πρόσβασης σε αυτή.
Ακόμα, με κατάλληλη ρύθμιση, οι χρήστες ανάλογα με τον ρόλο τους μπορούν να μεταβάλουν την τρέχουσα κατάσταση μόνο σε συγκεκριμένες άλλες διαχωρίζοντας έτσι την ευθύνη μιας οντότητας ανάλογα με την τρέχουσα κατάστασή της.
Μπορούν ακόμα να καθοριστούν συγκεκριμένα αναμενόμενα γεγονότα με την χρήση του module “rules” που αφορούν συγκεκριμένες μεταβολές καταστάσεων (πχ όταν μια οντότητα με τύπο node και υπο-τύπο άρθρο μεταβεί από την κατάσταση “πρόχειρο” στην κατάσταση “προς έλεγχο” τότε μπορεί να ορισθεί η αυτόματη αποστολή ενός ενημερωτικού email προς τους χρήστες με ρόλο “ελεγκτής ποιότητας άρθρων»
Επίσης με τη χρήση του rules μπορούν να ορισθούν αυτόματα εκτελέσιμες εργασίες (αυτοματισμοί) που έχουν έναυσμα άλλου είδους γεγονότα (πχ όταν κάποιος χρήστης συνδεθεί στο σύστημα για πρώτη φορά, όταν η τιμή κάποιου πεδίου ξεπερνά κάποια προκαθορισμένη τιμή, όταν καταχωρηθεί περιεχόμενο συγκεκριμένου τύπου και πολλά άλλα). Γενικά κάθε module μπορεί να ορίζει ένα πλήθος από γεγονότα (events), συνθήκες (conditions) ή αυτόματες εργασίες (actions) τα οποία μπορούν να συνδυαστούν στο πλαίσιο διαχείρισης του module rules.
Τέλος το Drupal διαθέτει χρονοπρογραμματισμού βασισμένο που μπορεί να αξιοποιηθεί για την προγραμματισμένη εκτέλεση εργασιών με προκαθορισμένη συχνότητα (ανάλογο του system cron σε unix συστήματα)

12 Αναλυτικά Στατιστικά Επισκεψιμότητας
Το Drupal είναι δυνατό να ρυθμιστεί ώστε να καταγράφει στατιστικά επισκεψιμότητας ανά σελίδα ή ανά οντότητα στην σχεσιακή βάση δεδομένων του ώστε να μπορούν να δημιουργηθούν ανάλογες δυναμικές προβολές (πχ λίστα με το πιο συχνά προβεβλημένο περιεχόμενο).
Ακόμα Drupal είναι δυνατό να συνδεθεί με ένα λογαριασμό Google Analytics μέσω ειδικού contributed module ώστε να παράγονται εξαιρετικά αναλυτικά σχετικά με την επισκψιμότητα των σελίδων της Εφαρμογής ακόμα και σε πραγματικό χρόνο. Υποστηρίζεται ακόμα η εισαγωγή επιχειρηματικών στόχων, η μη καταμέτρηση στατιστικών ορισμένων σελίδων (πχ σελίδες διαχείρισης της Εφαρμογής), η μη καταμέτρηση στατιστικών για ορισμένους ρόλους χρηστών ή η καταμέτρησή τους σε ειδική κατηγορία καθώς και η προσθήκη συνεργατών αναλυτών (remarketing)

13 Newsletter
Το drupal είναι δυνατό να λειτουργήσει ως ένα πλήρες σύστημα newsletter. Ειδικότερα με την προσθήκη κατάλληλων contiributed modules (πχ simplenews) δίδονται οι λειτουργίες:
• Εγγραφή ή Διακοπή συνδρομής των χρηστών σε ένα newsletter με το πάτημα ενός html button
• Διαχείριση λιστών εγγεγραμμένων χρηστών και κατάταξή τους σε κατηγορίες
• Μαζική αποστολή newsletters με μηχανισμό throttling (πχ 40 κάθε δέκα λεπτά) ώστε να μην επηρεάζεται σημαντικά η απόδοση του server. Η εντολή μπορεί να δίδεται είτε χειροκίνητα από τους διαχειριστές είτε να εμπίπτει σε χρονοπρογραμματισμό
• Παραγωγή ενός στατικού Newsletter με τη χρήση WYSIWYG text editor
• Δυναμική παραγωγή ενός Newsletter βάση ενός View
• Ενσωμάτωση των CSS σε inline κανόνες για μεγαλύτερη συμβατότητα με web mail clients (πχ gmail)
• Ενσωμάτωση unsubscribe συνδέσμου στα αποστελλόμενα newsletter για την συμμόρφωσή τους με τις οδηγίες δεοντολογίας μαζικής αποστολής email
Ακόμα είναι δυνατό να ρυθμιστεί η Εφαρμογή ώστε να χρησιμοποιεί εξωτερικό εξειδικευμένο συνδρομητικό Web Service για την διαχείριση και την μαζική αποστολή των email (πχ το Mailchimp Mandrill)

14 Εισαγωγή Δεδομένων από Τρίτα Συστήματα και θέματα Μετάπτωσης Δεδομένων
Με την βοήθεια του module “feeds” οι διαχειριστές της εφαρμογής μπορούν να εισάγουν είτε μέσω κάποιας online πηγής (πχ RSS feed, XML κ.α.) είτε με εισαγωγή από αρχείο (πχ CSV, XML κ.α.)
Οι διαχειριστές μέσα από φόρμες μπορούν να αντιστοιχήσουν τα πεδία, elements ή στήλες της πηγής σε ιδιότητες ή πεδία κάποιου τύπου οντότητας. Η λειτουργία αυτή είναι εξαιρετικά ευέλικτη και μπορεί να χρησιμοποιηθεί για πολλές διαφορετικές ανάγκες εισαγωγής περιεχομένου από τρίτες πηγές (πχ για να εισαχθούν άρθρα από σχετιζόμενα sites, για να εισαχθούν χρήστες από ένα παλαιό σύστημα, για εισαχθούν μαζικά στατιστικά δεδομένα)
Το module υποστηρίζει την δυνατότητα ανανέωσης του περιεχομένου με βάση κάποιου πεδίου που θα πρέπει να ορισθεί ως μοναδικό (πχ το username ενός χρήστη ή ο τίτλος ενός άρθρου)
Υποστηρίζεται ακόμα η τροποποίηση των εισαγόμενων τιμών πριν αυτές εισαχθούν (πχ μετατροπή ημερομηνιών σε κατάλληλη μορφή, Μετατροπή κεφαλαίων γραμμάτων σε πεζά, μετατροπή λινκ σε αρχεία σε αρχεία που θα αποθηκευτούν σε κάποιο πεδίο της οντότητας, προσαρμοσμένες μετατροπές με php script κ.α.)
Η εργασίες εισαγωγής που ορίζονται με το module feeds μπορεί να εκτελεσθούν κατόπιν χειροκίνητης εντολής του διαχειριστή της Εφαρμογής ή ακόμα μπορεί να χρονοπρογραμματιστούν ώστε να εκτελούνται σε καθορισμένη περιοδική βάση.
Όταν απαιτείται μετάπτωση δεδομένων από μια παλαιά διαδικτυακή εφαρμογή σε μια νέα εφαρμογή Drupal συνήθως το “feeds” module μπορεί να ενορχηστρώσει ομαλά την όλη διαδικασία. Στην περίπτωση που η μοντελοποίηση της παλαιάς εφαρμογής διαφέρει σημαντικά από την επιθυμητή δομή του περιεχομένου της νέας τότε το module “migrate” μπορεί να χρησιμοποιηθεί ώστε να γραφεί εντελώς προσαρμοσμένος php κώδικας που θα χειριστεί ακόμα και τις πλέον πολύπλοκες ανάγκες μετάπτωσης δεδομένων. Το migrate module υποστηρίζει επίσης την λειτουργία rollback που επιτρέπει στον διαχειριστή να αναιρέσει την τελευταία μαζική εισαγωγή ώστε να διευκολύνεται η αποσφαλμάτωση.

15 Απόδοση
Το Drupal συνδέεται με την σχεσιακή βάση δεδομένων μέσω του αξιόπιστου, δοκιμασμένου και αποδοτικού PDO abstraction layer της PHP. Όταν η βάση που χρησιμοποιείται διαθέτει μηχανισμό record locking (πχ ο InnoDB της MySQL) τότε για λόγους απόδοσης δεν κλειδώνει ολόκληρος ο πίνακας που είναι σε επεξεργασία από ένα χρήστη αλλά μόνο η σχετική εγγραφή επιτρέποντας σε πολλούς χρήστες να επεξεργάζονται ταυτόχρονα εγγραφές στον ίδιο πίνακα.
Το core του Drupal διαθέτει δοκιμασμένο, ώριμο και ευέλικτο μηχανισμό λανθάνουσας μνήμης (caching) που βελτιώνει σημαντικά την απόδοση της εφαρμογής (δηλαδή το χρόνο φόρτωσης σελίδων).
Ο μηχανισμός caching του Drupal μπορεί να αποθηκεύσει έτοιμα για προβολή, προ-επεξεργασμένο περιεχόμενο (prerendered HTML markup) ώστε ο εξυπηρετητής να μην χρειάζεται να επεξεργάζεται κάθε φορά που κάποιος χρήστης θέλει να δει το ίδιο περιεχόμενο. Ειδικότερα το περιεχόμενο επεξεργάζεται μόνο την πρώτη φορά που κάποιος χρήστης το καλεί και αποθηκεύεται σε cache πίνακες στην σχεσιακή βάση ώστε να σερβίρεται αυτούσιο σε κάθε επόμενη κλήση.
Ο μηχανισμός μπορεί να ρυθμιστεί ώστε να ανανεώνει τις cache εγγραφές ανά τακτά χρονικά διαστήματα (πχ μια κάθε μια ώρα) με την βοήθεια του cron module. Επιπλέον το Drupal εκμεταλλεύεται την ομογένεια του entity API ώστε να ανιχνεύει αυτόματα τις αλλαγές σε επίπεδο οντότητας και έτσι να ανανεώνει αυτόματα την ανάλογη cache εγγραφή ακόμα και αν δεν έχει περάσει το διάστημα προκαθορισμένης λήξεις της, ώστε το περιεχόμενο που παρέχει ο server να είναι πάντα ανανεωμένο χωρίς να θυσιάζονται τα οφέλη του caching.
Σε συνδυασμό με ειδικά modules είναι εφικτό να επιτευχθούν ακόμα περισσότερες βελτιστοποιήσεις της απόδοσης. Ενδεικτικά αναφέρονται μερικές από τις δυνατότητες:
• Χρήση CDN υποδομών για την φόρτωση χρησιμοποιούμενων εξωτερικών JavaScript βιβλιοθηκών (πχ JQuery, Bootstrap κλπ), των αρχείων εικόνων (πχ οντότητες που ορίζονται σε πεδία των οντοτήτων) ή ακόμα ολόκληρων σελίδων (αντί δηλαδή για τον core caching μηχανισμό)
• Χρήση Reverse HTTP Proxy (πχ Varnish)
• Χρήση της τεχνολογίας memcahced για το caching επιλεγμένων SQL Queries στην μνήμη RAM του Server

16 Web Services
Το Drupal σε συνεργασία με το module “services” μπορεί να λειτουργήσει ως ένας REST Web Service Server. Η λειτουργία αυτή αναφέρεται συχνά με τον όρο Headless Drupal. Τα παρεχόμενα web services μπορούν να καταναλωθούν από τρίτα συστήματα ή Javascript Frontend Εφαρμογές προσδίδοντας εξαιρετική ευελιξία στην υλοποίηση πολύπλοκων integrations ή εξειδικευμένων γραφικών διεπαφών (πχ One Page Web Applications).
Υποστηρίζονται πολλές διαφορετικά standard κωδικοποίησης της ανταλλασσόμενης πληροφορίας (πχ bencode, json, jsonp, xml κ.α.).
Ακόμα τα παρεχόμενα web services μπορούν να ενσωματώσουν views ενώ σέβονται πλήρως τα δικαιώματα πρόσβασης που έχουν ορισθεί στην εφαρμογή.
Τέλος με την βοήθεια ειδικού contributed module το Drupal μπορεί να ενσωματώσει έναν oAuth2 Server για την ασφαλέστερη αυθεντικοποίηση των χρηστών των παρεχόμενων web services (πχ χρήση two-legged authentication διαδικασία όπως ορίζεται από το πρωτόκολλο oAuth2: ροή user credentials).

17 Search Engine Optimization
Το Drupal σε συνδυασμό με ειδικά modules παρέχει εργαλεία που συμβάλλουν στην βελτιστοποίηση της Εφαρμογής ως προς την κατάταξή της στα οργανικά αποτελέσματά των μηχανών αναζήτησης.
Μερικές από τις δυνατότητες που παρέχονται είναι:
• Παραμετροποιήσιμη αυτόματη παραγωγή xml sitemap
• Καθορισμός Metatags σε επίπεδο οντότητας
• Παραμετροποίηση οδηγιών προς τους crawlers των μηχανών αναζήτησης μέσω του robots.txt αρχείου
• Αυτόματη παραγωγή σημασιολογικών διευθύνσεων URL
• Ορισμός no-follow links για την αποφυγή διπλότυπου indexing περιεχομένου (πχ για δυναμικές προβολές)
Θα πρέπει να σημειωθεί ότι η βελτιστοποίηση εξαρτάται ακόμα σημαντικά από την απόδοση της Εφαρμογής αλλά και από την συμβατότητά της με κινητές συσκευές (τα χαρακτηριστικά αυτά αναφέρονται αναλυτικότερα σε άλλες παραγράφους)

18 Κοινότητες Χρηστών
To Drupal σε συνδυασμό με το contributed module “organic groups” επιτρέπει την δημιουργία κοινοτήτων χρηστών. Τα μέλη μιας κοινότητας είναι δυνατό να έχουν ειδικά δικαιώματα πρόσβασης σε περιεχόμενο που αφορά της κοινότητάς τους.
Η λειτουργία αυτή επιτρέπει την δημιουργία forums με κοινωνικό χαρακτήρα και είναι πλήρως εναρμονισμένα με τον γενικό UI σχεδιασμό της εφαρμογής καθώς εκμεταλλεύεται το υφιστάμενο υποσύστημα οντοτήτων.
Επίσης με την χρήση εξειδικευμένων modules είναι δυνατή η προσθήκη social plugins (πχ facebook like, social share buttons, disqus social comments, social rating κ.α.)

19 Πολυγλωσσική Υποστήριξη
Το Drupal διαθέτει σε συνδυασμό με ειδικά modules πλήρεις και παραμετροποιήσιμες δυνατότητες μετάφρασης. Ειδικότερα επιτρέπει μεταφράσεις σε επίπεδο οντοτήτων (πχ nodes περιεχομένου, όρους ταξινόμισης, στοιχεία του μενου), σε επίπεδο string για τη μετάφραση οποιουδήποτε κειμένου (πχ ετικέτες πεδίων, στοιχεία λιστών επιλογής ,διαχειριστικές οθόνες κ.α.) αλλά και σε επίπεδο πεδίου οντότητας αν αυτό είναι επιθυμητό.
Ακόμα είναι δυνατή η εύρεση και η εξαγωγή στοιχείων προς μετάφραση σε ειδικές μορφές που μπορούν να αναγνωσθούν και να επεξεργασθούν από εξειδικευμένα μεταφραστικά εργαλεία (πχ .po, .pot, .xliff αρχεία)
Σε συνδυασμό με το module views παρέχονται ακόμα ειδικές προβολές που δίνουν συνοπτική εικόνα την κατάστασης μετάφρασης της Εφαρμογής (πχ ποια άρθρα είναι μεταφρασμένα στην γλώσσα Χ και ποια πρέπει να μεταφραστούν) που συμβάλουν σημαντικά στην διαχειρισιμότητα του μεταφραστικού έργου.
Τέλος είναι δυνατό με την βοήθεια εξειδικευμένων module να επιτευχθεί αυτόματη μηχανική μετάφραση του περιεχομένου μέσω εξωτερικού Web Service (πχ Google Translate)

20 Βιβλιοθήκες Προσθέτων
Το Drupal σε συνδυασμό με το “libraries” module παρέχει ένα ομογενοποιημένο προγραμματιστικό πλαίσιο για την δυναμική μεταφόρτωση εξωτερικών προγραμματιστικών βιβλιοθηκών.
Ειδικότερα το Drupal Core περιλαμβάνει τις βασικές Javascript βιβλιοθήκες (JQuery και JQuery UI) ενώ μπορούν να μεταφορτωθούν άλλες διαφορετικές βιβλιοθήκες με εξειδικευμένα plugins ή λειτουργίες που επεκτείνουν την λειτουργικότητα της εφαρμογής (πχ WYSIWYG editors, Parallax Slider Javascript, Social Sharing Plugins, Lazy image loading plugins, lightbox κ.α.)

21 Φόρμες Συλλογής Δεδομένων και Έρευνες
Το Drupal με την βοήθεια του module “webform” επιτρέπει στους διαχειριστές να δημιουργήσουν προσαρμοσμένες φόρμες συλλογής δεδομένων από τους χρήστες. Κάθε φόρμα συλλογής δεδομένων υποστηρίζει input data validation για κάθε πεδίο του και μπορεί να ρυθμιστεί να στέλνει τα αποτελέσματα σε συγκεκριμένους παραλήπτες μέσω email.
Στους διαχειριστές της Εφαρμογής παρέχεται ακόμα συγκεντρωτική αναφορά με όλες τις υποβολές αλλά και δυνατότητα εξαγωγής τους σε αρχείο excel για τοπική επεξεργασία.
Υποστηρίζονται ακόμα περιπτώσεις που απαιτούνται φόρμες πολλαπλών βημάτων – σελίδων (πχ για διεξαγωγή online ερευνών)


Nikolaos Tsagkas
Το παρόν άρθρο είναι μια κίνηση προς την κατεύθυνση του κινήματος http://norfps.org/

Greece

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: