Returns true if the plugin is bundled with core or false if it is third party.
public isPluginBundledWithCore ( string $name ) : boolean | ||
$name | string | The name of the plugin, eg, `'Actions'`. |
리턴 | boolean |
public function getCoreAndSupportedPlugins() { $settings = new \Piwik\Application\Kernel\GlobalSettingsProvider(); $pluginList = new \Piwik\Application\Kernel\PluginList($settings); $pluginManager = new PluginManager($pluginList); $disabledPlugins = $pluginList->getCorePluginsDisabledByDefault(); $disabledPlugins[] = 'LoginHttpAuth'; $disabledPlugins[] = 'ExampleVisualization'; $disabledPlugins = array_diff($disabledPlugins, array('DBStats', 'ExampleUI', 'ExampleCommand', 'ExampleSettingsPlugin')); $plugins = array_filter($pluginManager->readPluginsDirectory(), function ($pluginName) use($disabledPlugins, $pluginManager) { if (in_array($pluginName, $disabledPlugins)) { return false; } return $pluginManager->isPluginBundledWithCore($pluginName) || $pluginManager->isPluginOfficialAndNotBundledWithCore($pluginName); }); sort($plugins); return $plugins; }
/** * @param \Piwik\Plugin[] $plugins * @return array|mixed */ public function checkUpdates($plugins) { $params = array(); foreach ($plugins as $plugin) { $pluginName = $plugin->getPluginName(); if (!$this->pluginManager->isPluginBundledWithCore($pluginName)) { $params[] = array('name' => $plugin->getPluginName(), 'version' => $plugin->getVersion()); } } if (empty($params)) { return array(); } $params = array('plugins' => $params); $hasUpdates = $this->fetch('plugins/checkUpdates', array('plugins' => json_encode($params))); if (empty($hasUpdates)) { return array(); } return $hasUpdates; }
protected function getPluginsInfo($themesOnly = false) { $plugins = $this->pluginManager->loadAllPluginsAndGetTheirInfo(); foreach ($plugins as $pluginName => &$plugin) { $plugin['isCorePlugin'] = $this->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>' . $this->translator->translate('CorePluginsAdmin_PluginNotCompatibleWith', array($pluginName, self::getPiwikVersion())) . '</strong><br/>' . $suffix; $plugin['info'] = array('description' => $description, 'version' => $this->translator->translate('General_Unknown'), 'theme' => false); } } $pluginsFiltered = $this->keepPluginsOrThemes($themesOnly, $plugins); return $pluginsFiltered; }