? hidden_require_reason_and_disable_default_reason.patch
Index: hidden.action-pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hidden/hidden.action-pages.inc,v
retrieving revision 1.4
diff -u -p -r1.4 hidden.action-pages.inc
--- hidden.action-pages.inc	18 Dec 2008 15:29:06 -0000	1.4
+++ hidden.action-pages.inc	19 Apr 2009 18:59:58 -0000
@@ -76,10 +76,14 @@ function _hidden_hide_form($user, $hidde
   $form['reason'] = array(
     '#type' => 'radios',
     '#title' => t('Preset Reason'),
-    '#default_value' => isset($hidden->rid) ? $hidden->rid : 0,
+  //  '#default_value' => isset($hidden->rid) ? $hidden->rid : 0,
     '#options' => $reasons,
     '#description' => t('Preset reason why this item shall be hidden.'),
   );
+	$hidden_use_default_reason = variable_get('hidden_use_default_reason',1);
+	if ($hidden_use_default_reason == 1) {
+		$form['reason']['#default_value'] = isset($hidden->rid) ? $hidden->rid : 0;
+	}
 
   $form['publictext'] = array(
     '#type' => 'textarea',
@@ -207,6 +211,12 @@ function _hidden_hide_form_item_get($typ
  * Implementation of form API hook; hide content submit hidden_hide().
  */
 function hidden_hide_validate($form, &$form_state) {
+	$hidden_require_reason = variable_get('hidden_require_reason', 0);
+	if ($hidden_require_reason == 1) {
+		if (!isset($form_state['values']['reason'])) {
+			form_set_error('reason', t('You have to choose a reason for hiding'));
+		}
+	}
   if (user_access('administer hidden')) {
     // Validate the "hidden by" field.
     if (!empty($form_state['values']['user']) && !($user = user_load(array('name' => $form_state['values']['user'])))) {
Index: hidden.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hidden/hidden.admin.inc,v
retrieving revision 1.2
diff -u -p -r1.2 hidden.admin.inc
--- hidden.admin.inc	18 Dec 2008 15:29:07 -0000	1.2
+++ hidden.admin.inc	19 Apr 2009 18:59:58 -0000
@@ -165,9 +165,38 @@ function hidden_reasons_admin() {
   $table = theme('table', $header, $disabled);
   $page .= theme('box', t('Disabled reasons for hiding'), $table);
 
+	$form .= drupal_get_form('hidden_reason_form');
+	$page .= theme('box', t('Other settings'), $form);
+
   return $page;
 }
 
+function hidden_reason_form() {
+	$form['hidden_use_default_reason'] = array(
+			'#type' => 'checkbox',
+			'#title' => t('Use default reason'),
+			'#return_value' => 1,
+			'#default_value' => variable_get('hidden_use_default_reason',0),
+			);
+	$form['hidden_require_reason'] = array(
+			'#type' => 'checkbox',
+			'#title' => t('Require a reason'),
+			'#return_value' => 1,
+			'#default_value' => variable_get('hidden_require_reason',0),
+			);
+	$form['submit'] = array(
+			'#type' => 'submit',
+			'#value' => t('Save'),
+			);
+	return $form;
+}
+
+function hidden_reason_form_submit($form, &$form_state) {
+	variable_set('hidden_use_default_reason', $form_state['values']['hidden_use_default_reason']);
+	variable_set('hidden_require_reason', $form_state['values']['hidden_require_reason']);
+}
+
+
 /**
  * Menu callback; Admin new or edit hidden reason
  *
Index: hidden.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hidden/hidden.module,v
retrieving revision 1.8
diff -u -p -r1.8 hidden.module
--- hidden.module	18 Dec 2008 15:29:07 -0000	1.8
+++ hidden.module	19 Apr 2009 18:59:58 -0000
@@ -1409,7 +1409,10 @@ function hidden_reason_disable($rid) {
  */
 function _hidden_reasons_get_options() {
   $reasons = hidden_reason_get_all();
-  $options = array(0 => t('No standard reason'));
+	$hidden_use_default_reason = variable_get('hidden_use_default_reason',1);
+	if ($hidden_use_default_reason == 1) {
+	  $options = array(0 => t('No standard reason'));
+	}
   foreach ($reasons as $rid => $reason ) {
     $options[$rid] = $reason->title;
   }
