10 May 2011

xSiteable 3.0 and Jankles 1.0, first views

Ok, time for a more serious update and a show and tell on what I'm currently working on. In my last blurb on this I talked about xSiteable which is the underlying framework used to create the application (which basically is an Intranet application) which we currently call 'Jenkles' (but might change if we find an even cuter name ...). And this time, let's jump straight to the application and get to the framework through it ;

Jenkles 1.0

Jenkles is basically an application for doing a few common things you might want for a portal, intranet or similar. It currently supports searching and browsing of documents, news and comments, various social media widgets (like Twitter). But the specifics of this isn't too important as they are to be extended and changed all the time.

Shown to the left is basically the front page which basically is a widget dashboard. You can add, delete and move widgets around (drag'n'drop) as administrator, or create pages where users can edit them yourself, like a personal dashboard. Everything is configurable, including the tabs at the top, all widgets, and the system is built on JQuery UI which means you can go to their website and roll your own complete look and feel.

In short, the main purpose of Jenkles is ;

1) Find, synchronize and harvest PDF (and a host of other formats to follow) files from a network drive.

2) Make documents accessible, searchable (in a few interesting ways, including faceted), browsable, previewable, printable, taggable, listable, etcable. And chuck in configurable meta data on top to create a document control system.

3) User access through (currently, more to come) Active Directory / LDAP. We've got NTLM support as well.

4) Widgets! Widgets for information access! Widgets for news! For fun! For profit! (And the next 3 months will be spent creating a bucketload of widgets, so join the fun!)

And of course the scope of the application will continue to grow as we and the community grows and extend it. The way it can grow is almost unlimited, thanks to the flexible plugin architecture of xSiteable.

Showing left is the browse functionality, but you can equally well browse documents through the faceted keywords searching, or other means as we develop them.

All documents have one page to represent them, with a preview pane, metadata sections (including document control if you're an admin), where the persistent identity scheme from Topic Maps come in handy. This is where we deal with all things identity control, including links from the document to various instances of control, be it internal or external (which might include a Wiki page that talks about the page in question, or even is the original editor place for it ... the options are endless)

xSiteable 3.0

xSiiteable is a framework I've been working on for many years. The first version was an XSLT framework that took Topic Maps input and spat out a complete website (there's a few dozen websites around the world running it still, poor things). The second version a heavy extension of that that was never released (due to laziness), and runs for example the National Treasures of Australia website. This is the third version which is some 3 years in the making, but things have dramatically changed.

The XSLT framework has been re-shaped into a kick-ass templating engine (still using some Topic Maps concepts, but is more about making good templating for professionals as easy and flexible as possible), but it is now a PHP framework created from scratch with some more modern ideas and concepts. I'll let the Wiki do the talking ;

xSiteable is a (yet another) PHP framework that tries it hardest to be simple, understandable, extensible, modern and flexible. It encompasses certain paradigms and technologies ;
  • event-driven; all class instances and their methods are driven by a structured event-stack, guaranteeing that every part of the framework is extensible, overridable, and fixable.
  • Everything is pluggable; all classes hooks into the event-stack as plugins, modules, widgets and actions. If it doesn't plug in, you're doing it wrong.
  • fully object-oriented and relying on PHP 5.3+ to make sure we don't spend a lot of time and code on past mistakes
  • topic-maps; a semantic technology for easily working with complex structures and meta data, and persistent identification management, and also makes parts of the framework ontology aware
  • a variation over the Model-View-Controller paradigm with more intuitive action classes
  • JQuery and JQuery UI as a base for JavaScripting

Basically, everything you do is write plugins and action classes that deal with the app and data, and XML templates to deal with the output (usually XHTML, but there's default support for XML, JSON, JSONP and text output as well)

Plugins, modules and widgets all share the underlying event-stack, and things happen in and out of it. There's a profiler in the logger. REST runs the underlying concepts of HTTP. There's a Topic Maps-driven data model for data interaction. And heaps of other goodies.

Sure, there's tons of PHP frameworks out there, some probably better than this one. But I do seriously think it embraces some very interesting concepts that makes it an interesting environment for rather quick development of complex application, without killing the fun, it's still easy to do, and is infinitely extensible including jumping on, overtaking and extending existing code and plugins.

Hopefully this sounds tasty. In some future installments I'll go through with some code examples and such, but do have a peak at the Wiki to see some good examples there, and otherwise let me know what you think.

No comments:

Post a Comment