public function loadAllPluginsAndGetTheirInfo()
{
/** @var Translator $translator */
$translator = StaticContainer::get('Piwik\\Translation\\Translator');
$plugins = array();
$listPlugins = array_merge($this->readPluginsDirectory(), $this->pluginList->getActivatedPlugins());
$listPlugins = array_unique($listPlugins);
foreach ($listPlugins as $pluginName) {
// Hide plugins that are never going to be used
if ($this->isPluginBogus($pluginName)) {
continue;
}
// If the plugin is not core and looks bogus, do not load
if ($this->isPluginThirdPartyAndBogus($pluginName)) {
$info = array('invalid' => true, 'activated' => false, 'alwaysActivated' => false, 'uninstallable' => true);
} else {
$translator->addDirectory(self::getPluginsDirectory() . $pluginName . '/lang');
$this->loadPlugin($pluginName);
$info = array('activated' => $this->isPluginActivated($pluginName), 'alwaysActivated' => $this->isPluginAlwaysActivated($pluginName), 'uninstallable' => $this->isPluginUninstallable($pluginName));
}
$plugins[$pluginName] = $info;
}
$loadedPlugins = $this->getLoadedPlugins();
foreach ($loadedPlugins as $oPlugin) {
$pluginName = $oPlugin->getPluginName();
$info = array('info' => $oPlugin->getInformation(), 'activated' => $this->isPluginActivated($pluginName), 'alwaysActivated' => $this->isPluginAlwaysActivated($pluginName), 'missingRequirements' => $oPlugin->getMissingDependenciesAsString(), 'uninstallable' => $this->isPluginUninstallable($pluginName));
$plugins[$pluginName] = $info;
}
return $plugins;
}