Corrections in plugins management.

Add "Last revisions" sort order.

git-svn-id: http://piwigo.org/svn/trunk@2272 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
patdenice 2008-03-10 18:01:17 +00:00
parent e834737e84
commit ff19a8f1cd
13 changed files with 116 additions and 48 deletions

View file

@ -46,4 +46,22 @@ function get_admin_plugin_menu_link($file)
} }
return $url; 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();
}
?> ?>

View file

@ -28,7 +28,7 @@ class plugins
{ {
var $fs_plugins = array(); var $fs_plugins = array();
var $db_plugins_by_id = array(); var $db_plugins_by_id = array();
var $server_plugins = array(); var $server_plugins;
/** /**
* Initialize $fs_plugins and $db_plugins_by_id * Initialize $fs_plugins and $db_plugins_by_id
@ -49,7 +49,7 @@ class plugins
* @param string - plugin id * @param string - plugin id
* @param array - errors * @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])) 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'; $file_to_include = PHPWG_PLUGINS_PATH . $plugin_id . '/maintain.inc.php';
$errors = array();
switch ($action) switch ($action)
{ {
case 'install': case 'install':
@ -279,10 +281,6 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
{ {
$this->server_plugins = @unserialize($source); $this->server_plugins = @unserialize($source);
} }
else
{
$this->server_plugins = false;
}
} }
/** /**
@ -295,6 +293,9 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
case 'date': case 'date':
krsort($this->server_plugins); krsort($this->server_plugins);
break; break;
case 'revision':
usort($this->server_plugins, array($this, 'extension_revision_compare'));
break;
case 'name': case 'name':
uasort($this->server_plugins, array($this, 'extension_name_compare')); uasort($this->server_plugins, array($this, 'extension_name_compare'));
break; break;
@ -427,9 +428,18 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id="' . $plugin_id . '"';
*/ */
function plugin_version_compare($a, $b) function plugin_version_compare($a, $b)
{ {
$r = version_compare($a['version'], $b['version']); $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./');
if ($r == 0) return strcasecmp($a['version'], $b['version']); $replacement = array( "'.'.intval('\\1', 36).'.'", '.', '');
else return $r;
$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) function extension_name_compare($a, $b)

View file

@ -41,23 +41,16 @@ $plugins = new plugins();
if (isset($_GET['action']) and isset($_GET['plugin']) and !is_adviser()) if (isset($_GET['action']) and isset($_GET['plugin']) and !is_adviser())
{ {
$page['errors'] = $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); if (empty($page['errors'])) redirect($base_url);
} }
//--------------------------------------------------------------------Tabsheet //--------------------------------------------------------------------Tabsheet
include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); set_plugins_tabsheet($page['page']);
$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();
//---------------------------------------------------------------Order options //---------------------------------------------------------------Order options
$link .= $page['page'].'&amp;order='; $link = get_root_url().'admin.php?page='.$page['page'].'&amp;order=';
$template->assign('order_options', $template->assign('order_options',
array( array(
$link.'name' => l10n('Name'), $link.'name' => l10n('Name'),

View file

@ -77,20 +77,14 @@ if (isset($_GET['installstatus']))
} }
//--------------------------------------------------------------------Tabsheet //--------------------------------------------------------------------Tabsheet
include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); set_plugins_tabsheet($page['page']);
$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();
//---------------------------------------------------------------Order options //---------------------------------------------------------------Order options
$link .= $page['page'].'&amp;order='; $link = get_root_url().'admin.php?page='.$page['page'].'&amp;order=';
$template->assign('order_options', $template->assign('order_options',
array( array(
$link.'date' => l10n('Post date'), $link.'date' => l10n('Post date'),
$link.'revision' => l10n('plugins_revisions'),
$link.'name' => l10n('Name'), $link.'name' => l10n('Name'),
$link.'author' => l10n('Author'))); $link.'author' => l10n('Author')));
$template->assign('order_selected', $link.$order); $template->assign('order_selected', $link.$order);
@ -99,10 +93,11 @@ $template->assign('order_selected', $link.$order);
// | start template output | // | start template output |
// +-----------------------------------------------------------------------+ // +-----------------------------------------------------------------------+
$plugins->get_server_plugins(true); $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) foreach($plugins->server_plugins as $plugin)
{ {
$ext_desc = nl2br(htmlspecialchars(strip_tags( $ext_desc = nl2br(htmlspecialchars(strip_tags(
@ -130,6 +125,7 @@ if ($plugins->server_plugins !== false)
'EXT_DESC' => $ext_desc, 'EXT_DESC' => $ext_desc,
'VERSION' => $plugin['version'], 'VERSION' => $plugin['version'],
'VERSION_URL' => PEM_URL.'/revision_view.php?rid='.$plugin['id_revision'], 'VERSION_URL' => PEM_URL.'/revision_view.php?rid='.$plugin['id_revision'],
'DATE' => date('Y-m-d', $plugin['date']),
'VER_DESC' => $ver_desc, 'VER_DESC' => $ver_desc,
'AUTHOR' => $plugin['author'], 'AUTHOR' => $plugin['author'],
'URL_INSTALL' => $url_auto_install, 'URL_INSTALL' => $url_auto_install,

View file

@ -94,21 +94,14 @@ if (isset($_GET['upgradestatus']) and isset($_GET['plugin']))
} }
//--------------------------------------------------------------------Tabsheet //--------------------------------------------------------------------Tabsheet
include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); set_plugins_tabsheet($page['page']);
$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();
// +-----------------------------------------------------------------------+ // +-----------------------------------------------------------------------+
// | start template output | // | start template output |
// +-----------------------------------------------------------------------+ // +-----------------------------------------------------------------------+
$plugins->get_server_plugins(); $plugins->get_server_plugins();
if ($plugins->server_plugins !== false) if (is_array($plugins->server_plugins))
{ {
foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
{ {
@ -126,7 +119,7 @@ if ($plugins->server_plugins !== false)
nl2br(htmlspecialchars(strip_tags( nl2br(htmlspecialchars(strip_tags(
utf8_encode($plugin_info['description']))))); 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 // Plugin is up to date
$template->append('plugins_uptodate', $template->append('plugins_uptodate',

View file

@ -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['conf_nb_comment_page_error'] = 'The number of comments a page must be between 5 and 50 included.';
$lang['config'] = 'Configuration'; $lang['config'] = 'Configuration';
$lang['confirm'] = 'confirm'; $lang['confirm'] = 'confirm';
$lang['date'] = 'date'; $lang['Date'] = 'Date';
$lang['delete category'] = 'delete category'; $lang['delete category'] = 'delete category';
$lang['description'] = 'description'; $lang['description'] = 'description';
$lang['dissociate from category'] = 'dissociate from category'; $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_list'] = 'Plugin list';
$lang['plugins_tab_update'] = 'Check for updates'; $lang['plugins_tab_update'] = 'Check for updates';
$lang['plugins_tab_new'] = 'Other plugins'; $lang['plugins_tab_new'] = 'Other plugins';
$lang['plugins_revisions'] = 'Last revisions';
$lang['plugins_delete'] = 'Delete'; $lang['plugins_delete'] = 'Delete';
$lang['plugins_confirm_delete'] = 'Are you sure you want to delete this plugin?'; $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?'; $lang['plugins_confirm_install'] = 'Are you sure you want to install this plugin?';

View file

@ -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['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['config'] = 'Configuración';
$lang['confirm'] = 'Confirmar'; $lang['confirm'] = 'Confirmar';
$lang['date'] = 'Fecha'; $lang['Date'] = 'Fecha';
$lang['delete category'] = 'Suprimir la categoría'; $lang['delete category'] = 'Suprimir la categoría';
$lang['description'] = 'Descripción'; $lang['description'] = 'Descripción';
$lang['dissociate from category'] = 'Disociar la categoría'; $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_anomaly_ignored_count'] = '%d anomalía ha sido ignorada.';
$lang['c13y_anomalies_ignored_count'] = '%d anomalías han sido ignoradas.'; $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'; /* TODO */ $lang['Purge compiled templates'] = 'Purge compiled templates';
?> ?>

View file

@ -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['conf_nb_comment_page_error'] = 'Le nombre de commentaires d\'utilisateurs par page doit être compris entre 5 et 50.';
$lang['config'] = 'Configuration'; $lang['config'] = 'Configuration';
$lang['confirm'] = 'confirmer'; $lang['confirm'] = 'confirmer';
$lang['date'] = 'date'; $lang['Date'] = 'Date';
$lang['delete category'] = 'supprimer la catégorie'; $lang['delete category'] = 'supprimer la catégorie';
$lang['description'] = 'description'; $lang['description'] = 'description';
$lang['dissociate from category'] = 'dissocier de la catégorie'; $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_list'] = 'Liste des plugins';
$lang['plugins_tab_update'] = 'Vérifier les mises à jour'; $lang['plugins_tab_update'] = 'Vérifier les mises à jour';
$lang['plugins_tab_new'] = 'Autres plugins disponibles'; $lang['plugins_tab_new'] = 'Autres plugins disponibles';
$lang['plugins_revisions'] = 'Dernières révisions';
$lang['plugins_delete'] = 'Supprimer'; $lang['plugins_delete'] = 'Supprimer';
$lang['plugins_confirm_install'] = 'Etes-vous sûr de vouloir installer ce plugin?'; $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?'; $lang['plugins_confirm_delete'] = 'Etes-vous sûr de vouloir supprimer ce plugin?';

View file

@ -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['conf_nb_comment_page_error'] = 'Het aantal commentaren moet tussen 5 and 50 liggen.';
$lang['config'] = 'Configuratie'; $lang['config'] = 'Configuratie';
$lang['confirm'] = 'bevestig'; $lang['confirm'] = 'bevestig';
$lang['date'] = 'datum'; $lang['Date'] = 'Datum';
$lang['delete category'] = 'verwijder categorie'; $lang['delete category'] = 'verwijder categorie';
$lang['description'] = 'omschrijving'; $lang['description'] = 'omschrijving';
$lang['dissociate from category'] = 'verwijder link naar categorie'; $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_anomaly_ignored_count'] = '%d anomaly has been ignored.';
/* TODO */ $lang['c13y_anomalies_ignored_count'] = '%d anomalies 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'; /* TODO */ $lang['Purge compiled templates'] = 'Purge compiled templates';
?> ?>

View file

@ -116,7 +116,7 @@
<table class="table2" id="detailedStats"> <table class="table2" id="detailedStats">
<tr class="throw"> <tr class="throw">
<th>{'date'|@translate}</th> <th>{'Date'|@translate}</th>
<th>{'time'|@translate}</th> <th>{'time'|@translate}</th>
<th>{'user'|@translate}</th> <th>{'user'|@translate}</th>
<th>{'IP'|@translate}</th> <th>{'IP'|@translate}</th>

View file

@ -4,7 +4,7 @@
</div> </div>
{'Sort order'|@translate} : {'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} {html_options options=$order_options selected=$order_selected}
</select> </select>
@ -15,6 +15,7 @@
<tr class="throw"> <tr class="throw">
<td>{'Name'|@translate}</td> <td>{'Name'|@translate}</td>
<td>{'Version'|@translate}</td> <td>{'Version'|@translate}</td>
<td>{'Date'|@translate}</td>
<td>{'Author'|@translate}</td> <td>{'Author'|@translate}</td>
<td>{'Actions'|@translate}</td> <td>{'Actions'|@translate}</td>
</tr> </tr>
@ -25,6 +26,7 @@
<span>{$plugin.EXT_DESC}</span></a></td> <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} <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> <span>{$plugin.VER_DESC}</span></a></td>
<td>{$plugin.DATE}</td>
<td>{$plugin.AUTHOR}</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> <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> / <a href="{$plugin.URL_DOWNLOAD}">{'plugins_download'|@translate}</a>

View file

@ -63,7 +63,7 @@
</thead> </thead>
{foreach from=$plugins_cant_check item=plugin name=plugins_loop} {foreach from=$plugins_cant_check item=plugin name=plugins_loop}
<tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
<td>&nbsp;{$plugin.NAME}&nbsp;</td> <td>{$plugin.NAME}</td>
<td style="text-align:center;">{$plugin.VERSION}</td> <td style="text-align:center;">{$plugin.VERSION}</td>
</tr> </tr>
{/foreach} {/foreach}

View file

@ -10,7 +10,7 @@
<table style="width:99%;" > <table style="width:99%;" >
<tr class="throw"> <tr class="throw">
<th style="width:20%;">{'category'|@translate}</th> <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%;">{'file'|@translate}</th>
<th style="width:20%;">{'thumbnail'|@translate}</th> <th style="width:20%;">{'thumbnail'|@translate}</th>
<th style="width:20%;">{'Author'|@translate}</th> <th style="width:20%;">{'Author'|@translate}</th>