Changeset 1731


Ignore:
Timestamp:
Jan 18, 2007, 3:09:31 AM (17 years ago)
Author:
rvelices
Message:

plugin simplification: adding admin links does not require the plugin_id anymore...

Location:
trunk
Files:
4 edited

Legend:

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

    r1705 r1731  
    7171/**
    7272 * Retrieves an url for a plugin page.
    73  * @param string plugin_id
    74  * @param string page - the php script file name (without .php extension)
     73 * @param string file - php script full name
    7574 */
    76 function get_admin_plugin_menu_link($plugin_id, $page)
     75function get_admin_plugin_menu_link($file)
    7776{
    78   $url = get_root_url().'admin.php?page=plugin&section='
    79     .urlencode($plugin_id .'~'. $page);
     77  global $page;
     78  $real_file = realpath($file);
     79  $url = get_root_url().'admin.php?page=plugin';
     80  if (false!==$real_file)
     81  {
     82    $real_plugin_path = realpath(PHPWG_PLUGINS_PATH);
     83    $file = substr($real_file, strlen($real_plugin_path)+1);
     84    $file = str_replace('\\', '/', $file);//Windows
     85    $url .= '&section='.urlencode($file);
     86  }
     87  else if (isset($page['errors']))
     88  {
     89    array_push($page['errors'], 'PLUGIN ERROR: "'.$file.'" is not a valid file');
     90  }
    8091  return $url;
    8192}
  • trunk/admin/plugin.php

    r1705 r1731  
    3434check_status(ACCESS_ADMINISTRATOR);
    3535
    36 $section = explode('~', $_GET['section'] );
    37 if (count($section)!=2)
     36$sections = explode('/', $_GET['section'] );
     37for ($i=0; $i<count($sections); $i++)
     38{
     39  if (empty($sections[$i]) or $sections[$i]=='..')
     40  {
     41    unset($sections[$i]);
     42    $i--;
     43  }
     44}
     45
     46if (count($sections)<2)
    3847{
    3948  die('Invalid plugin URL');
    4049}
    4150
    42 $plugin_id = $section[0];
     51$plugin_id = $sections[0];
    4352$check_db_plugin = get_db_plugins('active', $plugin_id );
    4453if (empty($check_db_plugin))
     
    4655  die('Invalid URL - plugin '.$plugin_id.' not active');
    4756}
    48 $section[1]=str_replace('./', '', $section[1]); // no up in dir structure
    4957
    50 $filename = PHPWG_PLUGINS_PATH.$plugin_id.'/'.$section[1].'.php';
     58$filename = PHPWG_PLUGINS_PATH.implode('/', $sections);
    5159if (is_file($filename))
    5260{
     
    5563else
    5664{
    57   die('Missing '.$filename);
     65  die('Missing file '.$filename);
    5866}
    5967?>
  • trunk/plugins/add_index/main.admin.inc.php

    r1705 r1731  
    3434class AdminAddIndex extends AddIndex
    3535{
    36   var $my_id;
    3736  function load_params()
    3837  {
     
    6463      (
    6564        'CAPTION' => l10n('Advanced_Add_Index'),
    66         'URL' => get_admin_plugin_menu_link($this->my_id, 'admin/main_page').'&amp;overwrite'
     65        'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin/main_page.php').'&amp;overwrite'
    6766      ));
    6867
     
    7776        array
    7877        (
    79           'U_HREF' => get_admin_plugin_menu_link($this->my_id, 'admin/main_page').'&amp;site_id='.$site_id,
     78          'U_HREF' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin/main_page.php').'&amp;site_id='.$site_id,
    8079          'U_CAPTION' => l10n('Manager_Add_Index'),
    8180          'U_HINT' => l10n('Add_Index')
     
    9190        array(
    9291          'NAME' => l10n('Menu_Add_Index'),
    93           'URL' => get_admin_plugin_menu_link($this->my_id, 'admin/admin_menu')
     92          'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin/admin_menu.php')
    9493        )
    9594      );
     
    10099// Create object
    101100$add_index = new AdminAddIndex();
    102 $add_index->my_id = $plugin['id'];
    103101
    104102// Load Add Index parameters
  • trunk/plugins/event_tracer/main.inc.php

    r1705 r1731  
    1212  var $me_working;
    1313  var $my_config;
    14   var $my_id;
    1514 
    16   function EventTracer($id)
     15  function EventTracer()
    1716  {
    1817    $this->me_working=0;
    19     $this->my_id=$id;
    2018  }
    2119
     
    8482        array(
    8583          'NAME' => 'Event Tracer',
    86           'URL' => get_admin_plugin_menu_link($this->my_id, 'tracer_admin')
     84          'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/tracer_admin.php')
    8785        )
    8886      );
     
    9189}
    9290
    93 $obj = new EventTracer($plugin['id']);
     91$obj = new EventTracer();
    9492$obj->load_config();
    9593
Note: See TracChangeset for help on using the changeset viewer.