For backward compatibility: Piwik API still works if module=Referers,
we rewrite to correct renamed plugin: Referrers
public static getRenamedModuleAndAction ( $module, $action ) : array( | ||
$module | ||
$action | ||
return | array( |
protected function getPluginsInfo($themesOnly = false) { $pluginManager = \Piwik\Plugin\Manager::getInstance(); $plugins = $pluginManager->loadAllPluginsAndGetTheirInfo(); foreach ($plugins as $pluginName => &$plugin) { $plugin['isCorePlugin'] = $pluginManager->isPluginBundledWithCore($pluginName); if (!empty($plugin['info']['description'])) { $plugin['info']['description'] = $this->translator->translate($plugin['info']['description']); } if (!isset($plugin['info'])) { $suffix = $this->translator->translate('CorePluginsAdmin_PluginNotWorkingAlternative'); // If the plugin has been renamed, we do not show message to ask user to update plugin list($pluginNameRenamed, $methodName) = Request::getRenamedModuleAndAction($pluginName, 'index'); if ($pluginName != $pluginNameRenamed) { $suffix = "You may uninstall the plugin or manually delete the files in piwik/plugins/{$pluginName}/"; } $description = '<strong><em>' . $this->translator->translate('CorePluginsAdmin_PluginNotCompatibleWith', array($pluginName, self::getPiwikVersion())) . '</strong><br/>' . $suffix . '</em>'; $plugin['info'] = array('description' => $description, 'version' => $this->translator->translate('General_Unknown'), 'theme' => false); } } $pluginsFiltered = $this->keepPluginsOrThemes($themesOnly, $plugins); return $pluginsFiltered; }
protected function prepareDispatch($module, $action, $parameters) { if (is_null($module)) { $module = Common::getRequestVar('module', self::DEFAULT_MODULE, 'string'); } if (is_null($action)) { $action = Common::getRequestVar('action', false); } if (SettingsPiwik::isPiwikInstalled() && ($module !== 'API' || $action && $action !== 'index')) { Session::start(); $this->closeSessionEarlyForFasterUI(); } if (is_null($parameters)) { $parameters = array(); } if (!ctype_alnum($module)) { throw new Exception("Invalid module name '{$module}'"); } list($module, $action) = Request::getRenamedModuleAndAction($module, $action); if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated($module)) { throw new PluginDeactivatedException($module); } return array($module, $action, $parameters); }