function webform_component_delete in Webform 6.3
Same name and namespace in other branches
- 5.2 webform_components.inc \webform_component_delete()
- 6.2 webform_components.inc \webform_component_delete()
- 7.4 includes/webform.components.inc \webform_component_delete()
- 7.3 includes/webform.components.inc \webform_component_delete()
3 calls to webform_component_delete()
- webform_component_delete_form_submit in includes/
webform.components.inc - Submit handler for webform_component_delete_form().
- webform_node_delete in ./
webform.module - Implements hook_delete().
- webform_node_update in ./
webform.module - Implements hook_node_update().
File
- includes/
webform.components.inc, line 792 - Webform module component 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.
webform_component_include($component['type']);
$delete_function = '_webform_delete_' . $component['type'];
if (function_exists($delete_function)) {
module_load_include('inc', 'webform', 'includes/webform.submissions');
$submissions = webform_get_submissions($node->nid);
foreach ($submissions as $submission) {
if (isset($submission->data[$component['cid']])) {
webform_component_invoke($component['type'], 'delete', $component, $submission->data[$component['cid']]['value']);
}
}
}
// 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)) {
$child_component = $node->webform['components'][$row->cid];
webform_component_delete($node, $child_component);
}
// Post-delete actions.
module_invoke_all('webform_component_delete', $component);
}