You are here

function imagepicker_settings_form_validate in Image Picker 7

Same name and namespace in other branches
  1. 5.2 imagepicker.module \imagepicker_settings_form_validate()
  2. 6.2 imagepicker.admin.inc \imagepicker_settings_form_validate()

Validate settings form

File

./imagepicker.admin.inc, line 666
@author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL

Code

function imagepicker_settings_form_validate($form, &$form_state) {
  global $user;
  if (!drupal_strlen($form_state['values']['imagepicker_default_thumbnail_size'])) {
    form_set_error('imagepicker_defaults][imagepicker_default_thumbnail_size', t('You must fill in the Thumbnail field'));
  }
  if (!is_numeric($form_state['values']['imagepicker_default_thumbnail_size'])) {
    form_set_error('imagepicker_defaults][imagepicker_default_thumbnail_size', t('The Thumbnail field must be a number'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_default_browser_thumbnail_size'])) {
    form_set_error('imagepicker_browser][imagepicker_default_browser_thumbnail_size', t('You must fill in the Browser Thumbnail field'));
  }
  if (!is_numeric($form_state['values']['imagepicker_default_browser_thumbnail_size'])) {
    form_set_error('imagepicker_browser][imagepicker_default_browser_thumbnail_size', t('The Browser Thumbnail field must be a number'));
  }
  if (drupal_strlen($form_state['values']['imagepicker_default_scale']) && (!is_numeric($form_state['values']['imagepicker_default_scale']) || $form_state['values']['imagepicker_default_scale'] < 1)) {
    form_set_error('imagepicker_defaults][imagepicker_default_scale', t('The Scale field must be a number greater than 0 or left empty'));
  }
  if (drupal_strlen($form_state['values']['imagepicker_max_scale']) && (!is_numeric($form_state['values']['imagepicker_max_scale']) || $form_state['values']['imagepicker_max_scale'] < 1)) {
    form_set_error('imagepicker_settings][imagepicker_max_scale', t('The Maximum Scale field must be a number greater than 0 or left empty'));
  }
  if (!is_numeric($form_state['values']['imagepicker_rows_per_page']) || $form_state['values']['imagepicker_rows_per_page'] < 1) {
    form_set_error('imagepicker_defaults][imagepicker_rows_per_page', t('The rows per page field must be greater than 0.'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_default_fleft'])) {
    form_set_error('imagepicker_align][imagepicker_default_fleft', t('You must fill in the Left alignment field'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_default_fright'])) {
    form_set_error('imagepicker_align][imagepicker_default_fright', t('You must fill in the Right alignment field'));
  }
  if (!is_numeric($form_state['values']['imagepicker_advanced_iframe_height'])) {
    form_set_error('imagepicker_iframe][imagepicker_advanced_iframe_height', t('The Iframe height must be a number'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_advanced_iframe_width'])) {
    form_set_error('imagepicker_iframe][imagepicker_advanced_iframe_width', t('You must fill in the Iframe width'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_advanced_iframe_border'])) {
    form_set_error('imagepicker_iframe][imagepicker_advanced_iframe_border', t('You must fill in the Iframe border'));
  }
  if (!is_numeric($form_state['values']['imagepicker_advanced_browser_columns']) || $form_state['values']['imagepicker_advanced_browser_columns'] < 0) {
    form_set_error('imagepicker_browser][imagepicker_advanced_browser_columns', t('The browser columns must be a positive number or zero'));
  }
  if (!is_numeric($form_state['values']['imagepicker_advanced_browser_page']) || $form_state['values']['imagepicker_advanced_browser_page'] < 0) {
    form_set_error('imagepicker_browser][imagepicker_advanced_browser_page', t('The browser page must be a positive number or zero'));
  }
  if (!is_numeric($form_state['values']['imagepicker_upload_progress_delay']) || $form_state['values']['imagepicker_upload_progress_delay'] < 0) {
    form_set_error('imagepicker_progress][imagepicker_upload_progress_delay', t('The progress delay must be a positive number or zero'));
  }
  if (isset($form_state['values']['imagepicker_uploadprogress_interval'])) {
    if (!is_numeric($form_state['values']['imagepicker_uploadprogress_interval']) || $form_state['values']['imagepicker_uploadprogress_interval'] < 1) {
      form_set_error('imagepicker_progress][imagepicker_uploadprogress_interval', t('The progress interval must be a positive number'));
    }
  }
  if (!drupal_strlen($form_state['values']['imagepicker_insert_defaults_align'])) {
    form_set_error('imagepicker_insert_defaults][imagepicker_insert_defaults_align', t('You must fill in the default align field'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_insert_defaults_show'])) {
    form_set_error('imagepicker_insert_defaults][imagepicker_insert_defaults_show', t('You must fill in the default show field'));
  }
  if (!drupal_strlen($form_state['values']['imagepicker_insert_defaults_link'])) {
    form_set_error('imagepicker_insert_defaults][imagepicker_insert_defaults_link', t('You must fill in the default link field'));
  }

  // watermark settings
  if (imagepicker_image_check_functions()) {
    if (isset($form_state['values']['imagepicker_watermark_enable']) && $form_state['values']['imagepicker_watermark_enable']) {
      if (!empty($form_state['values']['imagepicker_watermark_image']) && !file_exists($form_state['values']['imagepicker_watermark_image'])) {
        form_set_error('imagepicker_watermark][imagepicker_watermark_image', t('This file does not exist or has invalid path: %file.', array(
          '%file' => $form_state['values']['imagepicker_watermark_image'],
        )));
      }
      if ($form_state['values']['imagepicker_watermark_scaling']) {
        if (!is_numeric($form_state['values']['imagepicker_watermark_scaling_percentage']) || $form_state['values']['imagepicker_watermark_scaling_percentage'] <= 0 || $form_state['values']['imagepicker_watermark_scaling_percentage'] >= 100) {
          form_set_error('imagepicker_watermark][imagepicker_watermark_scaling_percentage', t('Please enter a number between 1 and 100 for scaling percentage.'));
        }
        elseif ($form_state['values']['imagepicker_watermark_scaling_percentage'] < 10 || $form_state['values']['imagepicker_watermark_min_width'] < 50 && $form_state['values']['imagepicker_watermark_min_width'] > 0) {

          // we do not disable scaling for low values, e.g. if the user chooses to scale down to 1%, we just warn
          drupal_set_message(t('Warning: Scaling is set to @percentage%, minimum width is only @min_width px. This may result in very small or almost invisible watermarks. It is recommended to check twice that an adequate minimum width has been set.', array(
            '@percentage' => $form_state['values']['imagepicker_watermark_scaling_percentage'],
            '@min_width' => $form_state['values']['imagepicker_watermark_min_width'],
          )));
        }
        if (intval($form_state['values']['imagepicker_watermark_min_width']) < 0) {
          form_set_error('imagepicker_watermark][imagepicker_watermark_min_width', t('Please enter a positive number for minimum width.'));
        }
      }
    }
  }
  if (!empty($form_state['values']['imagepicker_exifinfo_external']) && !is_executable($form_state['values']['imagepicker_exifinfo_external'])) {
    form_set_error('imagepicker_exif][imagepicker_exifinfo_external', t('file does not exist or is not executable'));
  }
  if (isset($form_state['values']['imagepicker_lightbox2_enable']) && $form_state['values']['imagepicker_lightbox2_enable']) {
    if (!drupal_strlen($form_state['values']['imagepicker_lightbox2_insert'])) {
      form_set_error('imagepicker_module][imagepicker_lightbox2_insert', t('You must fill in the Lightbox2 insert'));
    }
  }
  if (!is_numeric($form_state['values']['imagepicker_import_max']) || ($form_state['values']['imagepicker_import_max'] < 1 || $form_state['values']['imagepicker_import_max'] > 100)) {
    form_set_error('imagepicker_import][imagepicker_import_max', t('The Import batch size must be must be a positive number.'));
  }
  if (empty($form_state['values']['imagepicker_jspath'])) {
    form_set_error('imagepicker_jspaths][imagepicker_jspath', t('field is empty'));
  }
  if (empty($form_state['values']['imagepicker_iframe_jspath'])) {
    form_set_error('imagepicker_jspaths][imagepicker_iframe_jspath', t('field is empty'));
  }
  if (empty($form_state['values']['imagepicker_upload_jspath'])) {
    form_set_error('imagepicker_jspaths][imagepicker_upload_jspath', t('field is empty'));
  }
  if (empty($form_state['values']['imagepicker_upload_link_jspath'])) {
    form_set_error('imagepicker_jspaths][imagepicker_upload_link_jspath', t('field is empty'));
  }
  if ($form_state['values']['imagepicker_show_browse_order_form'] != 1) {
    imagepicker_variable_del('imagepicker_browser_order', $user->uid);
  }
  if ($form_state['values']['imagepicker_groups_enabled'] != 1) {
    $form_state['values']['imagepicker_public_enabled'] = 0;
    $form_state['values']['imagepicker_publicroles_enabled'] = 0;
    $form_state['values']['imagepicker_groups_in_upload_enabled'] = 0;
  }
  if ($form_state['values']['imagepicker_quota_enable'] != 1) {
    $form_state['values']['imagepicker_quota_byrole'] = 0;
  }

  // gallery blocks
  if (!isset($form_state['values']['imagepicker_galleryblocks_enabled'])) {
    imagepicker_variable_del('imagepicker_galleryblocks_enabled');
    imagepicker_variable_del('imagepicker_galleryblocks_howmany');
  }
  if (!module_exists('image')) {
    imagepicker_variable_del('imagepicker_image_enable');
    imagepicker_variable_del('imagepicker_image_default_link');
    imagepicker_variable_del('imagepicker_image_default_show');
  }
}