Ignore:
Timestamp:
Apr 6, 2011, 11:43:46 AM (13 years ago)
Author:
patdenice
Message:

feature:2250
Incompatible plugins and obsolete plugins may not be activated.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/plugins_list.php

    r9995 r10098  
    6868
    6969$plugins->sort_fs_plugins('name');
     70$plugins->get_merged_extensions();
     71$plugins->get_incompatible_plugins();
     72$merged_plugins = array();
    7073
    7174foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
    7275{
     76  if (isset($_SESSION['incompatible_plugins'][$plugin_id])
     77    and $fs_plugin['version'] != $_SESSION['incompatible_plugins'][$plugin_id])
     78  {
     79    // Incompatible plugins must be reinitilized
     80    unset($_SESSION['incompatible_plugins']);
     81    $plugins->get_incompatible_plugins();
     82  }
     83
    7384  $tpl_plugin = array(
    7485    'NAME' => $fs_plugin['name'],
     
    7889    'AUTHOR' => $fs_plugin['author'],
    7990    'AUTHOR_URL' => @$fs_plugin['author uri'],
    80     'U_ACTION' => sprintf($action_url, $plugin_id)
     91    'U_ACTION' => sprintf($action_url, $plugin_id),
     92    'INCOMPATIBLE' => isset($_SESSION['incompatible_plugins'][$plugin_id]),
    8193    );
     94
     95  if (isset($fs_plugin['extension']) and in_array($fs_plugin['extension'], $_SESSION['merged_extensions']))
     96  {
     97    $tpl_plugin['STATE'] = 'merged';
     98    array_push($merged_plugins, $tpl_plugin);
     99    continue;
     100  }
    82101
    83102  if (isset($plugins->db_plugins_by_id[$plugin_id]))
     
    93112}
    94113
     114$template->append('plugin_states', 'active');
     115$template->append('plugin_states', 'inactive');
     116$template->append('plugin_states', 'uninstalled');
     117
    95118$missing_plugin_ids = array_diff(
    96119  array_keys($plugins->db_plugins_by_id),
     
    98121  );
    99122
    100 foreach($missing_plugin_ids as $plugin_id)
     123if (count($missing_plugin_ids) > 0)
    101124{
    102   $template->append(
    103     'plugins',
    104     array(
    105       'NAME' => $plugin_id,
    106       'VERSION' => $plugins->db_plugins_by_id[$plugin_id]['version'],
    107       'DESC' => "ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW !",
    108       'U_ACTION' => sprintf($action_url, $plugin_id),
    109       'STATE' => 'missing',
    110       )
    111     );
     125  foreach($missing_plugin_ids as $plugin_id)
     126  {
     127    $template->append(
     128      'plugins',
     129      array(
     130        'NAME' => $plugin_id,
     131        'VERSION' => $plugins->db_plugins_by_id[$plugin_id]['version'],
     132        'DESC' => "ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW !",
     133        'U_ACTION' => sprintf($action_url, $plugin_id),
     134        'STATE' => 'missing',
     135        )
     136      );
     137  }
     138  $template->append('plugin_states', 'missing');
    112139}
    113140
    114 $template->append('plugin_states', 'active');
    115 $template->append('plugin_states', 'inactive');
    116 $template->append('plugin_states', 'uninstalled');
    117 
    118 if (count($missing_plugin_ids) > 0)
     141if (count($merged_plugins) > 0)
    119142{
    120   $template->append('plugin_states', 'missing');
     143  foreach($merged_plugins as $tpl_plugin)
     144  {
     145    $tpl_plugin['DESC'] = l10n("THIS PLUGIN IS NOW PART OF PIWIGO CORE. UNINSTALL IT NOW.");
     146    $template->append('plugins', $tpl_plugin);
     147  }
     148  $template->append('plugin_states', 'merged');
    121149}
    122150
Note: See TracChangeset for help on using the changeset viewer.