Book Image

Elgg 1.8 Social Networking

By : Cash Costello
Book Image

Elgg 1.8 Social Networking

By: Cash Costello

Overview of this book

As an updated version of the first ever Elgg book, this is an excellent resource for those interested in Elgg development due to its attention to detail, clearly written style and knowledgeable author. - Dave Tosh, Elgg co-founder. In his book, Cash Costello makes full use of his skills in development and communication to tackle the complex subject of Elgg social networking. This easy-to-read guide gives end users, new developers, and old pros alike a solid base to start their venture into social media with Elgg. I highly recommend it as a useful and enjoyable read. - Brett Profitt, Elgg Lead Developer The web is becoming increasingly social as millions of people use it to blog, share, post, 'friend', 'unfriend' (which was made the Oxford word of the year in 2009), comment, and chat. Elgg ñ your award-winning open source social networking engine ñ is tailor-made to create any social networking or social media website you can imagine. If you want to create a social networking website from scratch using Elgg, then this book is exactly what you need.Elgg 1.8 Social Networking covers everything you need to know about building a social networking site with Elgg. It begins with instructions for installing Elgg, continues with a guided tour of its capabilities, and finishes with practical advice on deploying Elgg on a production server. And in between, it is packed with information on configuring and customizing Elgg through plugins and themes.This book is a learn-by-doing guide to creating your own social networking site. It includes three sample case studies on how Elgg could be used as an e-learning tool, an intranet application for organizations, and a niche social networking site. Step by step it takes you through the installation, configuration, and customization of Elgg. Valuable advice is sprinkled throughout the book to enable you to build your site like an expert. For developers, this book provides a multitude of options. First, there is a tutorial-based section that systematically teaches you how to build plugins. Soon you will have ten plugins for use on your site in addition to all the knowledge you have gained. Second, if you prefer a quick overview, this book has an appendix that describes Elgg using the terminology and design patterns common in web development. Third, if you are interested in creating a theme, it also includes a design tutorial and a catalog of Elgg's view templates. The book then goes on to describe what is involved in running a production website. It has sections on selecting a hosting provider, configuring and tuning the server, backing up the site, and dealing with spammers.
Table of Contents (21 chapters)
Elgg 1.8 Social Networking
About the Author
About the Author of 1st edition
About the Reviewers

Case studies

To get the creative juices flowing and as a demonstration of how Elgg can be used, consider the following three case studies.

Niche social network

James wants to create a social networking site for tango dancers around the world. He wants his users to be able to upload tango music and playlists. They can upload videos of tango dancing and rate them. Each city will have its own group where members can discuss tango related activities. The groups should have a calendar that lists the upcoming dances and a place for people to post photos of previous events. James also wants to pull in posts by tango bloggers from outside his site and redistribute them as a feed to make it easy for people to follow what people are saying in the community. He, of course, also wants a slick theme that elicits the emotion of the dance.

Designing and building the site

James has selected Elgg to run his site. As he looks through what plugins are available, he sees that there is already a file sharing plugin with an extension for playing MP3s in the page. He decides to rename the default blog plugin to playlists so that people can create and comment on them. James is delighted when he sees a video plugin that uses the Kaltura video site as the backend. This means the videos will not be stored on his server, decreasing his storage requirements.

For the city-focused groups, he uses the Elgg group's plugin in combination with plugins that provide an event calendar and a photo gallery. He likes that the gallery plugin provides photo tagging and hopes that the tagging notifications gives people a reason to keep coming back to the site. He still needs to figure out how to pull in the blog feeds of tango bloggers. He finds a plugin that displays RSS feeds on user profile pages, but it requires additional development to make it do exactly what he wants. He happens to have a friend with PHP experience and with a little free development help; he now has an aggregated tango blog feed.

With theming he has two choices: either download a free theme and modify it to fit his needs or contract with a web designer to build one for him. James decides that the visual interface is too important to skimp on and uses a freelance designer.

Deploying the site

The only step left is convincing people to use his site. James has been smart. By resyndicating the blog feeds he has won the favor of the bloggers who now link back to his site. He also recruited a few well known dancers from key cities to join. James's final step is to contract a developer to create an invitational system plugin. Each member gets a limited number of invites and the only way to join is to get an invite. This helps to create a buzz about the new tango site.

From this example, you not only see how James used Elgg but also that creating and growing a social networking site is more than software. A common mistake is spending a lot of time building a site and forgetting about the challenges of getting people to use it.

Plugins mentioned

Four of the plugins mentioned are distributed with Elgg: file sharing, MP3 player (zaudio plugin), blogging, and groups. The Kaltura collaborative video plugin by Ivan Vergés, event calendar plugin by Kevin Jardine, the Tidypics photo gallery plugin by the Tidypics team, and the Simplepie RSS feed plugin by Cash Costello are all available from the plugin repository on the Elgg website.

Corporate intranet

Imagine a theoretical company called Acme Corporation. Acme has deployed applications on their intranet to encourage collaboration among their employees. They are using MediaWiki as their wiki and Sharepoint for file sharing. Management and the employees are not satisfied with the current solution. They still feel that it is difficult to find the right person with the right expertise for a project, quickly organize ad hoc teams, or form communities of practice that cut across organizational boundaries. They need software to tie together the current intranet applications while providing the social functionality needed to address the mentioned limitations.

Designing and building the site

The collaborative software team decides to create a prototype with Elgg to evaluate a social networking solution. The first requirement is that the users need to be able to log in using their Active Directory credentials. Fortunately, there is already a LDAP plugin available and with a small amount of configuration, it is up and running. The second requirement is supporting the formation of communities of practice. The group plugin distributed with Elgg provides this capability and it is activated on the development server.

Next, on the list is user profiles to help with the challenge of finding expertise. The profile plugin that comes with Elgg has tagged profile fields, but the development team felt they needed a more powerful and extensible profile capability. A third-party plugin that extends the profile plugin to provide profile types and more customizable profile fields was found on the Elgg community plugin repository.

Integration with MediaWiki and Sharepoint are the remaining requirements. Another organization released a MediaWiki plugin that pulls content out of the wiki and makes it available within Elgg. That was a quick solution, but integration with Sharepoint proves to be more difficult. After some research, they decide to write a custom plugin to use Sharepoint's web services API. The developers end up tying in updates on files in Sharepoint to the activity stream provided by Elgg. Now users can get updates on anything that is happening in the wiki, Sharepoint, or Elgg in one place.

A few of the developers have been using Twitter so they try out Elgg's microblogging plugin. The team likes its ease of use and the ability to share quick status updates, so they decide to include it in the production system.

Deploying the site

Before making the site available, the development teams decides to create accounts for all the employees first. They write a plugin that extends the LDAP plugin that grabs all the users from the Active Directory server, creates the accounts, and fills in some of the profile fields. To speed adoption of the new application, particular communities that would benefit from the groups capability are targeted. Very soon there is an active group for Java developers with shared code snippets and discussion threads on unit testing, distributed versioning systems, and many other topics.

Plugins mentioned

Core plugins mentioned were groups, the wire (microblogging), and profile. The profile manager plugin by ColdTrick IT Solutions is available from the Elgg community plugin repository. The MediaWiki integration plugin written by the MITRE Corporation is also available there. The LDAP plugin is available from Elgg's github account (

Educational collaboration

Mr. Harris teaches middle school history and wants to use collaborative technology for a group project idea that he has. He needs a web-based application that is simple to set up and requires minimal configuration. Mr. Harris wants the students to break up into teams, research a historical figure, and then create an online profile for that person. The profile will include biographical information along with status updates and blogs written from the perspective of the historical figure. He also wants the students to use the site to collect resources and collaborate on the writing process.

He decides the tools he needs are blogging, groups, bookmarking, and collaborative document editing. Another requirement is that the students need to be able to access it at home and school, but no one else on the Internet should be able to see the data. One last requirement is that it must be cheap—preferably free.

Designing and building the site

Mr. Harris was recently at a conference on online collaboration in the classroom and remembers Elgg being mentioned. As he looks through the plugins, he sees all the tools that he needs. Blogging, groups, profiles, status updates, and social bookmarking are all available.

The teams will use the social bookmarking plugin to save and share online resources. The pages plugin will be used by the teams to collect the information they have gathered, both Internet and book based, in one place before they create the profile or write the blog posts. Mr. Harris likes that the pages plugin records who has been working on each web page so that he can see who is contributing to it.

The last piece is making the site a walled garden so that only students and school staff can log in and see the data. Fortunately, Elgg got its start in the educational arena and has that feature built-in. Because Elgg is free open source software, Mr. Harris was able to do all of this without any cost other than his time.

Deploying the site

The school IT staff installs Elgg on a server. Mr. Harris creates a spreadsheet with all the students' information and uses an importer plugin to create accounts for them. The experiment is a success. The students like working in an environment that feels like Facebook and are comfortable using these types of tools. A few of the blog posts that they wrote are quite entertaining.

Plugins mentioned

The pages, groups, blog, bookmarks, profile, and the wire (for user status) plugins are all bundled plugins distributed with Elgg. The user importer plugin is available from the Elgg github account.