. */ /** * @package YammerImportPlugin * @maintainer Brion Vibber */ if (!defined('STATUSNET')) { exit(1); } class YammerImportPlugin extends Plugin { /** * Hook for RouterInitialized event. * * @param Net_URL_Mapper $m path-to-action mapper * @return boolean hook return */ function onRouterInitialized($m) { $m->connect('admin/yammer', array('action' => 'yammeradminpanel')); return true; } /** * Set up queue handlers for import processing * @param QueueManager $qm * @return boolean hook return */ function onEndInitializeQueueManager(QueueManager $qm) { $qm->connect('importym', 'ImportYmQueueHandler'); 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) { $schema->ensureTable($table, $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'), _m('Yammer'), _m('Yammer import'), $action_name == 'yammeradminpanel', 'nav_yammer_admin_panel'); } return true; } /** * Automatically load the actions and libraries used by the plugin * * @param Class $cls the class * * @return boolean hook return * */ function onAutoload($cls) { $base = dirname(__FILE__); $lower = strtolower($cls); switch ($lower) { case 'sn_yammerclient': case 'yammerimporter': require_once "$base/lib/$lower.php"; return false; case 'yammeradminpanelaction': require_once "$base/actions/yammeradminpanel.php"; return false; default: return true; } } }