getCategory(), $this->getName()); if (is_array($params['path'])) { $params['path'] = array_merge($path, $params['path']); } elseif (!empty($params['path'])) { $params['path'] = array_merge($path, array($params['path'])); } else { $params['path'] = $path; } return $smarty->smartyUrl($params, $smarty); } /** * Display verbs for the management interface. */ function getManagementVerbs() { $verbs = array(); if ($this->getEnabled()) { $verbs[] = array( 'disable', Locale::translate('manager.plugins.disable') ); } else { $verbs[] = array( 'enable', Locale::translate('manager.plugins.enable') ); } return $verbs; } /** * Determine whether or not this plugin is enabled. */ function getEnabled() { $conference =& Request::getConference(); if (!$conference) return false; return $this->getSetting($conference->getConferenceId(), 0, 'enabled'); } /** * Set the enabled/disabled state of this plugin */ function setEnabled($enabled) { $conference =& Request::getConference(); if ($conference) { $this->updateSetting( $conference->getConferenceId(), 0, 'enabled', $enabled?true:false ); return true; } return false; } /** * Perform management functions */ function manage($verb, $args) { $templateManager =& TemplateManager::getManager(); $templateManager->register_function('plugin_url', array(&$this, 'smartyPluginUrl')); switch ($verb) { case 'enable': $this->setEnabled(true); break; case 'disable': $this->setEnabled(false); break; } return false; } /** * Handle fetch requests for this plugin. */ function fetch($args) { // Subclasses should override this function. return false; } } ?>