+/**
+ * Sample plugin main class
+ *
+ * Each plugin requires a main class to interact with the StatusNet system.
+ *
+ * The main class usually extends the Plugin class that comes with StatusNet.
+ *
+ * The class has standard-named methods that will be called when certain events
+ * happen in the code base. These methods have names like 'onX' where X is an
+ * event name (see EVENTS.txt for the list of available events). Event handlers
+ * have pre-defined arguments, based on which event they're handling. A typical
+ * event handler:
+ *
+ * function onSomeEvent($paramA, &$paramB)
+ * {
+ * if ($paramA == 'jed') {
+ * throw new Exception(sprintf(_m("Invalid parameter %s"), $paramA));
+ * }
+ * $paramB = 'spock';
+ * return true;
+ * }
+ *
+ * Event handlers must return a boolean value. If they return false, all other
+ * event handlers for this event (in other plugins) will be skipped, and in some
+ * cases the default processing for that event would be skipped. This is great for
+ * replacing the default action of an event.
+ *
+ * If the handler returns true, processing of other event handlers and the default
+ * processing will continue. This is great for extending existing functionality.
+ *
+ * If the handler throws an exception, processing will stop, and the exception's
+ * error will be shown to the user.
+ *
+ * To install a plugin (like this one), site admins add the following code to
+ * their config.php file:
+ *
+ * addPlugin('Sample');
+ *
+ * Plugins must be installed in one of the following directories:
+ *
+ * local/plugins/{$pluginclass}.php
+ * local/plugins/{$name}/{$pluginclass}.php
+ * local/{$pluginclass}.php
+ * local/{$name}/{$pluginclass}.php
+ * plugins/{$pluginclass}.php
+ * plugins/{$name}/{$pluginclass}.php
+ *
+ * Here, {$name} is the name of the plugin, like 'Sample', and {$pluginclass} is
+ * the name of the main class, like 'SamplePlugin'. Plugins that are part of the
+ * main StatusNet distribution go in 'plugins' and third-party or local ones go
+ * in 'local'.
+ *
+ * Simple plugins can be implemented as a single module. Others are more complex
+ * and require additional modules; these should use their own directory, like
+ * 'local/plugins/{$name}/'. All files related to the plugin, including images,
+ * JavaScript, CSS, external libraries or PHP modules should go in the plugin
+ * directory.
+ *
+ * @category Sample
+ * @package StatusNet
+ * @author Brion Vibber <brionv@status.net>
+ * @author Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link http://status.net/
+ */