Η δομή ενός Odyssey template

συζητήσεις για το Ελληνικό Odyssey CMS

Συντονιστές: korgr, WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Η δομή ενός Odyssey template

Δημοσίευση από korgr » 24 Απρ 2012 21:02

Το Odyssey CMS διαθέτει ένα απλό templating σύστημα το οποίο μας επιτρέπει να έχουμε περισσότερες εκδόσεις μορφών εμφάνισης του site μας.
Λόγω της φύσης του όμως (μη σταθερή δομή ώστε να καλύπτει οποιαδήποτε ανάγκη του developer), θα πρέπει να καταστεί σαφές πως κάθε template θα πρέπει να αντιστοιχεί σε μια γνωστή δομή του περιεχομένου.
Αυτό σημαίνει πως τα views πρέπει να αντιστοιχούν σε υφιστάμενους controllers και να καλύπτουν όλες τις εγκατεστημένες ενότητες του site μας. Διαφορετικά το μόνο που θα καλύπτουν είναι την ενότητα ΑΡΘΡΑ όπως τα περισσότερα CMS.

Όλα τα templates (πρότυπα εμφάνισης) στο Odyssey, αποθηκεύονται στον φάκελο «templates». Το κάθε template πρέπει να έχει ένα system name και κατά την εγκατάστασή του θα δημιουργηθεί ένας φάκελος με αυτό το όνομα μέσα στον φάκελο «templates».
Θα πρέπει να συνοδεύεται από ένα manifest XML file με όνομα «install.xml». Το αρχείο αυτό περιέχει όλες τις παραμέτρους που χρειάζεται το Odyssey για να εγκαταστήσει το template.
Η δομή του είναι η ακόλουθη:

Εικόνα

Όλα τα αρχεία της εγκατάστασης θα πρέπει να συμπεριλαμβάνονται σε ένα αρχείο zip, σε root επίπεδο (δεν πρέπει να υπάρχουν φάκελοι στο zip). Ένα τέτοιο zip επισυνάπτεται στο τέλος αυτού του άρθρου...
Το XML της εγκατάστασης αναφέρεται στους τομείς name, title, protected, files, images και slots.

Το name προσδιορίζει το system name του template και θα πρέπει να αποτελείται από λατινικούς χαρακτήρες χωρίς κενά, αφού το όνομα αυτό θα πάρει ο φάκελος εγκατάστασης.

Το title προσδιορίζει τον εμφανιζόμενο τίτλο στον πίνακα διαχείρισης.

Το protected αν έχει τιμή 1 προσδιορίζει το template ως system template και δεν επιτρέπει την απεγκατάστασή του. Συνήθως πρέπει να έχει τιμή 0.

Στον τομέα files ορίζουμε όλα τα αρχεία του template εκτός από τις εικόνες (εξαίρεση αποτελούν τα sprite images και θα αναφερθούμε παρακάτω σε αυτά). Κάθε εγγραφή περιέχεται στο tag <file> και μπορεί να συμπεριλάβει δύο attributes, το type και το role.
Το type παίρνει τιμές root, css, js, sprite και ορίζει αντίστοιχα:
Root files οποιουδήποτε τύπου
Τα αρχεία αυτά εγκαθίστανται στο root folder του template
CSS files
Πρέπει να είναι αρχεία με επέκταση "css" και αποθηκεύονται μέσα στο φάκελο «css» του template
Javascript files
Πρέπει να είναι αρχεία με επέκταση "js" και αποθηκεύονται μέσα στο φάκελο «js» του template
Sprite images
Πρόκειται για αρχεία εικόνας που το Odyssey θα αντιμετωπίσει ως sprite images. Αν και εικόνες θα αποθηκευθούν ξεχωριστά στην διαδρομή του συστήματος /mediabank/icons/
Το role παίρνει μόνο την τιμή common και ορίζει πως το αρχείο θα χρησιμοποιηθεί σε όλες τις σελίδες του template. Διαφορετικά το κάθε αρχείο θα πρέπει να καλείται είτε από τον εκάστοτε controller ή το εκάστοτε view.

