Μέσα απο την αναζήτηση μου για ένα εργαλείο ανοιχτού κώδικα που να μπορεί να πάργει εύκολα και γρήγορα CMS Sites βασισμένο σε Java μπορώ να πώ ότι είχα λίγο απεπιστεί. Μπορύσα να βρώ πάρα πολλά για entriprise level portals τα οποία θελανε πολύ δουλειά η οποία σίγουρα δεν άξιζε το κόπο για ιστοσελίδες με 2-3 μενού και 10-15 μέρη. Μέχρι που συνάντησα το BRIX! Brix, ένα Wicket-based CMS framework με καθαρό διαχωρισμό static και dynamic συμπεριφοράς στο front-end
Brix
Το Brix είναι ένα Google-code project που πρόσφατα έφτασε σε παραγωγικό επίπεδο. Χρησιμοποιεί Apache Wicket και Jackrabbit και αποτελείτε απο ένα πυρήνα με διάφορα πρόσθετα γύρω.
Αυτά τα πρόσθετα εγκαθίστανται και ενεργοποιούνται στο ‘Extension Point Registry’ στο κώδικά σου (παραδειγμα 1).Η κατάσταση του site είναι persisted σε ένα JCR repository, ‘Workspace’. Με το Snapshot plugin μπορείς να πάρεις backup τη τρέχουσα κατάσταση. Το Brix προσφαίρει ένα Διαχειριστικό Εργαλείο (AdminPanel) που τα “μαζεύει” όλα σε ένα view.
Το Brix επίσης περιέχει και μια δοκιμαστική εφαρμογή (brix-demo) που δείχνει το πως λειτουργούν όλα μεταξύ μους. Νόμιζω ότι είναι το καλύτερο μέρος να ξεκινήσεις με το Brix. Επίσης πρέπει να κανείς να διαβάσει το ‘Running the demo‘ wiki page του Brix.
Κατασκευάζοντας site με το Brix
Site Plugin
Το site plugin είναι το κεντρικό σημείο για να φτιάξεις το site σου. Εδώ μπορείς να προσθέσεις resources όπως css αρχεία, να φτιάξεις νέες σελίδες, φακέλους και templates. Στο αριστερό panel μπορείς να πας στο κάθε resource και να το επεξεργαστείς. Οι σελίδες και τα templates έχουν content και page preview. Όταν κάνεις edit μια σελίδα έχεις τη δυνατότητα να βάλεις HTML κώδικα με 3εις τρόπους συμπεριλαμβανομένου και WYSIWYG editor όπου η γνώση HTML δεν είναι απαραίτητη.
Tiles
Τα Tiles είναι “δομικοί λίθοι” που μπορείς να βάλεις σε ένα site. Αυτά έχουν 3εις τύπους Page Tiles, Menu Tiles και Custom Tiles. Τα Page Tiles προσφαίρουν τη δυνατότητα να επαναχρησιμοποιε. Τα Menu tiles αναφέρονται σε menus. Τα Custom tiles χρησημοποιούν το implementation του Tile interface και το extension του TileEditorPanel. Με τα Custom Tiles κάνεις extend την εφαρμογή σου βάζοντας το δικό σου logic. Τα Custom Tiles πρέπει να γίνουν registered στο ‘Extension Point Registry’ κατά την εκκίνηση
[java]
public CMSBrix(BrixConfig config)
{
super(config);
// register plugins
config.getRegistry().register(Plugin.POINT, new MenuPlugin(this));
config.getRegistry().register(Plugin.POINT, new SnapshotPlugin(this));
config.getRegistry().register(Plugin.POINT, new PrototypePlugin(this)) config.getRegistry().register(Plugin.POINT, new WebdavUrlPlugin());
// register tiles;
config.getRegistry().register(Tile.POINT, new SurveyTile())
…
[/java]
Για να βάλεις ένα Tile σε μια σελίδα πρέπει να δηλώσεις σε αυτό ένα identifier και με αυτό να το καλέσεις με ένα tag στη σελίδα <brix tile id=”[identifier]”/> .
Templates
Τα Templates χρησημοποιούνται για να συγκεντρώνουν ολα τα κομμάτια της σελίδας (header, footer κλπ). Τα Templates μπορούν να κάνουν extent άλλα Templates. Μέσα πρέπει να έχουν το tag <brix:content/> μαζί με tiles, τα templates στήνουν μια ολοκληρωμένη σελίδα.
Navigation
Το menu plugin χρησημοποιήται για να δημιουργήσεις μενού σε άλλες σελίδες. Το menu plugin είναι διαχειρηζόμενο απο το ‘Menu’ tab στο AdminPanel. Εκεί φτιάχνεις μενού menu με titles και κατάληλες παραμπομπές στις άλλες σελίδες. Το menu για μια σελίδα είναι απλά άλλο ένα Tile <brix:tile id=[menutile-id]/>
Στα δια ταύτα…
Το Brix framework είναι ένα CMS που σίγουρα θα χρησημοποιείσω συχνα!. Το Brix προσφέρει out-of-the-box έτοιμες λύσεις για γρήγορη ανάπτυξη
Επειδή χρησημοποιεί το Apache Wicket μπαίνει εύκολα και γρήγορα σε μια έτοιμη Wicket web application. Enjoy…
ScreenShots