You are here

function db_maintenance_admin_settings_validate in DB Maintenance 6.2

Same name and namespace in other branches
  1. 5.2 db_maintenance.module \db_maintenance_admin_settings_validate()
  2. 7.2 db_maintenance.admin.inc \db_maintenance_admin_settings_validate()

File

./db_maintenance.module, line 305
Optimizes database tables during cron runs.

Code

function db_maintenance_admin_settings_validate($form, &$form_state) {

  // if -1 then we do not backup so the extra field validation should only happen when appropriate
  $dbfreq = $form_state['values']['db_maintenance_db_backup_frequency'];
  $filesfreq = $form_state['values']['db_maintenance_files_backup_frequency'];

  // only validate backup directory if we need to
  if ($dbfreq != -1 || $filesfreq != -1) {
    if (!is_dir($form_state['values']['db_maintenance_backup_directory'])) {
      form_set_error('db_maintenance_backup_directory', t('Backup directory does not exist or is not a directory.'));
    }
    elseif (!is_writable($form_state['values']['db_maintenance_backup_directory'])) {
      form_set_error('db_maintenance_backup_directory', t('Backup directory is not writable.'));
    }
  }
  if ($filesfreq != -1) {
    if (!is_file($form_state['values']['db_maintenance_path_to_tar'])) {
      form_set_error('db_maintenance_path_to_tar', t('Path to tar is incorrect.'));
    }
    elseif (!is_executable($form_state['values']['db_maintenance_path_to_tar'])) {
      form_set_error('db_maintenance_path_to_tar', t('tar is not executable.'));
    }
  }
  if ($dbfreq != -1) {
    if (!is_file($form_state['values']['db_maintenance_path_to_mysqldump'])) {
      form_set_error('db_maintenance_path_to_mysqldump', t('Path to mysqldump is incorrect.'));
    }
    elseif (!is_executable($form_state['values']['db_maintenance_path_to_mysqldump'])) {
      form_set_error('db_maintenance_path_to_mysqldump', t('mysqldump is not executable.'));
    }
  }
  if (!empty($form_state['values']['db_maintenance_email_notify'])) {
    $emails = explode(',', $form_state['values']['db_maintenance_email_notify']);
    if (!empty($emails)) {
      $bad = array();
      foreach ($emails as $email) {
        $email = trim($email);
        if (!valid_email_address($email)) {
          $bad[] = $email;
        }
      }
      if (!empty($bad)) {
        form_set_error('db_maintenance_email_notify', t('The following email address(es) were invalid; @badmail', array(
          '@badmail' => implode(', ', $bad),
        )));
      }
    }
  }
}