Το κείμενο αυτό περιγράφει μερικός την σχεδίαση του Moodle και πως μπορείτε να συνεισφέρετε.
Τομείς αυτού του κειμένου:
Απο την οπτική γωνία του διαχειριστή, το Moodle έχει σχεδιαστεί σύμφωνα με τα παρακάτω κριτήρια:
Όπως αναφέρθηκε παραπάνω, το Moodle έχει έναν αριθμό χαρακτηριστικών τα οποία είναι modular. Ακόμα και εαν δεν είστε προγραμματιστής υπάρχουν πράγματα που μπορείς να αλάξεις ή να βοηθήσεις.
Αυτά είναι μακράν τα πιο συμαντικά modules, και βρίσκονται στο 'mod' directory. Υπάρχουν εφτά βασικά χαρακτηριστικά: assignment, choice, forum, journal, quiz, resource, και survey. Κάθε module βρίσκεται σε ένα διαφορετικό subdirectory και αποτελείτε απο τα ακόλουθα υποχρεωτικά στοιχεία (συν έξτρα αρχεία κώδικα μοναδικά για το καθένα module):
- mod.html: Μια φόρμα για αρχικοποίηση ή αναβάθμιση αυτού του module
- version.php: Ορίζει κάποια meta-info και παρέχει κώδικα για αναβάθμιση
- icon.gif: μια εικόνα 16x16 για το module
- db/: SQL dumps για όλα τα απαιτούμενα δεδομένα και πίνακες (για κάθε τύπο βάσης δεδομένων)
- index.php: μια σελίδα που περιέχει όλες παραδείγματα κάθε μαθήματος
- view.php: Μια σελίδα για να δείχνει ένα συγκεκριμένο παράδειγμα
- lib.php: όλες οι συναρτήσεις που ορίζονται απο το module πρέπει να βρίσκονται εδώ. Εάν το όνομα του module λέγετε widget, τότε οι απαιτούμενες συναρτήσεις περιέχουν:
- widget_add_instance() - κώδικας για να προσθέτει ένα καινούργιο βήμα στο widget
- widget_update_instance() - κώδικας για να αναβαθμίζει ένα υπάρχον βήμα
- widget_delete_instance() - κώδικας για να διαγράφει ένα βήμα
- widget_user_outline() - δωθέντος ενός βήματος, επιστρέφει μια περίληψη απο την συνεισφορά του χρήστη
- widget_user_complete() - δωθέντος ενός βήματος, τυπώνει λεπτομέρειες για την συνεισφορά του χρήστη
- Για την αποφυγή πιθανών συγκρούσεων, οποιαδήποτε συνάρτηση του module πρέπει το όνομα της να αρχίζει με widget_ και οποιαδήποτε σταθερά ορίζεται πρέπει να αρχίζει με WIDGET_
- Τελικά, κάθε module θα έχειμερικά αρχεία για την γλώσσα τα οποία θα περιέχουν strings για αυτό το module. Δες παρακάτω.
Ο πιο έυκολος τρόπος να αρχίσει ένα module μιας καινούργιας διαδικασίας μάθησης είναι να χρησιμοποιήσουμε ένα template στο mod/newmodule_template.zip. Αποσυμπιέστε το και ακολουθήστε τις οδηγίες του README.
Μπορεί επίσης να θέλετε να δημοσιεύσετε πρώτα στο Forum δραστηριοτήτων modules χρησιμοποιόντας το Moodle.
Τα θέματα (ή skins) καθορίζουν την εξωτερική εμφάνιση της ιστοσελίδας σας. Ένας αριθμός από απλά θέματα παρέχεται στο κύριο αρχείο διανομής, αλλά μπορεί να θέλετε να δημιουργήσετε το δικό σας θέμα με τα δικά σας χρώματα, λογότυπα, στύλ και γραφικά.
Κάθε θέμα βρίσκεται σε έν υποφάκελο στον φάκελο "theme", και περιέχει τουλάχιστον τους ακόλουθους φακέλους:
- config.php: καθορίζει τα χρώματα του θέματος που χρησιμοποιούνται σε κάθε σημείο του site
- styles.php: το style sheet, περιέχει οριμούς CSS για βασικά στοιχεία της HTML καθώς και για πάρα πολλά στοιχεια του Moodle.
- header.html: Περιλαμβάνεται στην αρχή κάθε σελίδας. Αυτό είναι ότι χρειάζεσται για να αλλάξετε ένα λογότυπο ή να προσθέσετε κάποιο στο πάνω μέρος της σελίδας, για παράδειγμα.
- footer.html: Περιλαμβάνεται στο τέλος κάθε σελίδας.
Για να δημιουργήσετε τα δικά σας θέματα στην τρέχουσα έκδοση του Moodle:
- Αντιγράψτε έναν απο τους υπάρχοντες φακέλους που περιέχουν τα αρχεία των θεμάτων σε ένα φάκελο με καινούργιο όνομα. Προτείνω να αρχίσετε με κάποιο απο τα βασικά θέματα.
- Αλλάξτε το config.php και εισάγετε τα δικά σας χρώματα.
- Αλλάξτε το styles.php και αλλάξτε τις CSS κλάσεις.
- Αλλάξτε το header.html και το footer.html για να προσθέσετε καινούργια λογότυπα, ή για να αλλάξετε την εμφάνιση.
Σημειώστε ότι όλα αυτά τα βήματα είναι προαιρετικά - μπορείτε να δημιουργήσετε μια ριζοσπαστική διαφορά στην εμφάνιση της ιστοσελίδα σας απλά αλλάζοντας τα χρώματα στο config.php
Σημειώστε επίσης ότι αναβαθμίσεις του Moodle μπορεί να χαλάσουν κάποιο θέμα, γιαυτό να ελέγξετε προσεκτικά τις σημειώσεις εάν χρησιμοποιείται έν αδικό σας θέμα.
Ειδικότερα, το Moodle 2.0 θα έχει ένα τελείος διαφορετικό σύστημα εμφάνισης, το οποίο είναι πιθανό οτι θα βασίζεται σε XSL μετασχηματισμούς των XML εξόδων απο το Moodle. Είναι πιθανό οτι τα θέματα για αυτό τον τρόπο θα είναι σε ένα τελείως διαφορετικό σχήμα, αλλά το πλεονέκτημα θα είναι πιθανά ένας πολύ καλύτερος βαθμός προσαρμογής (συμπεριλαμβανωμένου να κεινούνται τα στοιχεία μιας σελίδας ελέυθερα μέσα σε αυτή).
Περισσότερη συζήτηση για αυτό στο Ομάδα Συζητήσεων Θέματων στην χρησιμοποίηση του Moodle. Εαν δημιουργήσετε ένα ωραίο θέμα που πιστεύετε οτι μπορούν να το χρησιμοποιήσουν και άλλοι, παρακαλούμε στείλτε το μας σε ένα συμπιεσμένο αρχείο στην ομάδα συζητήσεων για θέματα!
Το Moodle έχει σχεδιαστεί για να χρησιμοποιείται σε όλο τον κόσμο. Κάθε 'string' ή 'σελίδα' κειμένου που εμφανίζεται σαν μέρος της επιφάνειας σχεδιάζετε από ένα σύνολο αρχείων που περιέχουν διαφορετικές γλώσσεες. Κάθε γλώσσα είναι ένας υποφάκελος του φακέλου 'lang'. Η δομή του φακέλου 'lang' περιγράφετε παρακάτω:
lang/en - Ο φάκελος που περιέχει όλα τα αρχεία για μια γλώσσα (π.χ. Αγγλικά)
- moodle.php - strings για την κεντρική επιφάνεια εργασίας
- assignment.php - strings για το module των εργασιών
- choice.php - strings για το module των επιλογών
- forum.php - strings για το module των ομάδων συζητήσεων
- journal.php - strings για το module των journal
- quiz.php - strings για το module των ερωτημάτων
- resource.php - strings για το module των πηγών
- survey.php - strings για το module της έρευνας
- .... συν άλλα modules αν υπάρχουν.
Ένα string καλείται απο αυτά τα αρχεία χρησιμοποιόντας την συνάρτηση get_string() ή την print_string() . Κάθε string υποστηρίζει αντικατάσταση μεταβλητών, για να υποστηρίζει την αποστολή μεταβλητών σε διαφορετικές γλώσσες.
π.χ. $strdueby = get_string("assignmentdueby", "assignment", userdate($date));
Εάν κάποιο string δεν υπάρχει σε μια συγκεκριμένη γλώσσα, τότε αυτόματα θα χρησιμοποιηθεί το αντίστοιχο στα Αγγλικά αντί για αυτό.lang/en/help - περιέχει όλα τις σελίδες της βοήθειας (για popup βοήθεια ευαίσθητου περιεχομένου)
Οι κύριες σελίδες της βοήθειας βρίσκονται εδώ, ενώ οι σελίδες με την βοήθεια για κάθε module βρίσκονται στους υποφάκελους με το όνομα του module.
Μπορείτε να εισάγετε ένα κουμπί βοήθειας σε μια σελίδα μέσω της συνάρτησης helpbutton.
π.χ. helpbutton("κείμενο", "Κάντε Click εδώ για σχετική βοήθεια με το κείμενο");
και για modules:
helpbutton("Τύποι Ομάδων Συζητήσεων", "Τύποι Ομάδων Συζητήσεων", "Ομάδα Συζητήσεων");
Σημειώστε ότι μπορείτε να αλλάξετε τις γλώσσες διαδικτυακά μέσα απο την εφαρμογή, χρησιμοποιόντας τα δικτυακά εργαλεία του διαχειριστή κάτω από την επιλογή "Ελέγξτε Αυτή Την Γλώσσα". Αυτό κάνει εύκολο όχι μόνο το να δημιουργήσετε καινούργιεσ γλώσσες αλλά και να βελτιώσετε τις είδη υπάρχουσες. Εαν ξεκινάτε μια καινούργια γλώσσα, παρακαλώ απικοινωνήστε μαζί μου, Martin Dougiamas.
Επίσης μπορείτε να την δημοσιεύστε και στην Ομάδα Συζητήσεων για Γλώσσες Χρησιμοποιόντας το Moodle.
Εάν συντηρείται μια γλώσσα σε ένα εξελισόμενη βάση, μπορώ να σας δώσω CVS διακιώματα εγγραφής στον πηγαίο κώδικα του Moodle έτσι ώστε να μπορείτε να αλλάζετε απευθείας τα αρχεία.
Έχοντας μια βάση δεδομένων που δουλεύει με ορισμένους πίνακες, η σκόπιμα απλή SQL που έχει χρησιμοποιηθεί στο Moodle θα δουλεύει μια χαρά με μια μεγάλη ποικιλία από εμπορικά συστήματα βάσεων δεδομένων.
Υπάρχει ένα πρόβλημα με την αυτοματοποιημένη δημιουργία καινούργιων πινάκων σε μια βάση δεδομένων, όπου αυτό προσπαθεί να κάνει το Moodle πάνω σε μια αρχική εγκατάσταση. Επειδή κάθε βάση δεδομένων είναι αρκετά διαφορετική, δεν υπάρχει ακόμα κάποιος τρόπος για να γίνεται αυτό με μέθοδο ανεξάρτητη της πλατφόρμας. Για την υποστήριξη αυτού του αυτοματισμού σε κάθε βάση δεδομένων, μπορεί να δημιουργηθεί ένα σχήμα που να έχει μια λίστα με τις απαιτήσεις σε SQL που χρείαζονται για να δημιουργηθούν οι πίνακες του Moodle σε μια συγκεκριμένη βάση δεδομένων. Αυτά τα αρχεία είναι στο lib/db και μέσα στο db υποφάκελ του κάθε module.
Προς το παρών, μόνο η MySQL και η PostgreSQL υποστηρίζονται πλήρως με αυτό τον τρόπο. Εαν είστε εξοικοιωμένος με κάποιο άλλο σύστημα βάσεων δεδομένων(ειδικότερα open source βάση δεδομένων) και έιστε πρόθυμος να βοηθήσετε να εισάγουμε το υπάρχον σχήμα, παρακαλώ επικοινωνήστε μαζί μου (Martin Dougiamas).
Το Moodle προς το παρών υποστηρίζει τρία διαφορετικά σχήματα μαθημάτων: εβδομαδιαία, θεμάτων και κοινωνικά.
Αυτά είναι λίγο περισσότερο συνδεδεμένα με τον υπόλοιπο κώδικα (και για αυτό τον λόγο, λιγότερο "pluggable") bαλλά είναι ακόμα αρκετά εύκολο να προστεθούν καινούργια.
Εαν έχετε κάποια ιδέα για διαφορετικά σχήματα που χρειάζεστε ή θα θέλατε να δείτε, ελάτε σε επαφή μαζί μου κα θα κάνω οτι καλύτερο μπορώ για να τα διαθέσω σε μελλοντικές εκδόσεις.
Αν αισθάνεστε οτι θέλετε να γράψετε ένα έγγραφο εκπαιδευτικού περιεχομένου, ένα άρθρο, μια ακαδημαϊκή διατριβή ή οτιδήποτε άλλο γύρω απο το Moodle, παρακαλώ να το κάνετε!
Βάλτε το στο δίκτυο και βεβαιωθείτε οτί συμπεριλάβατε συνδέσμους στο http://moodle.com/
Παίρνοντας Μέρος Στον Εντοπιστή Προβλημάτων
Τέλος, θα ήθελα να σας καλέσω να γραφτείτε στον "εντοπιστή προβλημάτων" στην διεύθυνση bugs.moodle.org έτσι ώστε να μας ενημερώνετε για οποιοδήποτε λάθος βρίσκεται και πιθανά να συμμετέχετ και στην λύση του.
Τα "λάθη" δεν περιλαμβάνουν μόνο λάθη λογισμικού στην τρέχουσα έκδοση του Moodle, αλλά επίσης καινούργιες ιδέες, μελλοντικές απαιτήσεις ακόμα και εποικοδομητική κριτική στα υπάρχοντα χαρακτηριστικά. Η ομορφιά του open source είναι ότι ο καθένας μπορεί να συμμετέχει με κάποιο τρόπο και να βοηθήσει ώστε να βγεί ένα καλύτερο προϊόν που θα απολαμβάνουμε όλοι μας. Σε αυτή την προσπάθεια η ενεργή συμμετοχή σας είναι καλοδεχούμενη!
Ευχαριστώ που χρησιμοποιήσατε το Moodle!
Χαιρετίσματα,
Martin Dougiamas
Version: $Id: developer.html,v 1.2 2001/12/09 10:34:19 martin Exp $