Changeset 8273


Ignore:
Timestamp:
12/24/10 00:12:03 (9 years ago)
Author:
plg
Message:

feature 2084 added: new method pwg.plugins.getList and pwg.plugins.performAction

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/ws_functions.inc.php

    r8272 r8273  
    24652465  return $ret; 
    24662466} 
     2467 
     2468function ws_plugins_getList($params, &$service) 
     2469{ 
     2470  global $conf; 
     2471   
     2472  if (!is_admin()) 
     2473  { 
     2474    return new PwgError(401, 'Access denied'); 
     2475  } 
     2476 
     2477  include_once(PHPWG_ROOT_PATH.'admin/include/plugins.class.php'); 
     2478  $plugins = new plugins(); 
     2479  $plugins->sort_fs_plugins('name'); 
     2480  $plugin_list = array(); 
     2481 
     2482  foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) 
     2483  { 
     2484    if (isset($plugins->db_plugins_by_id[$plugin_id])) 
     2485    { 
     2486      $state = $plugins->db_plugins_by_id[$plugin_id]['state']; 
     2487    } 
     2488    else 
     2489    { 
     2490      $state = 'uninstalled'; 
     2491    } 
     2492 
     2493    array_push( 
     2494      $plugin_list, 
     2495      array( 
     2496        'id' => $plugin_id, 
     2497        'name' => $fs_plugin['name'], 
     2498        'version' => $fs_plugin['version'], 
     2499        'state' => $state, 
     2500        'description' => $fs_plugin['description'], 
     2501        ) 
     2502      ); 
     2503  } 
     2504 
     2505  return $plugin_list; 
     2506} 
     2507 
     2508function ws_plugins_performAction($params, &$service) 
     2509{ 
     2510  global $template; 
     2511   
     2512  if (!is_admin()) 
     2513  { 
     2514    return new PwgError(401, 'Access denied'); 
     2515  } 
     2516 
     2517  if (empty($params['pwg_token']) or get_pwg_token() != $params['pwg_token']) 
     2518  { 
     2519    return new PwgError(403, 'Invalid security token'); 
     2520  } 
     2521 
     2522  define('IN_ADMIN', true); 
     2523  include_once(PHPWG_ROOT_PATH.'admin/include/plugins.class.php'); 
     2524  $plugins = new plugins(); 
     2525  $errors = $plugins->perform_action($params['action'], $params['plugin']); 
     2526 
     2527   
     2528  if (!empty($errors)) 
     2529  { 
     2530    return new PwgError(500, $errors); 
     2531  } 
     2532  else 
     2533  { 
     2534    if (in_array($params['action'], array('activate', 'deactivate'))) 
     2535    { 
     2536      $template->delete_compiled_templates(); 
     2537    } 
     2538    return true; 
     2539  } 
     2540} 
     2541 
    24672542?> 
  • trunk/ws.php

    r8272 r8273  
    369369    'POST method only.' 
    370370    ); 
     371   
     372  $service->addMethod( 
     373    'pwg.plugins.getList', 
     374    'ws_plugins_getList', 
     375    array(), 
     376    'get the list of plugin with id, name, version, state and description 
     377<br>administration status required' 
     378    ); 
     379 
     380  $service->addMethod( 
     381    'pwg.plugins.performAction', 
     382    'ws_plugins_performAction', 
     383    array( 
     384      'action' => array('default' => null), 
     385      'plugin' => array('default' => null), 
     386      'pwg_token' => array('default' => null), 
     387      ), 
     388    'install/activate/deactivate/uninstall/delete a plugin 
     389<br>administration status required' 
     390    ); 
    371391} 
    372392 
Note: See TracChangeset for help on using the changeset viewer.