Changeset 2272 for trunk/admin


Ignore:
Timestamp:
Mar 10, 2008, 7:01:17 PM (16 years ago)
Author:
patdenice
Message:

Corrections in plugins management.
Add "Last revisions" sort order.

Location:
trunk/admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/include/functions_plugins.inc.php

    r2263 r2272  
    4747  return $url;
    4848}
     49
     50/**
     51 * Set tabsheet for plugins pages.
     52 * @param string selected page.
     53 */
     54function set_plugins_tabsheet($selected)
     55{
     56  include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
     57
     58  $link = get_root_url().'admin.php?page=';
     59
     60  $tabsheet = new tabsheet();
     61  $tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list');
     62  $tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update');
     63  $tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new');
     64  $tabsheet->select($selected);
     65  $tabsheet->assign();
     66}
    4967?>
  • trunk/admin/include/plugins.class.php

    r2264 r2272  
    2929  var $fs_plugins = array();
    3030  var $db_plugins_by_id = array();
    31   var $server_plugins = array();
     31  var $server_plugins;
    3232
    3333  /**
     
    5050  * @param array - errors
    5151  */
    52   function perform_action($action, $plugin_id, $errors=array())
     52  function perform_action($action, $plugin_id)
    5353  {
    5454    if (isset($this->db_plugins_by_id[$plugin_id]))
     
    5757    }
    5858    $file_to_include = PHPWG_PLUGINS_PATH . $plugin_id . '/maintain.inc.php';
     59
     60    $errors = array();
    5961
    6062    switch ($action)
     
    280282      $this->server_plugins = @unserialize($source);
    281283    }
    282     else
    283     {
    284       $this->server_plugins = false;
    285     }
    286284  }
    287285 
     
    295293      case 'date':
    296294        krsort($this->server_plugins);
     295        break;
     296      case 'revision':
     297        usort($this->server_plugins, array($this, 'extension_revision_compare'));
    297298        break;
    298299      case 'name':
     
    428429  function plugin_version_compare($a, $b)
    429430  {
    430     $r = version_compare($a['version'], $b['version']);
    431     if ($r == 0) return strcasecmp($a['version'], $b['version']);
    432     else return $r;
     431    $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./');
     432    $replacement = array( "'.'.intval('\\1', 36).'.'", '.', '');
     433
     434    $array = preg_replace($pattern, $replacement, array($a['version'], $b['version']));
     435
     436    return version_compare($array[0], $array[1], '>=');
     437  }
     438
     439  function extension_revision_compare($a, $b)
     440  {
     441    if ($a['date'] < $b['date']) return 1;
     442    else return -1;
    433443  }
    434444
  • trunk/admin/plugins_list.php

    r2264 r2272  
    4242{
    4343  $page['errors'] =
    44     $plugins->perform_action($_GET['action'], $_GET['plugin'], $page['errors']);
     44    $plugins->perform_action($_GET['action'], $_GET['plugin']);
    4545
    4646  if (empty($page['errors'])) redirect($base_url);
     
    4848
    4949//--------------------------------------------------------------------Tabsheet
    50 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
    51 $link = get_root_url().'admin.php?page=';
    52 $tabsheet = new tabsheet();
    53 $tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list');
    54 $tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update');
    55 $tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new');
    56 $tabsheet->select($page['page']);
    57 $tabsheet->assign();
     50set_plugins_tabsheet($page['page']);
    5851
    5952//---------------------------------------------------------------Order options
    60 $link .= $page['page'].'&amp;order=';
     53$link = get_root_url().'admin.php?page='.$page['page'].'&amp;order=';
    6154$template->assign('order_options',
    6255  array(
  • trunk/admin/plugins_new.php

    r2264 r2272  
    7878
    7979//--------------------------------------------------------------------Tabsheet
    80 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
    81 $link = get_root_url().'admin.php?page=';
    82 $tabsheet = new tabsheet();
    83 $tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list');
    84 $tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update');
    85 $tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new');
    86 $tabsheet->select($page['page']);
    87 $tabsheet->assign();
     80set_plugins_tabsheet($page['page']);
    8881
    8982//---------------------------------------------------------------Order options
    90 $link .= $page['page'].'&amp;order=';
     83$link = get_root_url().'admin.php?page='.$page['page'].'&amp;order=';
    9184$template->assign('order_options',
    9285  array(
    9386    $link.'date' => l10n('Post date'),
     87    $link.'revision' => l10n('plugins_revisions'),
    9488    $link.'name' => l10n('Name'),
    9589    $link.'author' => l10n('Author')));
     
    10094// +-----------------------------------------------------------------------+
    10195$plugins->get_server_plugins(true);
    102 $plugins->sort_server_plugins($order);
    10396
    104 if ($plugins->server_plugins !== false)
     97if (is_array($plugins->server_plugins))
    10598{
     99  $plugins->sort_server_plugins($order);
     100
    106101  foreach($plugins->server_plugins as $plugin)
    107102  {
     
    131126          'VERSION' => $plugin['version'],
    132127          'VERSION_URL' => PEM_URL.'/revision_view.php?rid='.$plugin['id_revision'],
     128          'DATE' => date('Y-m-d', $plugin['date']),
    133129          'VER_DESC' => $ver_desc,
    134130          'AUTHOR' => $plugin['author'],
  • trunk/admin/plugins_update.php

    r2264 r2272  
    9595
    9696//--------------------------------------------------------------------Tabsheet
    97 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
    98 $link = get_root_url().'admin.php?page=';
    99 $tabsheet = new tabsheet();
    100 $tabsheet->add('plugins_list', l10n('plugins_tab_list'), $link.'plugins_list');
    101 $tabsheet->add('plugins_update', l10n('plugins_tab_update'), $link.'plugins_update');
    102 $tabsheet->add('plugins_new', l10n('plugins_tab_new'), $link.'plugins_new');
    103 $tabsheet->select($page['page']);
    104 $tabsheet->assign();
     97set_plugins_tabsheet($page['page']);
    10598
    10699// +-----------------------------------------------------------------------+
     
    109102$plugins->get_server_plugins();
    110103
    111 if ($plugins->server_plugins !== false)
     104if (is_array($plugins->server_plugins))
    112105{
    113106  foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
     
    127120              utf8_encode($plugin_info['description'])))));
    128121
    129       if ($plugins->plugin_version_compare($fs_plugin, $plugin_info) >= 0)
     122      if ($plugins->plugin_version_compare($fs_plugin, $plugin_info))
    130123      {
    131124        // Plugin is up to date
Note: See TracChangeset for help on using the changeset viewer.