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…

Just to make you aware, the first book written for Elgg is now available to buy.

The Triffid book (as we’re unofficially calling it) covers the 0.x codebase, and serves as a good introduction into installing and running your own installation.

If you are looking to create your social networking site by tomorrow, then this book is for you. You will be equipped with a social networking site even before you are through this book. You don’t have to be a hard-core programmer to do this. All you need is a computer with an internet connection and this book.

Next: Elgg the Movie (just kidding).

Update: the latest book is for Elgg 1.8, you can buy it here (Full disclosure: As an Amazon Associate I earn from qualifying purchases):

One of the most requested features for the new Elgg has been a generic way to import and export data. Users want to free their data, and be able to move their profiles between installs.

Quite right, and over the next few days I will be working on this…

…Actually, Elgg1’s new object model actually should make this fairly easy.

Under Elgg1 all entities have a unique identifier, so plugin authors will be able to add extra information to export and import. So, if you were to export a user or a site you will be able to get everything that you have access to.

I think this should be pretty cool.