Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Controller.php « CorePluginsAdmin « plugins - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9896125435d60a062c03b693b22bfa185fd1c4ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/**
 * Piwik - Open source web analytics
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 *
 * @category Piwik_Plugins
 * @package Piwik_CorePluginsAdmin
 */

/**
 *
 * @package Piwik_CorePluginsAdmin
 */
class Piwik_CorePluginsAdmin_Controller extends Piwik_Controller_Admin
{
    function index()
    {
        Piwik::checkUserIsSuperUser();

        $plugins = array();

        $listPlugins = array_merge(
            Piwik_PluginsManager::getInstance()->readPluginsDirectory(),
            Piwik_Config::getInstance()->Plugins['Plugins']
        );
        $listPlugins = array_unique($listPlugins);
        foreach ($listPlugins as $pluginName) {
            Piwik_PluginsManager::getInstance()->loadPlugin($pluginName);
            $plugins[$pluginName] = array(
                'activated'       => Piwik_PluginsManager::getInstance()->isPluginActivated($pluginName),
                'alwaysActivated' => Piwik_PluginsManager::getInstance()->isPluginAlwaysActivated($pluginName),
            );
        }
        Piwik_PluginsManager::getInstance()->loadPluginTranslations();

        $loadedPlugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
        foreach ($loadedPlugins as $oPlugin) {
            $pluginName = $oPlugin->getPluginName();
            $plugins[$pluginName]['info'] = $oPlugin->getInformation();
        }

        foreach ($plugins as $pluginName => &$plugin) {
            if (!isset($plugin['info'])) {
                $plugin['info'] = array(
                    'description' => '<strong><em>' . Piwik_Translate('CorePluginsAdmin_PluginCannotBeFound')
                        . '</strong></em>',
                    'version'     => Piwik_Translate('General_Unknown')
                );
            }
        }

        $view = Piwik_View::factory('manage');
        $view->pluginsName = $plugins;
        $this->setBasicVariablesView($view);
        $view->menu = Piwik_GetAdminMenu();
        if (!Piwik_Config::getInstance()->isFileWritable()) {
            $view->configFileNotWritable = true;
        }
        echo $view->render();
    }

    public function deactivate($redirectAfter = true)
    {
        Piwik::checkUserIsSuperUser();
        $this->checkTokenInUrl();
        $pluginName = Piwik_Common::getRequestVar('pluginName', null, 'string');
        Piwik_PluginsManager::getInstance()->deactivatePlugin($pluginName);
        if ($redirectAfter) {
            Piwik_Url::redirectToReferer();
        }
    }

    public function activate($redirectAfter = true)
    {
        Piwik::checkUserIsSuperUser();
        $this->checkTokenInUrl();
        $pluginName = Piwik_Common::getRequestVar('pluginName', null, 'string');
        Piwik_PluginsManager::getInstance()->activatePlugin($pluginName);
        if ($redirectAfter) {
            Piwik_Url::redirectToReferer();
        }
    }
}