Monday, January 25, 2010

What the Elgg?

This past week, I've been researching content management systems and social network plugins to base our dorm energy competition on. I eventually got to the point where I felt using a large CMS like Joomla! or Drupal was probably more than what we really needed. There is a lot going for Joomla! and Drupal. The developer base is immense and there's no shortage of documentation. However, I think we would need to do a lot of customization for the competition and we'd need to learn how the code is structured. I'm guessing there's a lot of code in Drupal and Joomla! that we'd need to figure out.

I've been leaning toward social networking engines and plugins like CommunityEngine and Elgg because they are designed to be customized to our liking. These plugins may not be nearly as popular as Joomla! or Drupal, but they have a fair amount of documentation and activity. Since they aren't as complicated as CMSs, I felt that I'd be able to produce results quicker with a plugin rather than a full fledged system.

The plugin I chose was Elgg. There were several contenders, but Elgg has an active community and development is still ongoing. Elgg turned out to be a really choice because it's easy to implement some of the mockups we have. Elgg allows users to attach widgets to their profile and dashboard (the dashboard is what they see when they log in), which is very similar to the mockups we have.

Mockup and Elgg Implementation (in progress)

That's not to say that there weren't a few headaches. Even though I had Apache and PHP set up on my Mac, I still had to do some debugging with the Elgg install to make sure the appropriate ModRewrite rules were in place. Then was learning the framework, which is a little tricky. Elgg is designed so that the core functionality never needs to be modified. Rather, we write plugins that override the core's views and objects. It's taking me a little time to get up to speed, but I'm starting to feel more comfortable with it. As you can see in the mockups, I'm able to add in widgets and change some profile fields. I also overrode the header to add additional text (links to be added later).

Right now, I'm trying to wrap my head around the data model used in Elgg so that I can add actions and commitments to the widgets. But I'm hopeful that I'll get something kind of working by the end of the week. I'm actually more interested in what other people come up with since we're attempting to create prototypes using different CMSs/engines/plugins.

No comments:

Post a Comment