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…