Piwik\Plugin\Manager::isPluginOfficialAndNotBundledWithCore PHP Method

isPluginOfficialAndNotBundledWithCore() public method

public isPluginOfficialAndNotBundledWithCore ( $pluginName ) : boolean
$pluginName
return boolean
    public function isPluginOfficialAndNotBundledWithCore($pluginName)
    {
        static $gitModules;
        if (empty($gitModules)) {
            $gitModules = file_get_contents(PIWIK_INCLUDE_PATH . '/.gitmodules');
        }
        // All submodules are officially maintained plugins
        $isSubmodule = false !== strpos($gitModules, "plugins/" . $pluginName . "\n");
        return $isSubmodule;
    }

Usage Example

 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;
 }
Manager