In Elgg 1, we will finally have native support for a River – that is, a stream of short updates of what you and your friends are up to on your profile.
Here is a short post explaining how you as a plugin writer could add river reporting to your code!
Events
The key to how the river works is the Elgg 1 events system and the system log.
The system log will listen to events and some events pass an object. If the object implements the Loggable
interface it will automatically be included in the system log.
The view
In order for things to appear in the river you need to provide a view. This view should be /river/CLASSNAME/EVENT
, where CLASSNAME
is the class you’re interested in and EVENT
is the event.
For example, if you want to output create
events for all ElggObject
s then you would need to create a file called create.php
in a directory /river/ElggObject/create.php
.
This file will be passed a number of variables via $vars
.
$vars['performed_by']
: AnElggUser
object of the user that performed the action.$vars['log_entry']
: The system log row (which includes the event).$vars['object']
: The subject of the event.
You can use this information to put together a very customisable view, don’t forget to internationalise your strings!
[…] latest Elgg 1.0 code changes how the river works slightly from that discussed in my previous article on the subject. These changes are entirely under the hood so they’ll only be noticeable to plugin writers, […]