function _webform_template_attach in Webform Template 6
Internal function Adds webform template to a node if $_SESSION indicates a template.
1 call to _webform_template_attach()
- webform_template_nodeapi in ./
webform_template.module - Implements hook_nodeapi().
File
- ./
webform_template.module, line 100
Code
function _webform_template_attach($node, $op = NULL) {
if (isset($_SESSION['webform_template'])) {
if ($op == 'delete') {
if (!in_array($node->type, webform_variable_get('webform_node_types'))) {
return;
}
// Allow components clean up extra data, such as uploaded files.
module_load_include('inc', 'webform', 'includes/webform.components');
foreach ($node->webform['components'] as $cid => $component) {
webform_component_delete($node, $component);
}
// Remove any trace of webform data from the database.
db_query('DELETE FROM {webform} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_component} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_emails} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_roles} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_submissions} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_submitted_data} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {webform_last_download} WHERE nid = %d', $node->nid);
}
$template = node_load($_SESSION['webform_template']);
$webform = $template->webform;
module_load_include('inc', 'webform', 'includes/webform.components');
module_load_include('inc', 'webform', 'includes/webform.emails');
$node->webform = $webform;
$node->webform['nid'] = $node->nid;
$node->webform['record_exists'] = (bool) drupal_write_record('webform', $node->webform);
// Insert the components into the database.
if (isset($node->webform['components']) && !empty($node->webform['components'])) {
foreach ($node->webform['components'] as $cid => $component) {
$component['nid'] = $node->nid;
webform_component_insert($component);
}
}
// Insert emails.
if (isset($node->webform['emails']) && !empty($node->webform['emails'])) {
foreach ($node->webform['emails'] as $eid => $email) {
$email['nid'] = $node->nid;
webform_email_insert($email);
}
}
unset($_SESSION['webform_template']);
}
}