===== Δομή κώδικα ===== Κατά την εγκατάσταση του eClass δημιουργείται ο κεντρικός κατάλογος και διάφοροι υποκατάλογοι. Οι ρυθμίσεις σύνδεσης της πλατφόρμας με τη βάση δεδομένων αποθηκεύονται στον κατάλογο ''config'' και ειδικότερα στο αρχείο ''config.php''. Τα δεδομένα των μαθημάτων της πλατφόρμας αποθηκεύονται στους καταλόγους ''courses'' και ''video''. Ειδικότερα * Τα μαθήματα που δημιουργούνται αποθηκεύονται στον κατάλογο ''courses''. Για κάθε μάθημα δημιουργείται ένας κατάλογος με όνομα τον κωδικό του μαθήματος. * Τα βίντεο που αντιστοιχούν στα μαθήματα αποθηκεύονται στον κατάλογο ''video''. Όμοια για κάθε μάθημα δημιουργείται ένας κατάλογος με όνομα τον κωδικό του μαθήματος. Στους παραπάνω καταλόγους (δηλαδή ''courses'', ''video'', ''config'') ο web server χρειάζεται να έχει δικαιώματα read / write. Γενικά ο προγραμματιστής δεν χρειάζεται να ασχοληθεί με αυτούς. Η λειτουργία της πλατφόρμας βρίσκεται στους υπόλοιπους καταλόγους. Επιγραμματικά: * Ο κατάλογος ''include'' περιέχει διάφορες βιβλιοθήκες που χρησιμοποιούνται στη λειτουργία διάφορων υποσυστημάτων. Σημαντικά αρχεία στον καταλόγο ''include'' είναι: *''init.php''. Το βασικό αρχείο που κάνει όλους τους απαραίτητους ελέγχους ασφάλειας σε όλες τις λειτουργίες του eClass. Ο προγραμματιστής γενικά δεν ασχολείται με αυτό πάρα μόνο αν υπάρχει σοβαρός λόγος. (π.χ. προσθήκη νέου υποσυστήματος) *''baseTheme.php''. Το βασικό αρχείο που καλεί το template engine, την ''init.php'' και σχηματίζει τις οθόνες του eClass. Ο προγραμματιστής γενικά δεν ασχολείται με αυτό πάρα μόνο αν υπάρχει σοβαρός λόγος. *''tools.php'' Σχηματίζει τα μενού αριστερά. Ο προγραμματιστής ασχολείεται με αυτό μόνο όταν θέλει να αλλάξει τα μενού. *''main_lib.php''. Αποτελεί μια βιβλιοθήκη χρήσιμων συναρτήσεων που χρησιμοποιούνται σε πολλά σημεία του eClass. Ο προγραμματιστής χρειάζεται να ανατρέχει σε αυτό για να αναζητά τυχόν έτοιμες συναρτήσεις. * Ο κατάλογος ''info'' περιέχει τα scripts που εμφανίζουν πληροφορίες για την πλατφόρμα (manuals, contact, license κ.λπ.) * Ο κατάλογος ''lang'' περιέχει τα μηνύματα της πλατφόρμας σε διάφορες γλώσσες. * Ο κατάλογος ''js'' περιέχει όλα scripts της javascript και μερικές εξωτερικές βιβλιοθήκες. * Ο κατάλογος ''upgrade'' περιέχει τα scripts αναβάθμισης. * Ο κατάλογος ''install'' περιέχει τα scripts εγκατάστασης. * Ο κατάλογος ''template'' περιέχει τα themes και τα style sheets που χρησιμοποιεί η πλατφόρμα. * Ο κατάλογος ''modules'' περιέχει τους υποκαταλόγους των υποσυστημάτων. Παρακάτω παρουσιάζονται οι αντιστοιχίες στα διάφορα υποσυστήματα - λειτουργίες της πλατφόρμας. Ειδικότερα: * ''admin'' τα διαχειριστικά εργαλεία της πλατφόρμας. * ''announcements'' στις //ανακοινώσεις// * ''agenda'' στο //ημερολόγιο// * ''analytics'' στη //μαθησιακή αναλυτική// * ''abuse_report'' στις //αναφορές κατάχρησης// * ''atttendance'' στο //παρουσιολόγιο// * ''auth'' στην //πιστοποίηση χρηστών// * ''blog'' στο //ιστολόγιο// * ''chat'' στην //συνομιλία// * ''comments'' στα //σχόλια ιστολογίου// * ''contact'' στην //αίτηση χρήστη σε κλειστό μάθημα// * ''course_description'' στην //περιγραφή μαθήματος// * ''course_info'', ''course_metadata'' στις //πληροφορίες μαθήματος// * ''course_prerequisites'' στα //προαπαιτούμενα μαθήματος// * ''course_tools'' στη διαχείριση των //εργαλείων μαθήματος// * ''create_course'' στη //δημιουργία μαθήματος// * ''db''. Oι κλάσεις για τη [[el:developers:database|σύνδεση με τη βάση δεδομένων]] * ''document'' στα //έγγραφα// * ''ebook'' στο //ηλεκτρονικό βιβλίο// * ''exercise'' στις //ασκήσεις// * ''forum'' στις //περιοχές συζητήσεων// * ''glossary'' στο //γλωσσάριο// * ''gradebook'' στο //βαθμολόγιο// * ''group'' στις //ομάδες χρηστών// * ''h5p'' στο //διαδραστικό περιεχόμενο// * ''help'' στο //σύστημα βοήθειας// * ''learnPath'' στη //γραμμή μάθησης// * ''link'' στους //συνδέσμους// * ''lti'' και ''lti_consumer'' σε σύνδεση με εξωτερική υπηρεσία μέσω lti * ''message'' στα //μηνύματα// * ''mindmap'' στο //εννοιολογικό χάρτη// * ''mobile'' Περιλαμβάνεται το [[el:developers:mobile_api|mobile api]] για σύνδεση με κινητές συσκευές. * ''offline'' Εξαγωγή μαθήματος για χρήση offline * ''progress'' στην //πρόοδο μαθήματος// * ''questionnaire'' στο //ερωτηματολόγιο// * ''rating'' στην //αξιολόγηση μαθήματος// * ''search'' στην //αναζήτηση// * ''sharing'' στον //διαμοιρασμό μαθήματος// * ''tc'' στην σύνδεση με υπηρεσία τηλεδιάσκεψης * ''units'' στις //ενότητες μαθήματος// * ''usage'' στα //στατιστικά// * ''user'' στη //διαχείριση χρηστών// του μαθήματος * ''video'' στα //πολυμέσα// * ''wall'' στον //τοίχο// * ''wiki'' στο ''wiki'' * ''work'' στις //εργασίες//