X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FImap%2FImapPlugin.php;h=d1e920b009111d42f40f565bda2413beadc452d1;hb=c748933132b58ba3c837da3ad48979cfc6d52b8a;hp=034444222210819e5cbab3f1fae1bd8d7c0d2172;hpb=a180658a3bfcf2b7b312058e3aa76e0e2467c2f8;p=quix0rs-gnu-social.git diff --git a/plugins/Imap/ImapPlugin.php b/plugins/Imap/ImapPlugin.php index 0344442222..d1e920b009 100644 --- a/plugins/Imap/ImapPlugin.php +++ b/plugins/Imap/ImapPlugin.php @@ -46,8 +46,6 @@ class ImapPlugin extends Plugin public $user; public $password; public $poll_frequency = 60; - public static $instances = array(); - public static $daemon_added = array(); function initialize(){ if(!isset($this->mailbox)){ @@ -63,23 +61,44 @@ class ImapPlugin extends Plugin throw new Exception("must specify a poll_frequency"); } - self::$instances[] = $this; return true; } - function cleanup(){ - $index = array_search($this, self::$instances); - unset(self::$instances[$index]); - return true; + /** + * Load related modules when needed + * + * @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 'ImapManager': + case 'IMAPMailHandler': + include_once $dir . '/'.strtolower($cls).'.php'; + return false; + default: + return true; + } } - function onGetValidDaemons($daemons) + function onStartQueueDaemonIoManagers(&$classes) { - if(! self::$daemon_added){ - array_push($daemons, INSTALLDIR . - '/plugins/Imap/imapdaemon.php'); - self::$daemon_added = true; - } + $classes[] = new ImapManager($this); + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'IMAP', + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:IMAP', + 'rawdescription' => + _m('The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for incoming mail containing user posts.')); return true; } }