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
Credits
Foreword
About the Author
About the Author of 1st edition
About the Reviewers
www.PacktPub.com
Preface
Index

The power of plugins


We just reviewed part of the functionality of the Elgg engine, but you probably noticed that there was no mention of blogging, status updates, or other features common to social networking sites. That is because these features are offered through plugins. The plugins modify or extend Elgg giving you control over what features are included in your site.

Bundled plugins

Elgg is distributed with a set of plugins which are written and supported by the Elgg development team. These are called the bundled plugins. These plugins provide enough functionality to run a basic social networking site and are a good demonstration of what is possible using Elgg's plugin system.

The bundled plugins provide a wide range of functionality. Included are content sharing plugins such as blogging, social bookmarking, and file sharing. There are plugins for user profiles, activity streams, groups, and notifications. Integration with Twitter, private messaging, search, and administrative tools are also provided through these plugins. Detailed information on the bundled plugins is included in Chapter 3, A Tour of Your First Elgg Site, Chapter 4, Sharing Content, and Chapter 5, Communities, Collaboration, and Conversation.

Third-party plugins

As an open source project, Elgg has a community of developers who build plugins for their own use and then share them with other Elgg users. These plugins are referred to as third-party plugins and many are available from the plugin repository on the Elgg website (http://community.elgg.org/pg/plugins). Some of these plugins add significant functionality to Elgg such as a photo gallery or event calendar. Others extend a bundled plugin or customize an aspect of the Elgg engine. There are hundreds of third-party plugins available. Chapter 6, Finding and Using Plugins describes a few of the best and gives advice on how to select and test any plugin.

Themes

The look and feel of Elgg is controlled by the theme. Elgg comes with a default theme that you can use. It is not a separate module that can be uninstalled, but is built into the engine. To change the theme, you install a theme plugin that overrides parts or the entire default theme. Theme plugins are installed just like other plugins and have access to the same APIs. Chapter 9 provides information on where to find themes for download, describes the components of a theme, and includes a guide to creating your own.

Building your own plugins

You can build your own plugins to customize or extend Elgg. Writing a simple plugin requires either basic knowledge of (or the motivation and persistence to learn) both PHP and HTML. An example of a simple plugin is one that changes the word "blog" to "report" in the blog plugin's menus and page titles. Creating a plugin that does this is quite easy to write. There is a tutorial in Chapter 8, Customization Through Plugins that shows how this can be done.

A more complicated plugin is one that modifies how Elgg handles the creation of "friend" relationships. Elgg's default model is that any member can friend any other member without requiring a confirmation. A one-way relationship is formed, meaning that the fact that I am your friend does not imply that you are my friend. This is consistent with Twitter's model of followers. For your social networking application, you may want two-way relationships that require confirmation as Facebook does. The plugin would hook into Elgg's engine and change the relationship creation process. A reciprocal friendship plugin like this is available in the Elgg community plugin repository.

With the right development skills, you could also write a plugin that adds a significant new capability to Elgg or integrates Elgg with another open source web application. Elgg's plugin API is quite powerful so the only limitations to what you can build are your skills, time, and creativity.