Sorry Raymond, must have missed this post originally...
I’d say we are working on the Tattoo path, so I guess you’d say we are working on that path of development. Once I have my new design prototype completed, we can start formally documenting development environment requirements, etc. In the meantime, I’m considering everything being discussed or published regarding upcoming features in the MODx line of development, for inclusion in Tattoo, as well as publishing some of my thoughts and experiences so far...
To introduce the path I’ve been taking, I’ll offer some resources:
* Here is a preliminary data model as generated from the Propel schema definition I’m working with currently:
http://opengeek.com/assets/images/dbd_model.png
* Here’s a quick look at the current filesystem structure I’m considering:
/assets/
/assets/images/
/assets/js/
/assets/resources/ [based on the BlueWater proposal]
/assets/resources/files/
/assets/resources/flash/
/assets/resources/images/
/assets/resources/media/
/assets/templates/
/assets/templates/{MyTemplate}...
/system/
/system/cache/ [context and culture specific cache files]
/system/classes/ [all code is OO and contained in packages here]
/system/classes/{packagedir}[/{packagesubdir}]...
/system/config/ [common config for all configurations, all contexts]
/system/culture/ [possible location of culture specific resources]
/system/manager/ [default manager location, can be moved]
/system/manager/templates/ Following this structure, each site context could have it’s own assets and/or system directory, or share the assets and/or system directories between local site contexts (remote site contexts--those contained on remote servers--would require their own assets and system directories), based on the context configuration, allowing sub-sites, multi-sites, and even management sites to be located wherever most appropriate. And these context-specific sites could be managed locally (e.g. as a subdirectory) or remotely (e.g. another server) from a single manager instance.
Other features/ideas I’m working through
* Lexicon -- this idea from BlueWater I want to take a step further, so we can define in addition to static or dynamic translations, the ability to define filters for lexicon entries. For example, wrapping lexicon elements in HTML tags for generating automatic links to WikiPedia or Dictionary.com, or generating acronym or abbreviation tags. Consider it a class representing a word and all the lexical elements that might be useful when working with these reusable items in the content.
* DBAbstraction -- via Propel
* ObjectModel -- via Propel
* Context-specific Resources, Elements, and Events -- allowing certain events, resources, elements, or resource customizations of elements to be restricted by context
* Multi-lingual content -- all Elements (be they scripts, HTML, or otherwise) can have alternate content by culture (which can be more specific than just a simple language)
* Revisioning -- all Elements can keep multiple revisions of content, and each revision is also culture specific
* Contextual session management -- individual users can login/logout of individual context-specific sessions without affecting other contexts (or they can login/logout of multiple contexts simultaneously)
* Generic permissions and roles (groups of permissions) -- these can be attached to anything, so you can define and implement custom component-level security schemes
* Generic metadata -- in a similar fashion, any kind of metadata can be attached to any persistent object so that custom functionality and data can be stored without affecting the core; could be anything from storing Dublin Core metadata information on Resources, to attaching a web service/AJAX function definition for a script Element, to providing workflow attributes for a Resource
That’s a lot to digest, but that is the scope of what I’m concentrating on at the moment. I haven’t had much time the past week to work more on this, but this should summarize a lot of what has gone on since I started the Propel proof-of-concept project just before Christmas.