• Home
  • Consultancy
  • Contact
  • Elgg 1 object model

    April 8th, 2008 by Marcus Povey

    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…

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • Digg
    • del.icio.us
    • StumbleUpon
    • Reddit
    • Facebook
    • TwitThis
    • LinkedIn
    • NewsVine
    • Slashdot
    • Technorati
    • Google Bookmarks
    • email

    Related posts (automatically generated)

    3 Responses to “Elgg 1 object model”

    1. Marcus Povey says:

      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.

    2. [...] 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 [...]

    3. [...] 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 [...]

    Leave a Reply

    Additional comments powered by BackType

    All content is © Copyright Marcus Povey 2008-2010 and released under a Creative Commons licence unless otherwise stated.

    Creative Commons License