You are here

function upload_admin_settings_validate in Drupal 5

Same name and namespace in other branches
  1. 6 modules/upload/upload.admin.inc \upload_admin_settings_validate()

Form API callback to validate the upload settings form.

File

modules/upload/upload.module, line 109
File-handling and attaching files to nodes.

Code

function upload_admin_settings_validate($form_id, $form_values) {
  if ($form_values['upload_max_resolution'] != '0') {
    if (!preg_match('/^[0-9]+x[0-9]+$/', $form_values['upload_max_resolution'])) {
      form_set_error('upload_max_resolution', t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.'));
    }
  }
  $default_uploadsize = $form_values['upload_uploadsize_default'];
  $default_usersize = $form_values['upload_usersize_default'];
  $exceed_max_msg = t('Your PHP settings limit the maximum file size per upload to %size.', array(
    '%size' => format_size(file_upload_max_size()),
  )) . '<br/>';
  $more_info = t("Depending on your sever environment, these settings may be changed in the system-wide php.ini file, a php.ini file in your Drupal root directory, in your Drupal site's settings.php file, or in the .htaccess file in your Drupal root directory.");
  if (!is_numeric($default_uploadsize) || $default_uploadsize <= 0) {
    form_set_error('upload_uploadsize_default', t('The %role file size limit must be a number and greater than zero.', array(
      '%role' => t('default'),
    )));
  }
  if (!is_numeric($default_usersize) || $default_usersize <= 0) {
    form_set_error('upload_usersize_default', t('The %role file size limit must be a number and greater than zero.', array(
      '%role' => t('default'),
    )));
  }
  if ($default_uploadsize * 1024 * 1024 > file_upload_max_size()) {
    form_set_error('upload_uploadsize_default', $exceed_max_msg . $more_info);
    $more_info = '';
  }
  if ($default_uploadsize > $default_usersize) {
    form_set_error('upload_uploadsize_default', t('The %role maximum file size per upload is greater than the total file size allowed per user', array(
      '%role' => t('default'),
    )));
  }
  foreach ($form_values['roles'] as $rid => $role) {
    $uploadsize = $form_values['upload_uploadsize_' . $rid];
    $usersize = $form_values['upload_usersize_' . $rid];
    if (!is_numeric($uploadsize) || $uploadsize <= 0) {
      form_set_error('upload_uploadsize_' . $rid, t('The %role file size limit must be a number and greater than zero.', array(
        '%role' => $role,
      )));
    }
    if (!is_numeric($usersize) || $usersize <= 0) {
      form_set_error('upload_usersize_' . $rid, t('The %role file size limit must be a number and greater than zero.', array(
        '%role' => $role,
      )));
    }
    if ($uploadsize * 1024 * 1024 > file_upload_max_size()) {
      form_set_error('upload_uploadsize_' . $rid, $exceed_max_msg . $more_info);
      $more_info = '';
    }
    if ($uploadsize > $usersize) {
      form_set_error('upload_uploadsize_' . $rid, t('The %role maximum file size per upload is greater than the total file size allowed per user', array(
        '%role' => $role,
      )));
    }
  }
}