Mercurial > defr > drupal > core
comparison modules/update/update.settings.inc @ 1:c1f4ac30525a 6.0
Drupal 6.0
| author | Franck Deroche <webmaster@defr.org> |
|---|---|
| date | Tue, 23 Dec 2008 14:28:28 +0100 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:5a113a1c4740 | 1:c1f4ac30525a |
|---|---|
| 1 <?php | |
| 2 // $Id: update.settings.inc,v 1.3 2007/10/20 21:57:50 goba Exp $ | |
| 3 | |
| 4 /** | |
| 5 * @file | |
| 6 * Code required only for the update status settings form. | |
| 7 */ | |
| 8 | |
| 9 /** | |
| 10 * Form builder for the update settings tab. | |
| 11 */ | |
| 12 function update_settings() { | |
| 13 $form = array(); | |
| 14 | |
| 15 $notify_emails = variable_get('update_notify_emails', array()); | |
| 16 $form['update_notify_emails'] = array( | |
| 17 '#type' => 'textarea', | |
| 18 '#title' => t('E-mail addresses to notify when updates are available'), | |
| 19 '#rows' => 4, | |
| 20 '#default_value' => implode("\n", $notify_emails), | |
| 21 '#description' => t('Whenever your site checks for available updates and finds new releases, it can notify a list of users via e-mail. Put each address on a separate line. If blank, no e-mails will be sent.'), | |
| 22 ); | |
| 23 | |
| 24 $form['update_check_frequency'] = array( | |
| 25 '#type' => 'radios', | |
| 26 '#title' => t('Check for updates'), | |
| 27 '#default_value' => variable_get('update_check_frequency', 1), | |
| 28 '#options' => array( | |
| 29 '1' => t('Daily'), | |
| 30 '7' => t('Weekly'), | |
| 31 ), | |
| 32 '#description' => t('Select how frequently you want to automatically check for new releases of your currently installed modules and themes.'), | |
| 33 ); | |
| 34 | |
| 35 $form['update_notification_threshold'] = array( | |
| 36 '#type' => 'radios', | |
| 37 '#title' => t('Notification threshold'), | |
| 38 '#default_value' => variable_get('update_notification_threshold', 'all'), | |
| 39 '#options' => array( | |
| 40 'all' => t('All newer versions'), | |
| 41 'security' => t('Only security updates'), | |
| 42 ), | |
| 43 '#description' => t('If there are updates available of Drupal core or any of your installed modules and themes, your site will print an error message on the <a href="@status_report">status report</a>, the <a href="@modules_page">modules page</a>, and the <a href="@themes_page">themes page</a>. You can choose to only see these error messages if a security update is available, or to be notified about any newer versions.', array('@status_report' => url('admin/reports/status'), '@modules_page' => url('admin/build/modules'), '@themes_page' => url('admin/build/themes'))) | |
| 44 ); | |
| 45 | |
| 46 $form = system_settings_form($form); | |
| 47 // Custom valiation callback for the email notification setting. | |
| 48 $form['#validate'][] = 'update_settings_validate'; | |
| 49 // We need to call our own submit callback first, not the one from | |
| 50 // system_settings_form(), so that we can process and save the emails. | |
| 51 unset($form['#submit']); | |
| 52 | |
| 53 return $form; | |
| 54 } | |
| 55 | |
| 56 /** | |
| 57 * Validation callback for the settings form. | |
| 58 * | |
| 59 * Validates the email addresses and ensures the field is formatted correctly. | |
| 60 */ | |
| 61 function update_settings_validate($form, &$form_state) { | |
| 62 if (!empty($form_state['values']['update_notify_emails'])) { | |
| 63 $valid = array(); | |
| 64 $invalid = array(); | |
| 65 foreach (explode("\n", trim($form_state['values']['update_notify_emails'])) as $email) { | |
| 66 $email = trim($email); | |
| 67 if (!empty($email)) { | |
| 68 if (valid_email_address($email)) { | |
| 69 $valid[] = $email; | |
| 70 } | |
| 71 else { | |
| 72 $invalid[] = $email; | |
| 73 } | |
| 74 } | |
| 75 } | |
| 76 if (empty($invalid)) { | |
| 77 $form_state['notify_emails'] = $valid; | |
| 78 } | |
| 79 elseif (count($invalid) == 1) { | |
| 80 form_set_error('update_notify_emails', t('%email is not a valid e-mail address.', array('%email' => reset($invalid)))); | |
| 81 } | |
| 82 else { | |
| 83 form_set_error('update_notify_emails', t('%emails are not valid e-mail addresses.', array('%emails' => implode(', ', $invalid)))); | |
| 84 } | |
| 85 } | |
| 86 } | |
| 87 | |
| 88 /** | |
| 89 * Submit handler for the settings tab. | |
| 90 */ | |
| 91 function update_settings_submit($form, $form_state) { | |
| 92 $op = $form_state['values']['op']; | |
| 93 | |
| 94 if ($op == t('Reset to defaults')) { | |
| 95 unset($form_state['notify_emails']); | |
| 96 } | |
| 97 else { | |
| 98 if (empty($form_state['notify_emails'])) { | |
| 99 variable_del('update_notify_emails'); | |
| 100 } | |
| 101 else { | |
| 102 variable_set('update_notify_emails', $form_state['notify_emails']); | |
| 103 } | |
| 104 unset($form_state['notify_emails']); | |
| 105 unset($form_state['values']['update_notify_emails']); | |
| 106 } | |
| 107 system_settings_form_submit($form, $form_state); | |
| 108 } |
