Elgg 1 introduces some important changes under the hood, perhaps the most important of these has got to be the new object model.
In a nutshell, Elgg 1’s object model is a simplification of what we’ve done with Elgg 0.x (from now on called Elgg classic), reducing things to their essential components.
In Elgg 1 you have at the highest level three things:
- Entities: Things in the system; users, blog posts, etc…
- Metadata: Information about an Entity (called Extenders in Elgg 1).
- Relationships: Define how one object is related to another.
Conceptually this is very clean but also very flexible. Because entities, relationships and metadata have a consistent interface we can do some very cute things.
One thing in particular – arbitrary mixed type feeds – which were pretty much impossible in Elgg classic now become very easy indeed.
Don’t know what I mean? Well, suppose you were looking for Blog posts tagged with “Firefly”, in Elgg classic you could have these listed out in a feed.
Fine.
But suppose you wanted to show videos or music tagged with “Firefly” on the same page? What if you want to write a plugin that displays flash games or store files on S3 and want them to show up in the same stream?
All very easy now. Cute eh?
The above is a rather simplistic example of what is possible. I have hinted at some other applications a few posts back…
I should also note that I use the term “Elgg Classic” to refer to Elgg 0.x.
Elgg 1 should be thought of as the same product but with a major number increase.
[…] as mentioned previously, is XML based. When making it I used Elgg 1’s object model as a guide and reduced things down to their lowest common denominators, therefore we have three […]
[…] 1.0 features some rather advanced features such as the much improved object model which I’ve blogged about before (also see Ben’s post) as well as native support for […]