* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
-
class SamplePlugin extends Plugin
{
/**
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function initialize()
{
return true;
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function cleanup()
{
return true;
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function onCheckSchema()
{
$schema = Schema::get();
// For storing user-submitted flags on profiles
-
- $schema->ensureTable('user_greeting_count',
- array(new ColumnDef('user_id', 'integer', null,
- true, 'PRI'),
- new ColumnDef('greeting_count', 'integer')));
-
+ $schema->ensureTable('user_greeting_count', User_greeting_count::schemaDef());
return true;
}
- /**
- * Load related modules when needed
- *
- * Most non-trivial plugins will require extra modules to do their work. Typically
- * these include data classes, action classes, widget classes, or external libraries.
- *
- * This method receives a class name and loads the PHP file related to that class. By
- * tradition, action classes typically have files named for the action, all lower-case.
- * Data classes are in files with the data class name, initial letter capitalized.
- *
- * Note that this method will be called for *all* overloaded classes, not just ones
- * in this plugin! So, make sure to return true by default to let other plugins, and
- * the core code, get a chance.
- *
- * @param string $cls Name of the class to be loaded
- *
- * @return boolean hook value; true means continue processing, false means stop.
- */
-
- function onAutoload($cls)
- {
- $dir = dirname(__FILE__);
-
- switch ($cls)
- {
- case 'HelloAction':
- include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
- return false;
- case 'User_greeting_count':
- include_once $dir . '/'.$cls.'.php';
- return false;
- default:
- return true;
- }
- }
-
/**
* Map URLs to actions
*
* action will be named 'FoobarAction', where action = 'foobar'. The class
* must be loaded in the onAutoload() method.
*
- * @param Net_URL_Mapper $m path-to-action mapper
+ * @param URLMapper $m path-to-action mapper
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
- function onRouterInitialized($m)
+ public function onRouterInitialized(URLMapper $m)
{
$m->connect('main/hello',
array('action' => 'hello'));
*
* @see Action
*/
-
function onEndPrimaryNav($action)
{
// common_local_url() gets the correct URL for the action name
// we provide
-
$action->menuItem(common_local_url('hello'),
- _m('Hello'), _m('A warm greeting'), false, 'nav_hello');
+ // TRANS: Menu item in sample plugin.
+ _m('Hello'),
+ // TRANS: Menu item title in sample plugin.
+ _m('A warm greeting'), false, 'nav_hello');
return true;
}
- function onPluginVersion(&$versions)
+ function onPluginVersion(array &$versions)
{
$versions[] = array('name' => 'Sample',
- 'version' => STATUSNET_VERSION,
+ 'version' => GNUSOCIAL_VERSION,
'author' => 'Brion Vibber, Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:Sample',
'rawdescription' =>
+ // TRANS: Plugin description.
_m('A sample plugin to show basics of development for new hackers.'));
return true;
}
}
-