Elgg

There isn't a lot to go on, but the basics of a plugin's directory structure and requied files/functions is at

and

There is also a few more available APIs for hooking into event notifications and some template'ing outlined here, but its pretty sparse

Tips

Modifying the current page

If you want to make any modifications to the current page, like adding/removing menu items, you'll want to use 'page'

 global $PAGE
 $PAGE->menu[] = array (
    'name' => 'INTERNAL MENU NAME',
    'html' => '<li><a href="MENU URL" class="selected">' . __gettext("MENU NAME") . '</a></li>');

Accessing globals defined in the config

if you need to get the db username/password, or the elgg based URL, you can use 'cfg'

 global $CFG;
 $CFG->wwwroot //http://beaversource.oregonstate.edu/social on the production server

Accessing logged on user information

If you need to check information about a logged on user, you can use the following global variable:

 global $USER;

@todo: need to add information about the contents of the $USER variable