. */ /** * @package YammerImportPlugin * @maintainer Brion Vibber */ if (!defined('STATUSNET')) { exit(1); } class YammerImportPlugin extends Plugin { /** * Hook for RouterInitialized event. * * @param URLMapper $m path-to-action mapper * @return boolean hook return */ public function onRouterInitialized(URLMapper $m) { $m->connect('panel/yammer', array('action' => 'yammeradminpanel')); $m->connect('panel/yammer/auth', array('action' => 'yammerauth')); return true; } /** * Set up queue handlers for import processing * @param QueueManager $qm * @return boolean hook return */ function onEndInitializeQueueManager(QueueManager $qm) { $qm->connect('yammer', 'YammerQueueHandler'); return true; } /** * Set up all our tables... */ function onCheckSchema() { $schema = Schema::get(); $tables = array('Yammer_state', 'Yammer_user', 'Yammer_group', 'Yammer_notice', 'Yammer_notice_stub'); foreach ($tables as $table) { $schemaDef = call_user_func(array($table, 'schemaDef')); $schema->ensureTable(strtolower($table), $schemaDef); } return true; } /** * If the plugin's installed, this should be accessible to admins. */ function onAdminPanelCheck($name, &$isOK) { if ($name == 'yammer') { $isOK = true; return false; } return true; } /** * Add the Yammer admin panel to the list... */ function onEndAdminPanelNav($nav) { if (AdminPanelAction::canAdmin('yammer')) { $action_name = $nav->action->trimmed('action'); $nav->out->menuItem(common_local_url('yammeradminpanel'), // TRANS: Menu item for Yammer import. _m('MENU','Yammer'), // TRANS: Menu item title for Yammer import. _m('Yammer import module.'), $action_name == 'yammeradminpanel', 'nav_yammer_admin_panel'); } return true; } }