Στον τομέα images ορίζουμε όλες τις εικόνες που θα χρησιμοποιηθούν από το template (εκτός από τις εικόνες sprites όπως αναφέρθηκε προηγουμένως). Κάθε εικόνα περιέχεται στο tag <image> και αποθηκεύεται μέσα στο φάκελο «images» του template.

Στον τομέα slots ορίζουμε όλες τις θέσεις (positions) του template, στις οποίες μπορούν να φορτωθούν αργότερα τα κατάλληλα ενθέματα (modules). Κάθε εγγραφή περιέχεται στο tag <slot> και συνοδεύεται από το attribute title. Το κάθε <slot> περιέχει το system name (πρέπει να αποτελείται από λατινικούς χαρακτήρες χωρίς κενά) και το attribute title προσδιορίζει τον τίτλο του slot μέσα στον πίνακα διαχείρισης του Odyssey.


Υπάρχουν κάποιες συμβάσεις στην ονοματολογία των αρχείων, που καθορίζουν συγκεκριμένη συμπεριφορά:

Αν ένα css ή js αρχείο, έχει ως όνομα το όνομα μιας ενότητας (section) του Odyssey, τότε θα φορτωθεί αυτόματα όταν κληθεί η ομώνυμη ενότητα. Για παράδειγμα αν υπάρχει το articles.js θα φορτωθεί αυτόματα σε όλες τις σελίδες που σχετίζονται με παρουσίαση άρθρων.
Αν ένα js αρχείο, έχει ως όνομα την λέξη ready (ready.js), θα φορτωθεί το περιεχόμενό του σε τμήμα on document ready της javascript, και αυτό θα ισχύει για όλες τις σελίδες του template.
Αν ένα js αρχείο, έχει ως όνομα το όνομα μιας ενότητας (section) του Odyssey, και ως επίθεμα το _ready.js, τότε θα φορτωθεί το περιεχόμενό του σε τμήμα on document ready της javascript, όταν κληθεί η ομώνυμη ενότητα. Για παράδειγμα αν υπάρχει το articles_ready.js θα εκτελεσθεί ο κώδικας του κατά την ολοκλήρωση της φόρτωσης του DOM, σε όλες τις σελίδες που σχετίζονται με παρουσίαση άρθρων.
Μπορούμε αν θέλουμε να συμπεριλάβουμε κώδικα javascript που θα παράγεται δυναμικά από αρχείο php. Αυτό το επιτυγχάνουμε ανεβάζοντας με FTP στο root του Odyssey, ένα αρχείο με όνομα τύπου "template_" + Template System Name + ".js.php". Αν για παράδειγμα το template μας ονομάζεται phoenix τότε το αρχείο θα είναι template_phoenix.js.php
Τέλος, υπάρχουν και τρία αρχεία που πρέπει να συμπεριλαμβάνονται στον τομέα <files> με type="root" και να έχουν τα ακόλουθα ονόματα:
meta.txt
Μπορεί να περιέχει όλα τα meta tags που θέλουμε να συμπεριλαμβάνονται στο τμήμα <head> της html κάθε σελίδας του template.
globalCSSFiles.txt
Πρέπει να περιέχει όλα τα css αρχεία της βιβλιοθήκης του συστήματος που θέλουμε να συμπεριλαμβάνονται στο τμήμα <head> της html κάθε σελίδας του template.

Παράδειγμα:

js/fancybox/jquery.fancybox-1.3.4.css
css/odyssey.css
css/ui/jquery-ui.css
globalJsFiles.txt
Πρέπει να περιέχει όλα τα js αρχεία της βιβλιοθήκης του συστήματος που θέλουμε να συμπεριλαμβάνονται στο τμήμα <head> της html κάθε σελίδας του template.

Παράδειγμα:

js/odyssey.js
js/swfobject/swfobject.js
js/fancybox/jquery.fancybox-1.3.4.pack.js
js/jquery-ui.js


Πηγή: http://odyssey.webpage.gr/gr/articles/n ... y-template

Απάντηση

Επιστροφή στο “Odyssey CMS”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες