diff options
author | patdenice <patdenice@piwigo.org> | 2008-03-10 18:01:17 +0000 |
---|---|---|
committer | patdenice <patdenice@piwigo.org> | 2008-03-10 18:01:17 +0000 |
commit | ff19a8f1cd624eae602b64895ce92bdaa7789d69 (patch) | |
tree | 9ffa0b5329f1ad7bac26350ad0db3db2c2e167c9 | |
parent | e834737e848c7328638a9080868cf92541b656a9 (diff) |
Corrections in plugins management.
Add "Last revisions" sort order.
git-svn-id: http://piwigo.org/svn/trunk@2272 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin/include/functions_plugins.inc.php | 18 | ||||
-rw-r--r-- | admin/include/plugins.class.php | 28 | ||||
-rw-r--r-- | admin/plugins_list.php | 13 | ||||
-rw-r--r-- | admin/plugins_new.php | 18 | ||||
-rw-r--r-- | admin/plugins_update.php | 13 | ||||
-rw-r--r-- | language/en_UK/admin.lang.php | 3 | ||||
-rw-r--r-- | language/es_ES/admin.lang.php | 29 | ||||
-rw-r--r-- | language/fr_FR/admin.lang.php | 3 | ||||
-rw-r--r-- | language/nl_NL/admin.lang.php | 29 | ||||
-rw-r--r-- | template/yoga/admin/history.tpl | 2 | ||||
-rw-r--r-- | template/yoga/admin/plugins_new.tpl | 4 | ||||
-rw-r--r-- | template/yoga/admin/plugins_update.tpl | 2 | ||||
-rw-r--r-- | template/yoga/admin/upload.tpl | 2 |
13 files changed, 116 insertions, 48 deletions
diff --git a/admin/include/functions_plugins.inc.php b/admin/include/functions_plugins.inc.php index 7bed61904..2860e2d66 100644 --- a/admin/include/functions_plugins.inc.php +++ b/admin/include/functions_plugins.inc.php @@ -46,4 +46,22 @@ function get_admin_plugin_menu_link($file) } return $url; } + +/** + * Set tabsheet for plugins pages. + * @param string selected page. + */ +function set_plugins_tabsheet($selected) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); + + $link = get_root_url().'admin.php?page='; + + $tabsheet = new tabsheet(); + $tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list'); + $tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update'); + $tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new'); + $tabsheet->select($selected); + $tabsheet->assign(); +} ?>
\ No newline at end of file diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php index e26e0f3b9..459eb5ef5 100644 --- a/admin/include/plugins.class.php +++ b/admin/include/plugins.class.php @@ -28,7 +28,7 @@ class plugins { var $fs_plugins = array(); var $db_plugins_by_id = array(); - var $server_plugins = array(); + var $server_plugins; /** * Initialize $fs_plugins and $db_plugins_by_id @@ -49,7 +49,7 @@ class plugins * @param string - plugin id * @param array - errors */ - function perform_action($action, $plugin_id, $errors=array()) + function perform_action($action, $plugin_id) { if (isset($this->db_plugins_by_id[$plugin_id])) { @@ -57,6 +57,8 @@ class plugins } $file_to_include = PHPWG_PLUGINS_PATH . $plugin_id . '/maintain.inc.php'; + $errors = array(); + switch ($action) { case 'install': @@ -279,10 +281,6 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"'; { $this->server_plugins = @unserialize($source); } - else - { - $this->server_plugins = false; - } } /** @@ -295,6 +293,9 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"'; case 'date': krsort($this->server_plugins); break; + case 'revision': + usort($this->server_plugins, array($this, 'extension_revision_compare')); + break; case 'name': uasort($this->server_plugins, array($this, 'extension_name_compare')); break; @@ -427,9 +428,18 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"'; */ function plugin_version_compare($a, $b) { - $r = version_compare($a['version'], $b['version']); - if ($r == 0) return strcasecmp($a['version'], $b['version']); - else return $r; + $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./'); + $replacement = array( "'.'.intval('\\1', 36).'.'", '.', ''); + + $array = preg_replace($pattern, $replacement, array($a['version'], $b['version'])); + + return version_compare($array[0], $array[1], '>='); + } + + function extension_revision_compare($a, $b) + { + if ($a['date'] < $b['date']) return 1; + else return -1; } function extension_name_compare($a, $b) diff --git a/admin/plugins_list.php b/admin/plugins_list.php index ac5d5c1a2..18ee8b8ac 100644 --- a/admin/plugins_list.php +++ b/admin/plugins_list.php @@ -41,23 +41,16 @@ $plugins = new plugins(); if (isset($_GET['action']) and isset($_GET['plugin']) and !is_adviser()) { $page['errors'] = - $plugins->perform_action($_GET['action'], $_GET['plugin'], $page['errors']); + $plugins->perform_action($_GET['action'], $_GET['plugin']); if (empty($page['errors'])) redirect($base_url); } //--------------------------------------------------------------------Tabsheet -include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); -$link = get_root_url().'admin.php?page='; -$tabsheet = new tabsheet(); -$tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list'); -$tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update'); -$tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new'); -$tabsheet->select($page['page']); -$tabsheet->assign(); +set_plugins_tabsheet($page['page']); //---------------------------------------------------------------Order options -$link .= $page['page'].'&order='; +$link = get_root_url().'admin.php?page='.$page['page'].'&order='; $template->assign('order_options', array( $link.'name' => l10n('Name'), diff --git a/admin/plugins_new.php b/admin/plugins_new.php index 4ca829571..487514876 100644 --- a/admin/plugins_new.php +++ b/admin/plugins_new.php @@ -77,20 +77,14 @@ if (isset($_GET['installstatus'])) } //--------------------------------------------------------------------Tabsheet -include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); -$link = get_root_url().'admin.php?page='; -$tabsheet = new tabsheet(); -$tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list'); -$tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update'); -$tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new'); -$tabsheet->select($page['page']); -$tabsheet->assign(); +set_plugins_tabsheet($page['page']); //---------------------------------------------------------------Order options -$link .= $page['page'].'&order='; +$link = get_root_url().'admin.php?page='.$page['page'].'&order='; $template->assign('order_options', array( $link.'date' => l10n('Post date'), + $link.'revision' => l10n('plugins_revisions'), $link.'name' => l10n('Name'), $link.'author' => l10n('Author'))); $template->assign('order_selected', $link.$order); @@ -99,10 +93,11 @@ $template->assign('order_selected', $link.$order); // | start template output | // +-----------------------------------------------------------------------+ $plugins->get_server_plugins(true); -$plugins->sort_server_plugins($order); -if ($plugins->server_plugins !== false) +if (is_array($plugins->server_plugins)) { + $plugins->sort_server_plugins($order); + foreach($plugins->server_plugins as $plugin) { $ext_desc = nl2br(htmlspecialchars(strip_tags( @@ -130,6 +125,7 @@ if ($plugins->server_plugins !== false) 'EXT_DESC' => $ext_desc, 'VERSION' => $plugin['version'], 'VERSION_URL' => PEM_URL.'/revision_view.php?rid='.$plugin['id_revision'], + 'DATE' => date('Y-m-d', $plugin['date']), 'VER_DESC' => $ver_desc, 'AUTHOR' => $plugin['author'], 'URL_INSTALL' => $url_auto_install, diff --git a/admin/plugins_update.php b/admin/plugins_update.php index 34ab6afce..144d14fbe 100644 --- a/admin/plugins_update.php +++ b/admin/plugins_update.php @@ -94,21 +94,14 @@ if (isset($_GET['upgradestatus']) and isset($_GET['plugin'])) } //--------------------------------------------------------------------Tabsheet -include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); -$link = get_root_url().'admin.php?page='; -$tabsheet = new tabsheet(); -$tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list'); -$tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update'); -$tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new'); -$tabsheet->select($page['page']); -$tabsheet->assign(); +set_plugins_tabsheet($page['page']); // +-----------------------------------------------------------------------+ // | start template output | // +-----------------------------------------------------------------------+ $plugins->get_server_plugins(); -if ($plugins->server_plugins !== false) +if (is_array($plugins->server_plugins)) { foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) { @@ -126,7 +119,7 @@ if ($plugins->server_plugins !== false) nl2br(htmlspecialchars(strip_tags( utf8_encode($plugin_info['description']))))); - if ($plugins->plugin_version_compare($fs_plugin, $plugin_info) >= 0) + if ($plugins->plugin_version_compare($fs_plugin, $plugin_info)) { // Plugin is up to date $template->append('plugins_uptodate', diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 48787cd83..884efdba6 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -230,7 +230,7 @@ $lang['conf_main_title'] = 'Main'; $lang['conf_nb_comment_page_error'] = 'The number of comments a page must be between 5 and 50 included.'; $lang['config'] = 'Configuration'; $lang['confirm'] = 'confirm'; -$lang['date'] = 'date'; +$lang['Date'] = 'Date'; $lang['delete category'] = 'delete category'; $lang['description'] = 'description'; $lang['dissociate from category'] = 'dissociate from category'; @@ -626,6 +626,7 @@ $lang['plugins_description'] = '<b>Version:</b> %s<br><br><b>Date:</b> %s<br><br $lang['plugins_tab_list'] = 'Plugin list'; $lang['plugins_tab_update'] = 'Check for updates'; $lang['plugins_tab_new'] = 'Other plugins'; +$lang['plugins_revisions'] = 'Last revisions'; $lang['plugins_delete'] = 'Delete'; $lang['plugins_confirm_delete'] = 'Are you sure you want to delete this plugin?'; $lang['plugins_confirm_install'] = 'Are you sure you want to install this plugin?'; diff --git a/language/es_ES/admin.lang.php b/language/es_ES/admin.lang.php index bd3b07ffe..1ec944ece 100644 --- a/language/es_ES/admin.lang.php +++ b/language/es_ES/admin.lang.php @@ -229,7 +229,7 @@ $lang['conf_main_title'] = 'Directora de colegio'; $lang['conf_nb_comment_page_error'] = 'El número de comentarios de utilizadores por página debe ser comprendido entre 5 y 50.'; $lang['config'] = 'Configuración'; $lang['confirm'] = 'Confirmar'; -$lang['date'] = 'Fecha'; +$lang['Date'] = 'Fecha'; $lang['delete category'] = 'Suprimir la categoría'; $lang['description'] = 'Descripción'; $lang['dissociate from category'] = 'Disociar la categoría'; @@ -618,5 +618,32 @@ $lang['c13y_ignore_msg2'] = 'La corrección de la anomalía anulará el hecho de $lang['c13y_anomaly_ignored_count'] = '%d anomalía ha sido ignorada.'; $lang['c13y_anomalies_ignored_count'] = '%d anomalías han sido ignoradas.'; +/* TODO */ $lang['plugins_need_update'] = 'Plugins which need upgrade'; +/* TODO */ $lang['plugins_dontneed_update'] = 'Plugins up to date'; +/* TODO */ $lang['plugins_cant_check'] = 'Plugin versions can\'t be checked'; +/* TODO */ $lang['plugins_actual_version'] = 'Current<br>version'; +/* TODO */ $lang['plugins_new_version'] = 'Available<br>version'; +/* TODO */ $lang['plugins_auto_update'] = 'Automatic upgrade'; +/* TODO */ $lang['plugins_auto_install'] = 'Automatic installation'; +/* TODO */ $lang['plugins_download'] = 'Download file'; +/* TODO */ $lang['plugins_description'] = '<b>Version:</b> %s<br><br><b>Date:</b> %s<br><br>%s'; +/* TODO */ $lang['plugins_tab_list'] = 'Plugin list'; +/* TODO */ $lang['plugins_tab_update'] = 'Check for updates'; +/* TODO */ $lang['plugins_tab_new'] = 'Other plugins'; +/* TODO */ $lang['plugins_revisions'] = 'Last revisions'; +/* TODO */ $lang['plugins_delete'] = 'Delete'; +/* TODO */ $lang['plugins_confirm_delete'] = 'Are you sure you want to delete this plugin?'; +/* TODO */ $lang['plugins_confirm_install'] = 'Are you sure you want to install this plugin?'; +/* TODO */ $lang['plugins_confirm_upgrade'] = 'Are you sur to install this upgrade? You must verify if this version does not need uninstallation.'; +/* TODO */ $lang['plugins_upgrade_ok'] = '%s has been successfully upgraded.'; +/* TODO */ $lang['plugins_install_ok'] = 'Plugin has been successfully copied'; +/* TODO */ $lang['plugins_install_need_activate'] = 'You might go to plugin list to install and activate it.'; +/* TODO */ $lang['plugins_temp_path_error'] = 'Can\'t create temporary file.'; +/* TODO */ $lang['plugins_dl_archive_error'] = 'Can\'t download archive.'; +/* TODO */ $lang['plugins_archive_error'] = 'Can\'t read or extract archive.'; +/* TODO */ $lang['plugins_extract_error'] = 'An error occured during extraction (%s).'; +/* TODO */ $lang['plugins_check_chmod'] = 'Please check "plugins" folder and sub-folders permissions (CHMOD).'; +/* TODO */ $lang['plugins_server_error'] = 'Can\'t connect to server.'; + /* TODO */ $lang['Purge compiled templates'] = 'Purge compiled templates'; ?> diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index d374609bf..36ee740dc 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -230,7 +230,7 @@ $lang['conf_main_title'] = 'Principale'; $lang['conf_nb_comment_page_error'] = 'Le nombre de commentaires d\'utilisateurs par page doit être compris entre 5 et 50.'; $lang['config'] = 'Configuration'; $lang['confirm'] = 'confirmer'; -$lang['date'] = 'date'; +$lang['Date'] = 'Date'; $lang['delete category'] = 'supprimer la catégorie'; $lang['description'] = 'description'; $lang['dissociate from category'] = 'dissocier de la catégorie'; @@ -626,6 +626,7 @@ $lang['plugins_description'] = '<b>Version:</b> %s<br><br><b>Date:</b> %s<br><br $lang['plugins_tab_list'] = 'Liste des plugins'; $lang['plugins_tab_update'] = 'Vérifier les mises à jour'; $lang['plugins_tab_new'] = 'Autres plugins disponibles'; +$lang['plugins_revisions'] = 'Dernières révisions'; $lang['plugins_delete'] = 'Supprimer'; $lang['plugins_confirm_install'] = 'Etes-vous sûr de vouloir installer ce plugin?'; $lang['plugins_confirm_delete'] = 'Etes-vous sûr de vouloir supprimer ce plugin?'; diff --git a/language/nl_NL/admin.lang.php b/language/nl_NL/admin.lang.php index 0c25565a4..bfb1598fe 100644 --- a/language/nl_NL/admin.lang.php +++ b/language/nl_NL/admin.lang.php @@ -230,7 +230,7 @@ $lang['conf_main_title'] = 'Index'; $lang['conf_nb_comment_page_error'] = 'Het aantal commentaren moet tussen 5 and 50 liggen.'; $lang['config'] = 'Configuratie'; $lang['confirm'] = 'bevestig'; -$lang['date'] = 'datum'; +$lang['Date'] = 'Datum'; $lang['delete category'] = 'verwijder categorie'; $lang['description'] = 'omschrijving'; $lang['dissociate from category'] = 'verwijder link naar categorie'; @@ -620,5 +620,32 @@ $lang['c13y_submit_correction'] = 'Pas geselecteerde correcties toe'; /* TODO */ $lang['c13y_anomaly_ignored_count'] = '%d anomaly has been ignored.'; /* TODO */ $lang['c13y_anomalies_ignored_count'] = '%d anomalies has been ignored.'; +/* TODO */ $lang['plugins_need_update'] = 'Plugins which need upgrade'; +/* TODO */ $lang['plugins_dontneed_update'] = 'Plugins up to date'; +/* TODO */ $lang['plugins_cant_check'] = 'Plugin versions can\'t be checked'; +/* TODO */ $lang['plugins_actual_version'] = 'Current<br>version'; +/* TODO */ $lang['plugins_new_version'] = 'Available<br>version'; +/* TODO */ $lang['plugins_auto_update'] = 'Automatic upgrade'; +/* TODO */ $lang['plugins_auto_install'] = 'Automatic installation'; +/* TODO */ $lang['plugins_download'] = 'Download file'; +/* TODO */ $lang['plugins_description'] = '<b>Version:</b> %s<br><br><b>Date:</b> %s<br><br>%s'; +/* TODO */ $lang['plugins_tab_list'] = 'Plugin list'; +/* TODO */ $lang['plugins_tab_update'] = 'Check for updates'; +/* TODO */ $lang['plugins_tab_new'] = 'Other plugins'; +/* TODO */ $lang['plugins_revisions'] = 'Last revisions'; +/* TODO */ $lang['plugins_delete'] = 'Delete'; +/* TODO */ $lang['plugins_confirm_delete'] = 'Are you sure you want to delete this plugin?'; +/* TODO */ $lang['plugins_confirm_install'] = 'Are you sure you want to install this plugin?'; +/* TODO */ $lang['plugins_confirm_upgrade'] = 'Are you sur to install this upgrade? You must verify if this version does not need uninstallation.'; +/* TODO */ $lang['plugins_upgrade_ok'] = '%s has been successfully upgraded.'; +/* TODO */ $lang['plugins_install_ok'] = 'Plugin has been successfully copied'; +/* TODO */ $lang['plugins_install_need_activate'] = 'You might go to plugin list to install and activate it.'; +/* TODO */ $lang['plugins_temp_path_error'] = 'Can\'t create temporary file.'; +/* TODO */ $lang['plugins_dl_archive_error'] = 'Can\'t download archive.'; +/* TODO */ $lang['plugins_archive_error'] = 'Can\'t read or extract archive.'; +/* TODO */ $lang['plugins_extract_error'] = 'An error occured during extraction (%s).'; +/* TODO */ $lang['plugins_check_chmod'] = 'Please check "plugins" folder and sub-folders permissions (CHMOD).'; +/* TODO */ $lang['plugins_server_error'] = 'Can\'t connect to server.'; + /* TODO */ $lang['Purge compiled templates'] = 'Purge compiled templates'; ?> diff --git a/template/yoga/admin/history.tpl b/template/yoga/admin/history.tpl index e3ccc1197..3ed4c94b3 100644 --- a/template/yoga/admin/history.tpl +++ b/template/yoga/admin/history.tpl @@ -116,7 +116,7 @@ <table class="table2" id="detailedStats"> <tr class="throw"> - <th>{'date'|@translate}</th> + <th>{'Date'|@translate}</th> <th>{'time'|@translate}</th> <th>{'user'|@translate}</th> <th>{'IP'|@translate}</th> diff --git a/template/yoga/admin/plugins_new.tpl b/template/yoga/admin/plugins_new.tpl index 90167e2e9..fa22aaa26 100644 --- a/template/yoga/admin/plugins_new.tpl +++ b/template/yoga/admin/plugins_new.tpl @@ -4,7 +4,7 @@ </div> {'Sort order'|@translate} : - <select onchange="document.location = this.options[this.selectedIndex].value;" style="width:120px"> + <select onchange="document.location = this.options[this.selectedIndex].value;" style="width:150px"> {html_options options=$order_options selected=$order_selected} </select> @@ -15,6 +15,7 @@ <tr class="throw"> <td>{'Name'|@translate}</td> <td>{'Version'|@translate}</td> + <td>{'Date'|@translate}</td> <td>{'Author'|@translate}</td> <td>{'Actions'|@translate}</td> </tr> @@ -25,6 +26,7 @@ <span>{$plugin.EXT_DESC}</span></a></td> <td style="text-align:center;"><a href="{$plugin.VERSION_URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.VERSION} <span>{$plugin.VER_DESC}</span></a></td> + <td>{$plugin.DATE}</td> <td>{$plugin.AUTHOR}</td> <td style="text-align:center;"><a href="{$plugin.URL_INSTALL}" onclick="return confirm('{'plugins_confirm_install'|@translate|@escape:javascript}');">{'plugins_auto_install'|@translate}</a> / <a href="{$plugin.URL_DOWNLOAD}">{'plugins_download'|@translate}</a> diff --git a/template/yoga/admin/plugins_update.tpl b/template/yoga/admin/plugins_update.tpl index 9abc32be1..df0ac4ae0 100644 --- a/template/yoga/admin/plugins_update.tpl +++ b/template/yoga/admin/plugins_update.tpl @@ -63,7 +63,7 @@ </thead> {foreach from=$plugins_cant_check item=plugin name=plugins_loop} <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> - <td> {$plugin.NAME} </td> + <td>{$plugin.NAME}</td> <td style="text-align:center;">{$plugin.VERSION}</td> </tr> {/foreach} diff --git a/template/yoga/admin/upload.tpl b/template/yoga/admin/upload.tpl index 419a01ec0..f95609316 100644 --- a/template/yoga/admin/upload.tpl +++ b/template/yoga/admin/upload.tpl @@ -10,7 +10,7 @@ <table style="width:99%;" > <tr class="throw"> <th style="width:20%;">{'category'|@translate}</th> - <th style="width:20%;">{'date'|@translate}</th> + <th style="width:20%;">{'Date'|@translate}</th> <th style="width:20%;">{'file'|@translate}</th> <th style="width:20%;">{'thumbnail'|@translate}</th> <th style="width:20%;">{'Author'|@translate}</th> |