From b5592c8228b2decb2e799b2550f83ac963c61e09 Mon Sep 17 00:00:00 2001 From: patdenice Date: Mon, 11 Apr 2011 10:30:56 +0000 Subject: feature:2260 Keep only two states for plugins (active and inactive) git-svn-id: http://piwigo.org/svn/trunk@10293 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/include/plugins.class.php | 40 ++++++++++++-------------- admin/plugins_list.php | 9 ++---- admin/themes/default/template/plugins_list.tpl | 10 ++----- 3 files changed, 22 insertions(+), 37 deletions(-) (limited to 'admin') diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php index 30242f01b..3f7cf4567 100644 --- a/admin/include/plugins.class.php +++ b/admin/include/plugins.class.php @@ -78,14 +78,8 @@ class plugins switch ($action) { case 'install': - if (!empty($crt_db_plugin)) - { - array_push($errors, 'CANNOT INSTALL - ALREADY INSTALLED'); - break; - } - if (!isset($this->fs_plugins[$plugin_id])) + if (!empty($crt_db_plugin) or !isset($this->fs_plugins[$plugin_id])) { - array_push($errors, 'CANNOT INSTALL - NO SUCH PLUGIN'); break; } if (file_exists($file_to_include)) @@ -109,15 +103,13 @@ INSERT INTO ' . PLUGINS_TABLE . ' (id,version) VALUES (\'' case 'activate': if (!isset($crt_db_plugin)) { - array_push($errors, 'CANNOT ACTIVATE - NOT INSTALLED'); - break; + $errors = $this->perform_action('install', $plugin_id); } - if ($crt_db_plugin['state'] != 'inactive') + elseif ($crt_db_plugin['state'] == 'active') { - array_push($errors, 'invalid current state ' . $crt_db_plugin['state']); break; } - if (file_exists($file_to_include)) + if (empty($errors) and file_exists($file_to_include)) { include_once($file_to_include); if (function_exists('plugin_activate')) @@ -136,13 +128,9 @@ WHERE id=\'' . $plugin_id . '\''; break; case 'deactivate': - if (!isset($crt_db_plugin)) + if (!isset($crt_db_plugin) or $crt_db_plugin['state'] != 'active') { - die ('CANNOT DEACTIVATE - NOT INSTALLED'); - } - if ($crt_db_plugin['state'] != 'active') - { - die('invalid current state ' . $crt_db_plugin['state']); + break; } $query = ' UPDATE ' . PLUGINS_TABLE . ' SET state=\'inactive\' WHERE id=\'' . $plugin_id . '\''; @@ -160,7 +148,11 @@ UPDATE ' . PLUGINS_TABLE . ' SET state=\'inactive\' WHERE id=\'' . $plugin_id . case 'uninstall': if (!isset($crt_db_plugin)) { - die ('CANNOT UNINSTALL - NOT INSTALLED'); + break; + } + if ($crt_db_plugin['state'] == 'active') + { + $this->perform_action('deactivate', $plugin_id); } $query = ' DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\''; @@ -175,15 +167,19 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\''; } break; + case 'restore': + $this->perform_action('uninstall', $plugin_id); + unset($this->db_plugins_by_id[$plugin_id]); + $errors = $this->perform_action('activate', $plugin_id); + break; + case 'delete': if (!empty($crt_db_plugin)) { - array_push($errors, 'CANNOT DELETE - PLUGIN IS INSTALLED'); - break; + $this->perform_action('uninstall', $plugin_id); } if (!isset($this->fs_plugins[$plugin_id])) { - array_push($errors, 'CANNOT DELETE - NO SUCH PLUGIN'); break; } if (!$this->deltree(PHPWG_PLUGINS_PATH . $plugin_id)) diff --git a/admin/plugins_list.php b/admin/plugins_list.php index 1af2e239b..4ec64ec29 100644 --- a/admin/plugins_list.php +++ b/admin/plugins_list.php @@ -97,16 +97,12 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) } else { - $tpl_plugin['STATE'] = 'uninstalled'; + $tpl_plugin['STATE'] = 'inactive'; } if (isset($fs_plugin['extension']) and in_array($fs_plugin['extension'], $_SESSION['merged_extensions'])) { - switch($tpl_plugin['STATE']) - { - case 'active': $plugins->perform_action('deactivate', $plugin_id); - case 'inactive': $plugins->perform_action('uninstall', $plugin_id); - } + $plugins->perform_action('uninstall', $plugin_id); $tpl_plugin['STATE'] = 'merged'; $tpl_plugin['DESC'] = l10n('THIS PLUGIN IS NOW PART OF PIWIGO CORE! DELETE IT NOW.'); $merged_plugins = true; @@ -117,7 +113,6 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) $template->append('plugin_states', 'active'); $template->append('plugin_states', 'inactive'); -$template->append('plugin_states', 'uninstalled'); if ($merged_plugins) { diff --git a/admin/themes/default/template/plugins_list.tpl b/admin/themes/default/template/plugins_list.tpl index 618104ca5..101227231 100644 --- a/admin/themes/default/template/plugins_list.tpl +++ b/admin/themes/default/template/plugins_list.tpl @@ -31,9 +31,6 @@ jQuery(document).ready(function() { {elseif $plugin_state == 'inactive'} {'Inactive Plugins'|@translate} - {elseif $plugin_state == 'uninstalled'} - {'Uninstalled Plugins'|@translate} - {elseif $plugin_state == 'missing'} {'Missing Plugins'|@translate} @@ -56,14 +53,11 @@ jQuery(document).ready(function() { {if $plugin.STATE == 'active'} {'Deactivate'|@translate} + | {'Restore'|@translate} {elseif $plugin_state == 'inactive'} {'Activate'|@translate} - | {'Uninstall'|@translate} - - {elseif $plugin_state == 'uninstalled'} - {'Install'|@translate} - | {'Delete'|@translate} + | {'Delete'|@translate} {elseif $plugin_state == 'missing'} {'Uninstall'|@translate} -- cgit v1.2.3