GearsoftCMS

Γενικά

Custom CMS για χρήση σε πολλά projects. Υποστηρίζει σύνδεση πολλαπλών χρηστών με ρόλους ανά χρήστη, όπου ο κάθε ρόλος έχει δικά του δικαιώματα πρόσβασης στο cms. Κύριο χαρακτηριστικό του είναι η δημιουργία οντοτήτων με τα επιθυμητά fields. Η κάθε οντότητα μπορεί να έχει για φόρμα επεξεργασίας τον default ή custom τρόπο εμφάνισης, κάνοντας το cms να φαίνεται διαφορετικό από project σε project.

Χαρακτηριστικά

  • Δημιουργία, επεξεργασία και διαγραφή ρόλων με δικαιώματα πρόσβασης στα διαθέσιμα modules του cms
  • Δημιουργία, επεξεργασία και διαγραφή χρηστών
  • Mediagallery για οργάνωση media όπως εικόνες, αρχεία και video youtube σε φακέλους με δυνατότητα υποφακέλων
  • Διαχείριση menu που μπορεί να υπάρχει στο αντίστοιχο front κομμάτι
  • Διαχείριση groups και οντοτήτων που αποτελούν το βασικό κομμάτι της εφαρμογής
  • Διαχείριση λιστών

Διαχείριση οντοτήτων

Αυτό που κάνει ιδιαίτερο το cms, είναι ότι δεν έχει καμία φόρμα έτοιμη σχετικά με την χρήση για την οποία προορίζεται. Αφού ληφθούν οι απαιτήσεις του project, τότε το επόμενο βήμα είναι η δημιουργία οντοτήτων από τον admin. Οντότητες που ανήκουν σε παρόμοια κατηγορία, μπορούν να ομαδοποιηθούν με την βοήθεια των groups. Με αυτό τον τρόπο, το group είναι ορατό στο menu επιλογών του cms. Αν μια οντότητα δεν ανήκει σε group τότε στο menu εμφανίζεται το όνομα της οντότητας.

Modes Οντοτήτων

Κατά την δημιουργία μιας οντότητας, ο admin πρέπει να δαλέξει αν η οντότητα θα είναι:

  1. single instance
    Αφορά οντότητες που θα έχουν μια φόρμα με πεδία και δεν θέλουμε να έχουμε πολλά instances (records) από την ίδια φόρμα. Τέτοιος τύπος οντότητας είναι για παράδειγμα τα settings για ένα site ή τα στοιχεία ηλεκτρονικης πληρωμης από μια τράπεζα. Όταν φτιαχτεί η οντότητα, μόλις επιλεχθεί θα εμφανίσει κατευθείαν την φόρμα με τα πεδία που έχει.

  2. multiple instances
    Αφορά οντότητες που θα έχουν πολλά records, δηλ. instances. Σε ένα site, π.χ. eshop η βασική οντότητα θα είναι η products, όπου θα είναι τα προϊόντα του site και όπως είναι λογικό θα υπάρχουν πολλά προϊόντα.

  3. multiple instances με clones
    Αυτός ο τύπος είναι παρόμοιος με τον προηγούμενο αλλά έχει μια μικρή διαφορά. Υπάρχουν πολλά Instances και κάθε instance μπορεί να έχει παιδιά (clones) Instances. Τα clone Instances κληρονομούν τις τιμές (values) των πεδίων από τον πατέρα τους και αν θέλουν να διαφοροποιηθούν σε κάποιο πεδίο (entity field) μπορούν να το κάνουν. Για παράδειγμα, ένα προϊόν π.χ. ένα κινητό τηλέφωνο μπορεί να έχει πολλά χρώματα και μεταξύ τους να έχουν διαφορετική εικόνα και τιμή. Οπότε το κάθε clone θα έχει άλλο χρώμα επιλεγμένο, άλλη εικόνα, άλλη τιμή και όλα τα υπόλοιπα πεδία θα είναι κενά όπου θα κληρονομούνται από τον πατέρα του. Με αυτόν τον τρόπο όταν γίνεται το data entry από τον τελικό χρήστη του cms, κοινά στοιχεία μεταξύ των clones εισάγονται ή τροποποιούνται 1 φορά.

 

Fields Οντοτήτων

Αφού δημιουργηθεί η οντότητα με τα βασικά χαρακτηριστικά, το επόμενο βήμα είναι η δημιουργία των fields της οντότητας, τα πεδία της φόρμας που θα βλέπει ο χρήστης κατά την χρήση της. Τα fields μπορούν να ομαδοποιηθούν ανά tab και ανά field group. Στις εικόνα της οντότητας settings φάινεται ένα τέτοιο παραδειγμα. Τα βασικά χαρακτηριστικά των fields είναι το όνομα που θα εμφανίζουν στην φόρμα, το όνομα που θα έχουν στην βάση δεδομένων και ο τύπος. Επιπλέον υπάρχει και η δυνατότητα για σημειώσεις για κάθε πεδίο όπου είναι διαθέσιμες σαν tooltip στην φόρμα της οντότητας. Οι διαθέσιμοι τύποι πεδίου είναι οι παρακάτω:

  1. Hidden
  2. Caption (πεδίο κειμένου μέχρι 255 χαρακτήρες)
  3. Password
  4. Integer (ακέραιος αριθμός)
  5. Double (δεκαδικός αριθμός)
  6. Text plain (πεδίου κειμένου)
  7. Text HTML Minimal (πεδιου κειμένου με html editor με περιορισμένες επιλογές)
  8. Text HTML Full (πεδίο κειμένου με hml editor με περισσότερες επιλογές)
  9. Select (πεδίο τύπου λίστας)
  10. Select YES/NO (πεδίο τύπου λίστας με επιλογές NAI/OXI)
  11. Radio (πεδίο τύπου radio)
  12. Radio YES/NO (πεδίο τύπου radio με επιλογές NAI/OXI)
  13. Checkbox
  14. Date
  15. Time
  16. Datetime
  17. Color (πεδίο με επιλογή χρώματος και opacity)
  18. URL
  19. Slider (υπάρχουν οι ακόλουθες επιλογές: normal, range, range με fixed min, range με fixed max)
  20. Media (υπάρχουν οι ακόλουθοι επιλογές: all media, photos, documents, video)
  21. Entity (πεδίο στο οποίο οι επιλογές είναι οι οντότητες σαν ονόματα)
  22. Entity Instance (πεδίο στο οποίο συνδέεις μια οντότητα και σαν επιλογές δείχνει τα Instances της οντότητας)
  23. Email

 

