? 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; }