Dotclear

source: admin/plugins.php @ 3731:3770620079d4

Revision 3731:3770620079d4, 7.0 KB checked in by franck <carnet.franck.paul@…>, 7 years ago (diff)

Simplify licence block at the beginning of each file

Line 
1<?php
2/**
3 * @package Dotclear
4 * @subpackage Backend
5 *
6 * @copyright Olivier Meunier & Association Dotclear
7 * @copyright GPL-2.0-only
8 */
9
10require dirname(__FILE__) . '/../inc/admin/prepend.php';
11
12dcPage::check('admin');
13
14# -- Page helper --
15$list = new adminModulesList(
16    $core->plugins,
17    DC_PLUGINS_ROOT,
18    $core->blog->settings->system->store_plugin_url
19);
20
21adminModulesList::$allow_multi_install = (boolean) DC_ALLOW_MULTI_MODULES;
22adminModulesList::$distributed_modules = explode(',', DC_DISTRIB_PLUGINS);
23
24if ($core->plugins->disableDepModules($core->adminurl->get('admin.plugins', array()))) {
25    exit;
26}
27
28# -- Display module configuration page --
29if ($list->setConfiguration()) {
30
31    # Get content before page headers
32    include $list->includeConfiguration();
33
34    # Gather content
35    $list->getConfiguration();
36
37    # Display page
38    dcPage::open(__('Plugins management'),
39
40        # --BEHAVIOR-- pluginsToolsHeaders
41        $core->callBehavior('pluginsToolsHeaders', $core, true),
42
43        dcPage::breadcrumb(
44            array(
45                html::escapeHTML($core->blog->name)                                  => '',
46                __('Plugins management')                                             => $list->getURL('', false),
47                '<span class="page-title">' . __('Plugin configuration') . '</span>' => ''
48            ))
49    );
50
51    # Display previously gathered content
52    $list->displayConfiguration();
53
54    dcPage::helpBlock('core_plugins_conf');
55    dcPage::close();
56
57    # Stop reading code here
58    return;
59}
60
61# -- Execute actions --
62try {
63    $list->doActions();
64} catch (Exception $e) {
65    $core->error->add($e->getMessage());
66}
67
68# -- Plugin install --
69$plugins_install = null;
70if (!$core->error->flag()) {
71    $plugins_install = $core->plugins->installModules();
72}
73
74# -- Page header --
75dcPage::open(__('Plugins management'),
76    dcPage::jsLoad('js/_plugins.js') .
77    dcPage::jsPageTabs() .
78
79    # --BEHAVIOR-- pluginsToolsHeaders
80    $core->callBehavior('pluginsToolsHeaders', $core, false),
81
82    dcPage::breadcrumb(
83        array(
84            __('System')             => '',
85            __('Plugins management') => ''
86        ))
87);
88
89# -- Plugins install messages --
90if (!empty($plugins_install['success'])) {
91    echo
92    '<div class="static-msg">' . __('Following plugins have been installed:') . '<ul>';
93
94    foreach ($plugins_install['success'] as $k => $v) {
95        echo
96            '<li>' . $k . '</li>';
97    }
98
99    echo
100        '</ul></div>';
101}
102if (!empty($plugins_install['failure'])) {
103    echo
104    '<div class="error">' . __('Following plugins have not been installed:') . '<ul>';
105
106    foreach ($plugins_install['failure'] as $k => $v) {
107        echo
108            '<li>' . $k . ' (' . $v . ')</li>';
109    }
110
111    echo
112        '</ul></div>';
113}
114
115# -- Display modules lists --
116if ($core->auth->isSuperAdmin()) {
117
118    # Updated modules from repo
119    $modules = $list->store->get(true);
120    if (!empty($modules)) {
121        echo
122        '<div class="multi-part" id="update" title="' . html::escapeHTML(__('Update plugins')) . '">' .
123        '<h3>' . html::escapeHTML(__('Update plugins')) . '</h3>' .
124        '<p>' . sprintf(
125            __('There is one plugin to update available from repository.', 'There are %s plugins to update available from repository.', count($modules)),
126            count($modules)
127        ) . '</p>';
128
129        $list
130            ->setList('plugin-update')
131            ->setTab('update')
132            ->setModules($modules)
133            ->displayModules(
134                /*cols */array('checkbox', 'icon', 'name', 'version', 'current_version', 'desc'),
135                /* actions */array('update')
136            );
137
138        echo
139        '<p class="info vertical-separator">' . sprintf(
140            __("Visit %s repository, the resources center for Dotclear."),
141            '<a href="http://plugins.dotaddict.org/dc2/">Dotaddict</a>'
142        ) .
143            '</p>' .
144
145            '</div>';
146    }
147}
148
149echo
150'<div class="multi-part" id="plugins" title="' . __('Installed plugins') . '">';
151
152# Activated modules
153$modules = $list->modules->getModules();
154if (!empty($modules)) {
155
156    echo
157    '<h3>' . ($core->auth->isSuperAdmin() ? __('Activated plugins') : __('Installed plugins')) . '</h3>' .
158    '<p class="more-info">' . __('You can configure and manage installed plugins from this list.') . '</p>';
159
160    $list
161        ->setList('plugin-activate')
162        ->setTab('plugins')
163        ->setModules($modules)
164        ->displayModules(
165            /* cols */array('expander', 'icon', 'name', 'version', 'desc', 'distrib', 'deps'),
166            /* actions */array('deactivate', 'delete', 'behavior')
167        );
168}
169
170# Deactivated modules
171if ($core->auth->isSuperAdmin()) {
172    $modules = $list->modules->getDisabledModules();
173    if (!empty($modules)) {
174        echo
175        '<h3>' . __('Deactivated plugins') . '</h3>' .
176        '<p class="more-info">' . __('Deactivated plugins are installed but not usable. You can activate them from here.') . '</p>';
177
178        $list
179            ->setList('plugin-deactivate')
180            ->setTab('plugins')
181            ->setModules($modules)
182            ->displayModules(
183                /* cols */array('expander', 'icon', 'name', 'version', 'desc', 'distrib'),
184                /* actions */array('activate', 'delete')
185            );
186    }
187}
188
189echo
190    '</div>';
191
192if ($core->auth->isSuperAdmin() && $list->isWritablePath()) {
193
194    # New modules from repo
195    $search  = $list->getSearch();
196    $modules = $search ? $list->store->search($search) : $list->store->get();
197
198    if (!empty($search) || !empty($modules)) {
199        echo
200        '<div class="multi-part" id="new" title="' . __('Add plugins') . '">' .
201        '<h3>' . __('Add plugins from repository') . '</h3>';
202
203        $list
204            ->setList('plugin-new')
205            ->setTab('new')
206            ->setModules($modules)
207            ->displaySearch()
208            ->displayIndex()
209            ->displayModules(
210                /* cols */array('expander', 'name', 'score', 'version', 'desc', 'deps'),
211                /* actions */array('install'),
212                /* nav limit */true
213            );
214
215        echo
216        '<p class="info vertical-separator">' . sprintf(
217            __("Visit %s repository, the resources center for Dotclear."),
218            '<a href="http://plugins.dotaddict.org/dc2/">Dotaddict</a>'
219        ) .
220            '</p>' .
221
222            '</div>';
223    }
224
225    # Add a new plugin
226    echo
227    '<div class="multi-part" id="addplugin" title="' . __('Install or upgrade manually') . '">' .
228    '<h3>' . __('Add plugins from a package') . '</h3>' .
229    '<p class="more-info">' . __('You can install plugins by uploading or downloading zip files.') . '</p>';
230
231    $list->displayManualForm();
232
233    echo
234        '</div>';
235}
236
237# --BEHAVIOR-- pluginsToolsTabs
238$core->callBehavior('pluginsToolsTabs', $core);
239
240# -- Notice for super admin --
241if ($core->auth->isSuperAdmin() && !$list->isWritablePath()) {
242    echo
243    '<p class="warning">' . __('Some functions are disabled, please give write access to your plugins directory to enable them.') . '</p>';
244}
245
246dcPage::helpBlock('core_plugins');
247dcPage::close();
Note: See TracBrowser for help on using the repository browser.

Sites map