diff -u'rNF^function' survey.orig/survey.module survey/survey.module --- survey.orig/survey.module 2006-06-29 10:39:36.000000000 -0500 +++ survey/survey.module 2006-06-29 11:41:49.000000000 -0500 @@ -105,7 +105,7 @@ function survey_access($op, $node) { } /** - * Impelementation of hook_validate + * Implementation of hook_validate */ function survey_validate(&$node) { if ($node->email) { @@ -123,6 +123,9 @@ function survey_validate(&$node) { */ function survey_form(&$node) { + $admin = user_access('administer nodes'); + + $form = array(); $form['title'] = @@ -175,6 +178,30 @@ function survey_form(&$node) { $form['fid'] = array('#type' => 'hidden', '#value' => $node->fid); + + // Survey attributes + $_duration = array(0 => t('Unlimited')) + drupal_map_assoc(array(86400, 172800, 345600, 604800, 1209600, 2419200, 4838400, 9676800, 31536000), "format_interval"); + $_active = array(0 => t('Closed'), 1 => t('Active')); + + if ($admin) { + $form['settings'] = array( + '#type' => 'fieldset', + '#title' => t('Settings') + ); + $form['settings']['active'] = array( + '#type' => 'radios', + '#title' => t('Survey status'), + '#default_value' => isset($node->active) ? $node->active : 1, + '#options' => $_active, + '#description' => t('When a survey is closed, visitors can no longer complete the form.')); + $form['settings']['runtime'] = array( + '#type' => 'select', + '#title' => t('Survey duration'), + '#default_value' => $node->runtime ? $node->runtime : 0, + '#options' => $_duration, + '#description' => t('After this period, the survey will be closed automatically.') + ); + return $form; } @@ -184,7 +211,7 @@ function survey_form(&$node) { function survey_view(&$node, $teaser = 0, $page = 0) { $node = node_prepare($node, $teaser); $node->readmore = TRUE; - if ($page) { + if ($page && $node->active) { $form['submit'] = array('#type' => 'submit', '#value' => t('Submit')); $node->body .= drupal_get_form('survey_response', $form); } @@ -203,12 +230,12 @@ function survey_load($node) { function survey_insert(&$node) { // first thing to do is create a form to associate to this survey $node->fid = forms_create('survey'); - db_query("INSERT INTO {survey} (nid, fid, email, result_page) VALUES (%d, %d, '%s', '%s')", - $node->nid, $node->fid, $node->email, $node->result_page); + db_query("INSERT INTO {survey} (nid, fid, email, result_page, runtime, active) VALUES (%d, %d, '%s', '%s', '%s','%s')", + $node->nid, $node->fid, $node->email, $node->result_page, $node->runtime, $node->active); } function survey_update(&$node) { - db_query("UPDATE {survey} SET email='%s', result_page='%s' WHERE nid=%d", $node->email, $node->result_page, $node->nid); + db_query("UPDATE {survey} SET email='%s', result_page='%s', runtime = '%s', active='%s' WHERE nid=%d", $node->email, $node->result_page, $node->nid, $node->runtime, $node->active); } function survey_delete(&$node) { @@ -432,4 +459,4 @@ function survey_excel() { exit; } -?> \ No newline at end of file +?> diff -u'rNF^function' survey.orig/survey.mysql survey/survey.mysql --- survey.orig/survey.mysql 2006-06-29 10:39:36.000000000 -0500 +++ survey/survey.mysql 2006-06-29 11:41:49.000000000 -0500 @@ -4,6 +4,8 @@ fid int(11) not null, email text, result_page text, + runtime int(10) NOT NULL default '0', + active int(2) unsigned NOT NULL default '0', primary key(nid) ); @@ -22,4 +24,4 @@ ffid int(11) not null, value text, primary key (rid, ffid) -); \ No newline at end of file +);