Download - 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
Components
Pages
RSS
Files
Tags
Comment
Blog
Messages
Widgets
Friends/Groups
Forum
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
Customize Page
Elgg Data Model
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');
Views
• Elgg site can support different interface pages – Standard HTML – HTML optimised for accessibility – Mobile Internet – iPhone – Embeddable widget
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');
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>
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);
Business Opportunities in Elgg
• Education (Social E-learning)– Universities– Schools
• Social Intranet for organizations– Employee activities– Knowledge base– Company events
• Custom Social Networks
Profile
Groups
Dashboard
Files
Thanks