===== HTML Templates =====
Τα HTML templates που χρησιμοποιεί το σύστημα για την εμφάνιση των σελίδων περιέχουν μπλοκ κώδικα HTML που μπορεί να διαχωριστεί και να εμφανιστεί μία ή περισσότερες φορές και μεταβλητές που αντικαθίστανται κατά την εμφάνιση των σελίδων. Τα ονόματα μεταβλητών γράφονται μεταξύ @{%@ και@ %}@ (π.χ. @{%VariableName%}@ ενώ τα μπλοκ κώδικα εμφανίζονται ανάμεσα σε ζεύγη σχολίων HTML ως εξής:
...
Τα templates είναι αποθηκευμένα σε υποκαταλόγους του καταλόγου ''templates''. Για να αναγνωριστεί ένας υποκατάλογος ως template, θα πρέπει να περιέχει τουλάχιστον το αρχείο ''theme.html'', που χρησιμοποιείται για τις περισσότερες σελίδες. Τα αρχεία που αναζητούνται για διάφορες λειτουργίες είναι τα:
* ''heme.html'' - βασικό theme για την εμφάνιση των περισσοτέρων σελίδων της πλατφόρμας
* ''ebook_fullscreen.html'' - για την παρουσίαση σε πλήρη οθόνη του ηλεκτρονικού βιβλίου
* ''dtheme.html'' - για την εμφάνιση παραθύρων επιλογής πόρων (εγγράφων, πολυμέσων κλπ.) από τον rich text editor
* ''mtheme.html'' - για την εμφάνιση σελίδων μέσω της mobile app
Αν υπάρχει ένα αρχείο ''settings.php'', αυτό εκτελείται αυτόματα. Μπορεί να ορίζει τη μεταβλητή //$icon_map// που περιέχει ένα array με μετατροπές των τιμών της //IMG_CLASS//. Για παράδειγμα:
'...',
'announcements' => '...',
'calendar' => '...',
'dropbox' => '...',
'docs' => '...',
'links' => '...',
'description' => '...',
'forum' => '...',
'assignments' => '...',
'exercise' => '...',
'questionnaire' => '...',
'ebook' => '...',
'videos' => '...',
'groups' => '...',
'lp' => '...',
'conference' => '...',
'glossary' => '...',
'wiki' => '...',
'course_info' => '...',
'users' => '...',
'tooladmin' => '...',
'usage' => '...'
);
Επίσης, στο φάκελο κάθε theme υπάρχει ο φάκελος ''img'' που περιέχει μερικά από τα εικονίδια του theme.
Όλα τα υπόλοιπα αρχεία που βρίσκονται μέσα στον υποκατάλογο ενός theme περιέχουν πόρους (εικονίδια, CSS κλπ.) που φορτώνονται από κάποιο από τα παραπάνω αρχεία, και δεν απαιτείται να έχουν συγκεκριμένη δομή ή ονόματα.
Παρακάτω αναλύεται η δομή μπλοκ και οι μεταβλητές που ορίζονται σε καθένα από τα αρχεία αυτά.
=== ''theme.html'' ===
* Μπλοκ ''mainBlock'' - περικλείει το τμήμα του template που περιέχει όλα τα υπόλοιπα μπλοκ και μεταβλητές
* Μεταβλητές:
* ''PAGE_TITLE'' - τίτλος τρέχουσας σελίδας
* ''template_base'' - base absolute URL του theme (π.χ. ένα αρχείο CSS μπορεί να αναφέρεται ως ''''
* ''img_base'' - base absolute URL του φακέλου ''img'' (π.χ. ''''
* ''EXTRA_CSS'', ''TOOL_CSS'', ''HEAD_EXTRAS'' - μεταβλητές για τη φόρτωση πόρων (JavaScript, CSS κλπ.) που πρέπει να περιέχονται στο ''
'' element της HTML.
* ''ECLASS_HOME_EXTRAS_LEFT'', ''ECLASS_HOME_EXTRAS_RIGHT'' - αντικαθίστανται με τα περιεχόμενα των μεταβλητών ''$langExtrasLeft'' και ''$langExtrasRight'' και χρησιμοποιούνται για την προσθήκη κειμένου/εικονιδίων αριστερά και δεξιά στην αρχική σελίδα
* ''ECLASS_LEFTNAV_EXTRAS'' - περιέχει κώδικα που εμφανίζεται κάτω από το αριστερό μενού και αναφέρεται στα Ανοικτά Ακαδημαϊκά Μαθήματα (OpenCourses)
* ''CONTENT_MAIN_CSS'' - περιέχει τις τιμές ''content_main_no_nav'' (όταν αποκρύπτεται το αριστερό μενού πλοήγησης), ''content_main_first'' (στην αρχική σελίδα όταν ο χρήστης δεν έχει συνδεθεί) ή ''content_main'' (στις υπόλοιπες περιπτώσεις)
* ''THIRD_BAR_TEXT'', ''THIRDBAR_LEFT_ICON'' τίτλος και εικονίδιο (''lesson_icon'', ''admin_bar_icon'', ''briefcase_icon'', ''logo_icon'') σελίδας
* Μπλοκ:
* ''HeaderBlock'' - περιέχει την επικεφαλίδα με το λογότυπο της πλατφόρμας και χρησιμοποιεί τις παρακάτω μεταβλητές:
* Μηνύματα: ''LANG_USER'' («Χρήστης»), ''LANG_LOGOUT'' («Έξοδος»), ''LANG_SELECT_TITLE'' («Επιλογή Γλώσσας»), ''LANG_SEARCH'' («Αναζήτηση»), ''SEARCH_ADVANCED'' («Προχωρημένη αναζήτηση»), ''LANG_COPYRIGHT_NOTICE''(«Πληροφορίες Πνευματικών Δικαιωμάτων»)
* Στοιχεία χρήστη: ''USER_NAME'', ''USER_SURNAME''
* Στοιχεία UI: ''LOGOUT_LINK'' (URL που οδηγεί σε αποσύνδεση), ''LANG_SELECT'' (HTML element ''