Introduction to Elgg

17
An Introduction to Nitesh Nandy @Barcamp, Delhi [email protected]

description

An introduction to Elgg, presented at Barcamp, New Delhi

Transcript of Introduction to Elgg

Page 1: Introduction to Elgg

An Introduction to

Nitesh Nandy @Barcamp, Delhi

[email protected]

Page 2: Introduction to Elgg

What is Elgg ?

• Elgg built on LAMP and is open source

• Roll out your own social network• Bundles social networking

components• Building on Elgg is easy

Page 3: Introduction to Elgg

Components

Pages

RSS

Files

Tags

Comment

Blog

Messages

Widgets

Friends/Groups

Forum

Page 4: Introduction to Elgg

Features

• Advanced user management and administration

• Cross-site tagging• Powerful access control list• Internationalization support• Multiple view support (eg. cell phone,

iPhone)• Advanced templating engine• Widget framework• Opensocial support

Page 5: Introduction to Elgg

Customize Page

Page 6: Introduction to Elgg

Elgg Data Model

Page 7: Introduction to Elgg

Events

• Events triggered when certain things happen– User Action– Callbacks– Special Events (Boot, Init)

• Hook has to be registered to handle the specific events

register_elgg_event_handler('init','system','entities_init');

Page 8: Introduction to Elgg

Views

• Elgg site can support different interface pages – Standard HTML – HTML optimised for accessibility – Mobile Internet – iPhone – Embeddable widget

Page 9: Introduction to Elgg

Plugins

• Most of the end user functionality in Elgg comes from plugins

• Plugins reside under /mod folder– start.php: control hub of a plugin– Register plugin inside Elgg init event

register_elgg_event_handler('init','system','entities_init');

Page 10: Introduction to Elgg

Creating a Simple Blog Plugin

• Create Object View<h1><?php echo $vars['entity']->title; ?></h1>  

<p><?php echo $vars['entity']->body; ?></p>  

<?php echo elgg_view('output/tags', array('tags' => $vars['entity']->tags)); ?>

• Create Form<form action="<?php echo $vars['url']; ?>action/blog/save" method="post">  

<?php echo elgg_echo("title"); ?><br />

<?php echo elgg_view('input/text',array('internalname' => 'title')); ?>

<?php echo elgg_echo("body"); ?><br /> <?php echo elgg_view('input/longtext',array('internalname' => 'body')); ?>

<p><?php echo elgg_echo("tags"); ?><br /> <?php echo elgg_view('input/tags',array('internalname' => 'tags')); ?></p>  

<p><input type="submit" value="<?php echo elgg_echo('save'); ?>" /></p>   </form>

Page 11: Introduction to Elgg

Contd…

• Create Save File$blogpost = new ElggObject();  

$blogpost->title = get_input('title');   $blogpost->description = $description;

$blogpost->access_id = ACCESS_PUBLIC;

$blogpost->owner_guid = $_SESSION['user']->getGUID();

$blogpost->save();  

$blogpost->tags = string_to_tag_array(get_input('tags'));

forward($blogpost->getURL());

• Display Blogrequire_once(dirname(dirname(dirname(__FILE__))).engine/start.php");

$body = list_entities('object','blog',0,10,false);

$body = elgg_view_layout('one_column', $body);

page_draw("Our Blog",$body);

Page 12: Introduction to Elgg

Business Opportunities in Elgg

• Education (Social E-learning)– Universities– Schools

• Social Intranet for organizations– Employee activities– Knowledge base– Company events

• Custom Social Networks

Page 13: Introduction to Elgg

Profile

Page 14: Introduction to Elgg

Groups

Page 15: Introduction to Elgg

Dashboard

Page 16: Introduction to Elgg

Files

Page 17: Introduction to Elgg

Thanks