The following piece of code demonstrate how to create a webform programmatically.
$node = new stdClass(); $node->type = 'webform'; node_object_prepare($node); $node->title = 'A webform'; $node->language = LANGUAGE_NONE; // Or other language. $node->body[$node->language][0]['value'] = '<p>This is the a webform.</p>'; $node->body[$node->language][0]['format'] = 'full_html'; $node->uid = 1; // Set admin as author $node->promote = 0; // Do not put this node to front page. $node->comment = 1; // Closed the comment. // Create the webform components. $components = array( 0 => array( 'name' => 'First name', 'form_key' => 'first_name', 'type' => 'textfield', 'mandatory' => 1, 'weight' => 1, 'pid' => 0, 'extra' => array( 'title_display' => 'before', 'private' => 0, ), ), 1 => array( 'name' => 'Last name', 'form_key' => 'name', 'type' => 'textfield', 'mandatory' => 1, 'weight' => 2, 'pid' => 0, 'extra' => array( 'title_display' => 'before', 'private' => 0, ), ), 2 => array( 'name' => 'Email address', 'form_key' => 'email_address', 'type' => 'email', 'mandatory' => 1, 'weight' => 3, 'pid' => 0, 'extra' => array( 'title_display' => 'before', 'private' => 0, ), ), 3 => array( 'name' => 'Message', 'form_key' => 'message', 'type' => 'textarea', 'mandatory' => 1, 'weight' => 4, 'pid' => 0, 'extra' => array( 'title_display' => 'before', 'private' => 0, ), ), ); // Setup notification email. $emails = array( 0 => array( 'email' => 'abc@def.com', 'subject' => 'default', 'from_name' => 'default', 'from_address' => 'default', 'template' => 'default', 'excluded_components' => array(), ), ); // Attach the webform to the node. $node->webform = array( 'confirmation' => '', 'confirmation_format' => NULL, 'redirect_url' => '<confirmation>', 'status' => '1', 'block' => '0', 'teaser' => '0', 'allow_draft' => '0', 'auto_save' => '0', 'submit_notice' => '1', 'submit_text' => '', 'submit_limit' => '-1', // User can submit more than once. 'submit_interval' => '-1', 'total_submit_limit' => '-1', 'total_submit_interval' => '-1', 'record_exists' => TRUE, 'roles' => array( 0 => '1', // Anonymous user can submit this webform. ), 'emails' => $emails, 'components' => $components, ); // Save the node. node_save($node);
Done =)
Reference:
How can this code be modified to handle a grid type question?
LikeLike
what do u mean by grid type question?
LikeLike