You are here

function webform_component_delete in Webform 5.2

Same name and namespace in other branches
  1. 6.3 includes/webform.components.inc \webform_component_delete()
  2. 6.2 webform_components.inc \webform_component_delete()
  3. 7.4 includes/webform.components.inc \webform_component_delete()
  4. 7.3 includes/webform.components.inc \webform_component_delete()
2 calls to webform_component_delete()
webform_component_delete_form_submit in ./webform_components.inc
webform_delete in ./webform.module
Implementation of hook_delete().

File

./webform_components.inc, line 531
Webform module components handling.

Code

function webform_component_delete($node, $component) {

  // Check if a delete function is available for this component. If so,
  // load all submissions and allow the component to delete each one.
  $delete_function = '_webform_delete_' . $component['type'];
  if (function_exists($delete_function)) {
    include_once drupal_get_path('module', 'webform') . '/webform_submissions.inc';
    $submissions = webform_get_submissions($node->nid);
    foreach ($submissions as $submission) {
      if (isset($submission->data[$component['cid']])) {
        $delete_function($submission->data[$component['cid']], $component);
      }
    }
  }

  // Remove database entries.
  db_query('DELETE FROM {webform_component} WHERE nid = %d AND cid = %d', $node->nid, $component['cid']);
  db_query('DELETE FROM {webform_submitted_data} WHERE nid = %d AND cid = %d', $node->nid, $component['cid']);

  // Delete all elements under this element.
  $result = db_query('SELECT cid FROM {webform_component} WHERE nid = %d AND pid = %d', $node->nid, $component['cid']);
  while ($row = db_fetch_object($result)) {
    $component = $node->webform['components'][$row->cid];
    webform_component_delete($node, $component);
  }
}