Για κάθε field υπάρχουν οι επιλογές αν θα είναι:

  • Editable (αν θα είναι επεξεργάσιμο)
  • Required
  • Multilanguage (αν θα έχει άλλη τιμή για κάθε γλώσσα του site)
  • Multivalue (αν θα έχει πολλές τιμές στην τρέχουσα γλώσσα επεξεργασίας)
  • Index (Αν θα έχει index στη βάση)
  • Render As Title (κάθε instance έχει ένα όνομα το οποίο δημιουργείται από τα πεδία που έχουν μαρκαριστεί ας RAT)
  • Special (Είναι ένα απλό flag για να μπορεί το front να ασχοληθεί ανάλογα το project μόνο με εκείνα που έχουν μαρκαριστεί ως special, πχ. θα επιλέγαμε ποια fields είναι για τα φίλτρα σε ένα eshop)

 

Μόλις ολοκληρωθούν τα πεδία, τότε είναι έτοιμη η οντότητα. Τα πεδία θα εμφανιστούν σύμφωνα με την σειρά που τα έχουμε βάλει στην λίστα πεδίων και σύμφωνα με το tab/field group. Σε περίπτωση που επιθυμούμε άλλο τρόπο εμφάνισης των πεδίων, μπορούμε να το ορίσουμε στο section Layout της οντότητας. Εκεί υπάρχουν επιλογές να έρθει ο κώδικας για την default εμφάνιση, τη τρέχουσα εποθηκευμένη εμφάνιση και να γίνει αποθήκευση των αλλαγών μας.

Λίστες

Τα πεδία που είναι radio ή select συνδέονται με λίστες. Η διαχείριση λιστών είναι μια απλή διαδικασία. Για τη δημιουργία μιας λίστας χρειάζεται ένα όνομα και ο τύπος της λίστας, αν θα είναι διαθέσιμη σε πεδία radio, select ή και στα δύο. Τέλος ο admin, εισάγει τις επιλογές που θα έχει, βάζοντας τιμή για κάθε γλώσσα του site. Η αλλαγή της σειράς εμφάνισης υπάρχει σαν δυνατότητα κάνοντας reordering την γραμμή της επιλογής.

Media Gallery

Έχε δημιουργηθεί ένα πολύ ισχυρό media gallery το οποίο έχει ένα εύχρηστο και κατανοητό UI. Υποστηρίζει upload ενός ή πολλαπλών εικόνων/αρχείων και δημιουργία media με σύνδεση με youtube video. Ένας φάκελος με media, εμφανίζει φίλτρα με επιλογές ανάλογα το περιεχόμενό του. Αν υπάρχουν μόνο εικόνες και video, θα είναι διαθέσιμες μόνο οι επιλογές αρχεία εικόνων και video youtube. Κάθε media και φάκελος μπορεί να γίνει edit και να διαγραφτεί ή να αλλάξει πατέρα φάκελο. Οι φάκελοι μπορούν να αλλάξουν όνομα, ενώ τα media έχουν την επιλογή να ανοίξουν σε νέο tab για να προβληθεί το περιεχόμενό τους. Κατά την διαγραφή ενός φακέλου ή media, αν υπάρχουν media που χρησιμοποιούνται θα εμφανιστεί ανάλογο μήνυμα για την προτροπή ακύρωσης της διαγραφής.

Επιπλέον υποστηρίζεται breadcrumb για τους φακέλους οπότε ο χρήστης μπορεί εύκολα να παει σε αρκετά προηγούμενα levels φακέλων με ένα κλικ. Επίσης υπάρχει ένα section, Επιλεγμένα, που βρίσκονται όλα τα επιλεγμένα media που έχει επιλέξει ο χρήστης καθώς και συγκεκριμένες επιλογές όπως αποεπιλογή, διαγραφη και μετακίνηση σε άλλο φάκελο. Φυσικά το τι είναι διαθέσιμο στο χρήστη εξαρτάται από τα δικαιώματα του ρόλου που έχει.

Διαχείριση Menu

Η διαχείριση menu είναι ένα module που χρησιμοποιεί την οντότητα menu και έχει ιδιαίτερη διαχείριση. Κάθε Instance μπορεί να έχει ένα parent instance και με βάση την ιεραρχία χτίζεται ένα treeview. Κάθε menu item μπορεί να αλλάξε σειρά και πατέρα menuitem κάνοντας απλό drag n' drop στο treeview. Αν θέλουμε να επεξεργαστούμε τα στοιχεία του Instance μπορούμε να κάνουμε επεξεργασία από το αντίστοιχο icon, και θα εμφανιστεί η φόρμα του instance. Αν επιθυμούμε να προσθάφαιρέσουμε κάποια πεδία, απλά πρέπει να πάμε στη διαχείριση της οντότητας menu. Με αυτό τον τρόπο, ένα menu item μπορεί να είναι απλό σε ένα project ή πολύ σύνθετο έχοντας πολλά πεδία.

 

Info: custom framework, jQuery