Ignore:
Timestamp:
Feb 24, 2011, 4:45:43 PM (13 years ago)
Author:
patdenice
Message:

Plugins can add their own modules.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/PWG_Stuffs/admin/admin.php

    r3609 r9369  
    1414// |                            Tabsheet
    1515// +-----------------------------------------------------------------------+
    16 if (!isset($_GET['tab']))
    17     $page['tab'] = 'manage';
    18 else
    19     $page['tab'] = $_GET['tab'];
     16$page['tab'] = isset($_GET['tab']) ? $_GET['tab'] : 'manage';
    2017
    2118$tabsheet = new tabsheet();
    22 $tabsheet->add('manage',
    23                l10n('stuffs_mods_management'),
    24                $my_base_url.'&tab=manage');
    25 $tabsheet->add('new',
    26                l10n('stuffs_add_mod'),
    27                $my_base_url.'&tab=new');
     19$tabsheet->add('manage', l10n('stuffs_mods_management'), $my_base_url.'&tab=manage');
     20if ($page['tab'] == 'add_module')
     21{
     22  $tabsheet->add('add_module', l10n('stuffs_add_mod'), $my_base_url.'&tab=add_module&path='.$_GET['path']);
     23}
     24else
     25{
     26  $tabsheet->add('new', l10n('stuffs_add_mod'), $my_base_url.'&tab=new');
     27}
     28if ($page['tab'] == 'edit_module')
     29{
     30  $tabsheet->add('edit_module', l10n('stuffs_edit_mod'), $my_base_url.'&tab=edit_module');
     31}
    2832$tabsheet->select($page['tab']);
    2933$tabsheet->assign();
    3034
    31 //Ajout d'un module
    32 if (isset($_POST['addModule']) and !is_adviser())
     35//Récupération des modules disponibles
     36add_event_handler('get_stuffs_modules', 'get_default_stuffs_modules');
     37$disp_modules = trigger_event('get_stuffs_modules', array());
     38uasort($disp_modules, 'name_compare');
     39
     40$modules = array();
     41foreach($disp_modules as $module)
    3342{
    34         if (!isset($_POST['module']))
     43  $module['path'] = PHPWG_ROOT_PATH.trim($module['path'], './').'/';
     44
     45  if (preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match) and $match[1] != 'PWG_Stuffs')
    3546  {
    36                 array_push($page['errors'], l10n('stuffs_error_no_mod_selected'));
    37         }
    38   else
    39   {
    40     redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadd_module.php&type=' . $_POST['module']);
    41         }
     47   $module['parent'] = $match[1];
     48  }
     49  $modules[$module['path']] = $module;
    4250}
    43 
    44 //Suppression d'un module
    45 if (isset($_GET['del']) and !is_adviser())
    46 {
    47         pwg_query('DELETE FROM ' . STUFFS_TABLE . ' WHERE id = ' . $_GET['del'] . ' LIMIT 1;');
    48   redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php');
    49 }
    50 
    51 //Récupération des modules disponibles
    52 $modules = get_stuffs_modules();
    5351
    5452// Include file
Note: See TracChangeset for help on using the changeset viewer.