From 4d9725455963e4d3b39f264217b3b0950d138d04 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Sat, 13 May 2006 10:19:13 +0000
Subject: [PATCH] - Patch #41352 by Steve, Zen, Crell et al: new feature: make
 the default behavior of the contact forms configurable.

---
 CHANGELOG.txt                  |  1 +
 modules/contact.module         | 13 +++++++++++--
 modules/contact/contact.module | 13 +++++++++++--
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index a5903938cb74..0f90a2b7d56f 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -2,6 +2,7 @@ Drupal x.x.x, xxxx-xx-xx (development version)
 ------------------------
 - usability:
     * added support for auto-complete forms (AJAX) to user profiles.
+    * improved configurability of the contact forms.
 
 Drupal 4.7.0, 2006-05-01
 ------------------------
diff --git a/modules/contact.module b/modules/contact.module
index 07bcd9553f02..051235b1470b 100644
--- a/modules/contact.module
+++ b/modules/contact.module
@@ -120,7 +120,7 @@ function contact_menu($may_cache) {
  *
  * Allows the user the option of enabling/disabling his personal contact form.
  */
-function contact_user($type, $edit, &$user, $category = NULL) {
+function contact_user($type, &$edit, &$user, $category = NULL) {
   if ($type == 'form' && $category == 'account') {
     $form['contact'] = array('#type' => 'fieldset',
       '#title' => t('Contact settings'),
@@ -134,9 +134,12 @@ function contact_user($type, $edit, &$user, $category = NULL) {
     );
     return $form;
   }
-  if ($type == 'validate') {
+  elseif ($type == 'validate') {
     return array('contact' => $edit['contact']);
   }
+  elseif ($type == 'insert') {
+    $edit['contact'] = variable_get('contact_default_status', 1);
+  }
 }
 
 /**
@@ -291,6 +294,12 @@ function contact_admin_settings() {
     '#default_value' => variable_get('contact_hourly_threshold', 3),
     '#description' => t('The maximum number of contact form submissions a user can perform per hour.'),
   );
+  $form['contact_default_status'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable personal contact form by default'),
+    '#default_value' => variable_get('contact_default_status', 1),
+    '#description' => t('Default status of the personal contact form for new users.'),
+  );
   $form['submit'] = array('#type' => 'submit',
     '#value' => t('Save configuration'),
   );
diff --git a/modules/contact/contact.module b/modules/contact/contact.module
index 07bcd9553f02..051235b1470b 100644
--- a/modules/contact/contact.module
+++ b/modules/contact/contact.module
@@ -120,7 +120,7 @@ function contact_menu($may_cache) {
  *
  * Allows the user the option of enabling/disabling his personal contact form.
  */
-function contact_user($type, $edit, &$user, $category = NULL) {
+function contact_user($type, &$edit, &$user, $category = NULL) {
   if ($type == 'form' && $category == 'account') {
     $form['contact'] = array('#type' => 'fieldset',
       '#title' => t('Contact settings'),
@@ -134,9 +134,12 @@ function contact_user($type, $edit, &$user, $category = NULL) {
     );
     return $form;
   }
-  if ($type == 'validate') {
+  elseif ($type == 'validate') {
     return array('contact' => $edit['contact']);
   }
+  elseif ($type == 'insert') {
+    $edit['contact'] = variable_get('contact_default_status', 1);
+  }
 }
 
 /**
@@ -291,6 +294,12 @@ function contact_admin_settings() {
     '#default_value' => variable_get('contact_hourly_threshold', 3),
     '#description' => t('The maximum number of contact form submissions a user can perform per hour.'),
   );
+  $form['contact_default_status'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable personal contact form by default'),
+    '#default_value' => variable_get('contact_default_status', 1),
+    '#description' => t('Default status of the personal contact form for new users.'),
+  );
   $form['submit'] = array('#type' => 'submit',
     '#value' => t('Save configuration'),
   );
-- 
GitLab