git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

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) {
$this->action->menuItem(common_local_url('imsettings'),
// TRANS: Menu item in settings navigation panel.
_m('MENU','IM'),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment