You are here

function wsconfig_view_form_submit in Web Service Data 7

Submit callback for wsconfig_view_form

File

modules/wsconfig/wsconfig.admin.inc, line 395
Admin forms for wsconfig

Code

function wsconfig_view_form_submit($form, &$form_state) {
  $wsconfig = $form_state['wsconfig'];
  if (isset($form_state['triggering_element']['#name'])) {
    $op = $form_state['triggering_element']['#name'];
    if (in_array($op, $wsconfig
      ->getOperations())) {
      $variables = array();
      foreach ($form_state['values'] as $key => $value) {
        if (drupal_substr($key, 0, drupal_strlen($op . ':')) == $op . ':') {
          $variables[drupal_substr($key, drupal_strlen($op . ':'))] = $value;
        }
      }
      $arguments = array();
      if (isset($form_state['values']['arguments']) and !empty($form_state['values']['arguments'])) {
        $arguments = json_decode($form_state['values']['arguments'], TRUE);
      }
      $options = array();
      if (isset($form_state['values']['options']) and !empty($form_state['values']['options'])) {
        $options = json_decode($form_state['values']['options'], TRUE);
      }
      $url = '';
      $results = $wsconfig
        ->call($op, $variables, $arguments, $options, $url);
      drupal_set_message(t('Method: !method<br>Variables: !variables<br>Arguments: !arguments<br>Options: !options<br>Result: !results', array(
        '!method' => $url,
        '!variables' => print_r($variables, TRUE),
        '!arguments' => print_r($arguments, TRUE),
        '!options' => print_r($options, TRUE),
        '!results' => htmlspecialchars($results),
      )));
      $form_state['rebuild'] = TRUE;
    }
  }
}