Commit ad726a15 authored by Evan Prodromou's avatar Evan Prodromou

Use an event to signal that IM settings are available

Rather than enumerating available classes, define an event that sets a
flag indicating that there's an IM plugin available. Implemented in
implugin.php, so all IM plugins that use that class should
work. Others can hook the event, too.
parent c48cdc7d
......@@ -1422,3 +1422,6 @@ StartUpgrade: when starting a site upgrade
EndUpgrade: when ending a site upgrade; good place to do your own upgrades
HaveIMPlugin: is there an IM plugin loaded?
- &$haveIMPlugin: set me to true if you're loaded!
......@@ -620,6 +620,11 @@ abstract class ImPlugin extends Plugin
return true;
function onHaveImPlugin(&$haveImPlugin) {
$haveImPlugin = true; // set flag true (we're loaded, after all!)
return false; // stop looking
function initialize()
if( ! common_config('queue', 'enabled'))
......@@ -121,7 +121,11 @@ class SettingsNav extends Menu
Event::handle('EndAccountSettingsNav', array(&$this->action));
if (class_exists('XmppPlugin') || class_exists('IrcPlugin') || class_exists('MsnPlugin')) {
$haveImPlugin = false;
Event::handle('HaveImPlugin', array(&$haveImPlugin));
if ($haveImPlugin) {
// TRANS: Menu item in settings navigation panel.
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment