Piwik\Plugin\Manager::activatePlugin PHP Method

activatePlugin() public method

Activate the specified plugin and install (if needed)
public activatePlugin ( string $pluginName )
$pluginName string Name of plugin
    public function activatePlugin($pluginName)
    {
        $plugins = $this->pluginList->getActivatedPlugins();
        if (in_array($pluginName, $plugins)) {
            // plugin is already activated
            return;
        }
        if (!$this->isPluginInFilesystem($pluginName)) {
            throw new \Exception("Plugin '{$pluginName}' cannot be found in the filesystem in plugins/ directory.");
        }
        $this->deactivateThemeIfTheme($pluginName);
        // Load plugin
        $plugin = $this->loadPlugin($pluginName);
        if ($plugin === null) {
            throw new \Exception("The plugin '{$pluginName}' was found in the filesystem, but could not be loaded.'");
        }
        $this->installPluginIfNecessary($plugin);
        $plugin->activate();
        EventDispatcher::getInstance()->postPendingEventsTo($plugin);
        $this->pluginsToLoad[] = $pluginName;
        $this->updatePluginsConfig($this->pluginsToLoad);
        PiwikConfig::getInstance()->forceSave();
        $this->clearCache($pluginName);
        /**
         * Event triggered after a plugin has been activated.
         *
         * @param string $pluginName The plugin that has been activated.
         */
        Piwik::postEvent('PluginManager.pluginActivated', array($pluginName));
    }

Usage Example

Example #1
0
 public function test_deactivatePlugin()
 {
     $this->assertFalse($this->manager->isPluginActivated('ExampleTheme'));
     $this->manager->activatePlugin('ExampleTheme');
     $this->assertTrue($this->manager->isPluginActivated('ExampleTheme'));
     $this->manager->deactivatePlugin('ExampleTheme');
     $this->assertFalse($this->manager->isPluginActivated('ExampleTheme'));
 }
All Usage Examples Of Piwik\Plugin\Manager::activatePlugin
Manager