plugins, DC_PLUGINS_ROOT, $core->blog->settings->system->store_plugin_url ); adminModulesList::$allow_multi_install = (boolean) DC_ALLOW_MULTI_MODULES; adminModulesList::$distributed_modules = explode(',', DC_DISTRIB_PLUGINS); if ($core->plugins->disableDepModules($core->adminurl->get('admin.plugins',array()))) { exit; } # -- Display module configuration page -- if ($list->setConfiguration()) { # Get content before page headers include $list->includeConfiguration(); # Gather content $list->getConfiguration(); # Display page dcPage::open(__('Plugins management'), # --BEHAVIOR-- pluginsToolsHeaders $core->callBehavior('pluginsToolsHeaders', $core, true), dcPage::breadcrumb( array( html::escapeHTML($core->blog->name) => '', __('Plugins management') => $list->getURL('',false), ''.__('Plugin configuration').'' => '' )) ); # Display previously gathered content $list->displayConfiguration(); dcPage::helpBlock('core_plugins_conf'); dcPage::close(); # Stop reading code here return; } # -- Execute actions -- try { $list->doActions(); } catch (Exception $e) { $core->error->add($e->getMessage()); } # -- Plugin install -- $plugins_install = null; if (!$core->error->flag()) { $plugins_install = $core->plugins->installModules(); } # -- Page header -- dcPage::open(__('Plugins management'), dcPage::jsLoad('js/_plugins.js'). dcPage::jsPageTabs(). # --BEHAVIOR-- pluginsToolsHeaders $core->callBehavior('pluginsToolsHeaders', $core, false), dcPage::breadcrumb( array( __('System') => '', __('Plugins management') => '' )) ); # -- Plugins install messages -- if (!empty($plugins_install['success'])) { echo '
'.__('Following plugins have been installed:').'
'; } if (!empty($plugins_install['failure'])) { echo '
'.__('Following plugins have not been installed:').'
'; } # -- Display modules lists -- if ($core->auth->isSuperAdmin()) { # Updated modules from repo $modules = $list->store->get(true); if (!empty($modules)) { echo '
'. '

'.html::escapeHTML(__('Update plugins')).'

'. '

'.sprintf( __('There is one plugin to update available from repository.', 'There are %s plugins to update available from repository.', count($modules)), count($modules) ).'

'; $list ->setList('plugin-update') ->setTab('update') ->setModules($modules) ->displayModules( /*cols */ array('checkbox', 'icon', 'name', 'version', 'current_version', 'desc'), /* actions */ array('update') ); echo '

'.sprintf( __("Visit %s repository, the resources center for Dotclear."), 'Dotaddict' ). '

'. '
'; } } echo '
'; # Activated modules $modules = $list->modules->getModules(); if (!empty($modules)) { echo '

'.($core->auth->isSuperAdmin() ?__('Activated plugins') : __('Installed plugins')).'

'. '

'.__('You can configure and manage installed plugins from this list.').'

'; $list ->setList('plugin-activate') ->setTab('plugins') ->setModules($modules) ->displayModules( /* cols */ array('expander', 'icon', 'name', 'version', 'desc', 'distrib','deps'), /* actions */ array('deactivate', 'delete', 'behavior') ); } # Deactivated modules if ($core->auth->isSuperAdmin()) { $modules = $list->modules->getDisabledModules(); if (!empty($modules)) { echo '

'.__('Deactivated plugins').'

'. '

'.__('Deactivated plugins are installed but not usable. You can activate them from here.').'

'; $list ->setList('plugin-deactivate') ->setTab('plugins') ->setModules($modules) ->displayModules( /* cols */ array('expander', 'icon', 'name', 'version', 'desc', 'distrib'), /* actions */ array('activate', 'delete') ); } } echo '
'; if ($core->auth->isSuperAdmin() && $list->isWritablePath()) { # New modules from repo $search = $list->getSearch(); $modules = $search ? $list->store->search($search) : $list->store->get(); if (!empty($search) || !empty($modules)) { echo '
'. '

'.__('Add plugins from repository').'

'; // '

'.__('Search and install plugins directly from repository.').'

'; $list ->setList('plugin-new') ->setTab('new') ->setModules($modules) ->displaySearch() ->displayIndex() ->displayModules( /* cols */ array('expander', 'name', 'score', 'version', 'desc','deps'), /* actions */ array('install'), /* nav limit */ true ); echo '

'.sprintf( __("Visit %s repository, the resources center for Dotclear."), 'Dotaddict' ). '

'. '
'; } # Add a new plugin echo '
'. '

'.__('Add plugins from a package').'

'. '

'.__('You can install plugins by uploading or downloading zip files.').'

'; $list->displayManualForm(); echo '
'; } # --BEHAVIOR-- pluginsToolsTabs $core->callBehavior('pluginsToolsTabs', $core); # -- Notice for super admin -- if ($core->auth->isSuperAdmin() && !$list->isWritablePath()) { echo '

'.__('Some functions are disabled, please give write access to your plugins directory to enable them.').'

'; } dcPage::helpBlock('core_plugins'); dcPage::close();