You are here

function imagepicker_settings_form in Image Picker 7

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

Function to display the imagepicker admin settings form

Return value

Returns the form.

1 string reference to 'imagepicker_settings_form'
imagepicker_settings_page in ./imagepicker.admin.inc
Menu callback; presents the settings form for imagepicker

File

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

Code

function imagepicker_settings_form($form, &$form_state, $info) {
  $imagepicker_jspaths = imagepicker_jspaths_get();
  drupal_add_js($imagepicker_jspaths['imagepicker_jspath']);
  drupal_add_css(IMAGEPICKER_PATH . '/imagepicker.css');

  // default settings
  $form['imagepicker_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Set imagepicker settings'),
    '#description' => t('Overall administrative settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#weight' => -40,
  );
  if ($info) {
    $form['imagepicker_settings']['imagepicker_admin_message'] = array(
      '#markup' => $info,
    );
  }
  $node_types = node_type_get_names();
  $form['imagepicker_settings']['imagepicker_node_types_enabled'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Node Types'),
    '#description' => t('Set the node types you want to enable Imagepicker for.'),
    '#default_value' => imagepicker_variable_get('imagepicker_node_types_enabled', array_keys($node_types)),
    '#options' => $node_types,
  );
  if (module_exists('comment')) {
    $form['imagepicker_settings']['imagepicker_comment_enabled'] = array(
      '#type' => 'checkbox',
      '#title' => t('Comments'),
      '#description' => t('Setting this option enables Imagepicker in comments.'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_comment_enabled', 0),
    );
  }
  $form['imagepicker_settings']['imagepicker_blocks_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Blocks'),
    '#description' => t('Setting this option enables Imagepicker in blocks.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_blocks_enabled', 0),
  );
  $form['imagepicker_settings']['imagepicker_account_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Imagepicker in My Account'),
    '#description' => t('Setting this option enables Imagepicker in My Account.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_account_enabled', 1),
  );
  $form['imagepicker_settings']['imagepicker_user_config_enable'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable User configuration'),
    '#description' => t('Allow users to select their own settings.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_user_config_enable', 1),
  );
  $form['imagepicker_settings']['imagepicker_copy_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable copy feature'),
    '#description' => t('Allow users to copy and optionally resize an image.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_copy_enabled', 0),
  );
  $form['imagepicker_settings']['imagepicker_use_full_url'] = array(
    '#type' => 'checkbox',
    '#title' => t('Use full url'),
    '#description' => t('Setting this option will make imagepicker use a full url to the image being inserted, unsetting it will use a path relative to the Drupal root.<br />This is useful if you are developing a site with a different url than the production site will be on.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_use_full_url', 0),
  );
  $form['imagepicker_settings']['imagepicker_use_cssbox'] = array(
    '#type' => 'checkbox',
    '#title' => t('Allow additional css'),
    '#description' => t('Setting this option will provide a textfield where additional css can be added .'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_use_cssbox', 0),
  );

  // rel
  if (module_exists('colorbox') && imagepicker_variable_get('imagepicker_colorbox_enable', 0)) {
    $form['imagepicker_settings']['imagepicker_use_relbox'] = array(
      '#type' => 'checkbox',
      '#title' => t('Provide a rel textfield'),
      '#description' => t('Setting this option will provide a textfield where a rel attribute can be added. Useful for creating galleries.'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_use_relbox', 0),
    );
  }
  $form['imagepicker_settings']['imagepicker_use_linkbox'] = array(
    '#type' => 'checkbox',
    '#title' => t('Provide a link textfield'),
    '#description' => t("Setting this option will provide a textfield where the Link to 'Page' can be edited."),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_use_linkbox', 0),
  );
  $form['imagepicker_settings']['imagepicker_use_icons'] = array(
    '#type' => 'checkbox',
    '#title' => t('Icons in tables'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_use_icons', 1),
    '#description' => t('Setting this option enables icons in tables.'),
  );
  $max_uploads = range(0, 6);
  unset($max_uploads[0]);
  $form['imagepicker_settings']['imagepicker_max_uploads'] = array(
    '#type' => 'select',
    '#title' => t('Multiple Uploads'),
    '#description' => t('The maximum number of uploads at a time.'),
    '#default_value' => imagepicker_variable_get('imagepicker_max_uploads', 1),
    '#options' => $max_uploads,
  );
  $form['imagepicker_settings']['imagepicker_max_scale'] = imagepicker_max_scale_elem(imagepicker_variable_get('imagepicker_max_scale', ''));
  $form['imagepicker_settings']['imagepicker_invoke_extra'] = array(
    '#type' => 'checkbox',
    '#title' => t('Invoke external imagepicker hook'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_invoke_extra', 0),
    '#description' => t("Invoke the 'imagepicker_upload_extra' external hook. Do not enable this unless you are using this hook."),
  );

  // default options
  $form['imagepicker_defaults'] = array(
    '#type' => 'fieldset',
    '#title' => t('Set imagepicker defaults'),
    '#description' => t('These settings are also available to users if User Configuration is enabled.'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#weight' => -38,
  );
  $form['imagepicker_defaults']['imagepicker_default_thumbnail_size'] = imagepicker_thumbnail_size_elem(imagepicker_variable_get('imagepicker_default_thumbnail_size', 100));
  $form['imagepicker_defaults']['imagepicker_default_scale'] = imagepicker_scale_elem(imagepicker_variable_get('imagepicker_default_scale', ''));
  $form['imagepicker_defaults']['imagepicker_default_pagelink'] = imagepicker_pagelink_elem(imagepicker_variable_get('imagepicker_default_pagelink', 1));
  $form['imagepicker_defaults']['imagepicker_rows_per_page'] = imagepicker_rows_per_page_elem(imagepicker_variable_get('imagepicker_rows_per_page', 25));
  $form['imagepicker_defaults']['imagepicker_dateformat_default'] = array(
    '#type' => 'select',
    '#title' => t('Set Date Format'),
    '#description' => t("Select the Date format to use in tables."),
    '#default_value' => imagepicker_variable_get('imagepicker_dateformat_default', 'medium'),
    '#options' => array(
      'short' => t('Short'),
      'medium' => t('Medium'),
      'long' => t('Long'),
    ),
  );

  // insert settings
  $form['imagepicker_insert_defaults'] = array(
    '#type' => 'fieldset',
    '#title' => t('Set imagepicker insert defaults'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#weight' => -36,
  );
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_align'] = imagepicker_get_align_opts(imagepicker_variable_get('imagepicker_insert_defaults_align', 'none'));
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_show'] = imagepicker_get_show_opts(imagepicker_variable_get('imagepicker_insert_defaults_show', 'full'));
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_link'] = imagepicker_get_link_opts(imagepicker_variable_get('imagepicker_insert_defaults_link', 'none'));
  $form['imagepicker_insert_defaults']['imagepicker_insert_image_title'] = imagepicker_insert_image_title_elem(imagepicker_variable_get('imagepicker_insert_image_title', 0));

  // alignment settings
  $form['imagepicker_align'] = array(
    '#type' => 'fieldset',
    '#title' => t('Image alignment settings'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_default_align_show', 1) ? TRUE : FALSE,
    '#weight' => -34,
  );
  $form['imagepicker_align']['imagepicker_default_align_show'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show Alignment options'),
    '#description' => t('Setting this option will enable the alignment options on the insert page.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_default_align_show', 1),
  );
  $form['imagepicker_align']['imagepicker_default_fleft'] = imagepicker_fleft_elem(imagepicker_variable_get('imagepicker_default_fleft', 'style="float: left"'));
  $form['imagepicker_align']['imagepicker_default_fright'] = imagepicker_fright_elem(imagepicker_variable_get('imagepicker_default_fright', 'style="float: right"'));

  // browser
  $form['imagepicker_browser'] = array(
    '#type' => 'fieldset',
    '#title' => t('Imagepicker browser settings'),
    '#description' => t('Configure browser.'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#weight' => -32,
  );
  $form['imagepicker_browser']['imagepicker_default_browser_thumbnail_size'] = imagepicker_browser_thumbnail_size_elem(imagepicker_variable_get('imagepicker_default_browser_thumbnail_size', 100));
  $form['imagepicker_browser']['imagepicker_advanced_browser_columns'] = imagepicker_browser_columns_elem(imagepicker_variable_get('imagepicker_advanced_browser_columns', 0));
  $form['imagepicker_browser']['imagepicker_advanced_browser_page'] = imagepicker_browser_page_elem(imagepicker_variable_get('imagepicker_advanced_browser_page', 20));
  $form['imagepicker_browser']['imagepicker_show_browse_order_form'] = imagepicker_show_browse_order_form_elem(imagepicker_variable_get('imagepicker_show_browse_order_form', 1));
  $form['imagepicker_browser']['imagepicker_default_browser_order'] = imagepicker_browser_order_elem(imagepicker_variable_get('imagepicker_default_browser_order', 'img_id DESC'));
  $form['imagepicker_browser']['imagepicker_show_browse_search_form'] = imagepicker_show_browse_search_form_elem(imagepicker_variable_get('imagepicker_show_browse_search_form', 1));
  if (module_exists('lightbox2') || module_exists('colorbox') || module_exists('image')) {
    $form['imagepicker_module'] = array(
      '#type' => 'fieldset',
      '#title' => t('Module integration'),
      '#collapsible' => TRUE,
      '#collapsed' => FALSE,
      '#weight' => -30,
    );
    if (module_exists('lightbox2')) {
      $form['imagepicker_module']['imagepicker_lightbox2_enable'] = array(
        '#type' => 'checkbox',
        '#title' => t('Enable Lightbox2 in Imagepicker'),
        '#description' => t('Setting this option will enable Lightbox2 in Imagepicker.'),
        '#return_value' => 1,
        '#default_value' => imagepicker_variable_get('imagepicker_lightbox2_enable', 1),
      );
      $form['imagepicker_module']['imagepicker_lightbox2_insert'] = imagepicker_lightbox2_insert_elem(imagepicker_variable_get('imagepicker_lightbox2_insert', 'lightbox'));
    }
    if (module_exists('colorbox')) {
      $form['imagepicker_module']['imagepicker_colorbox_enable'] = array(
        '#type' => 'checkbox',
        '#title' => t('Enable Colorbox in Imagepicker'),
        '#description' => t('Setting this option will enable Colorbox in Imagepicker.'),
        '#return_value' => 1,
        '#default_value' => imagepicker_variable_get('imagepicker_colorbox_enable', 1),
      );
    }

    // image module support
    if (module_exists('image')) {
      $form['imagepicker_module']['imagepicker_image_enable'] = array(
        '#type' => 'checkbox',
        '#title' => t('Enable Image styles in Imagepicker'),
        '#description' => t('Setting this option will enable Image styles in Imagepicker.'),
        '#return_value' => 1,
        '#default_value' => imagepicker_variable_get('imagepicker_image_enable', 0),
      );
      $opts = image_style_options();
      $form['imagepicker_module']['imagepicker_image_default_show'] = array(
        '#type' => 'select',
        '#title' => t('Default Image Style for show'),
        '#options' => $opts,
        '#default_value' => imagepicker_variable_get('imagepicker_image_default_show', ''),
      );
      $form['imagepicker_module']['imagepicker_image_default_link'] = array(
        '#type' => 'select',
        '#title' => t('Default Image Style for link'),
        '#options' => $opts,
        '#default_value' => imagepicker_variable_get('imagepicker_image_default_link', ''),
      );
    }
  }

  // quota
  $form['imagepicker_quotas'] = array(
    '#type' => 'fieldset',
    '#title' => t('User quotas'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_quota_enable', 1) ? TRUE : FALSE,
    '#weight' => -28,
  );
  $form['imagepicker_quotas']['imagepicker_quota_enable'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Quotas in Imagepicker'),
    '#description' => t('Setting this option will enable Quotas in Imagepicker.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_quota_enable', 1),
  );
  $form['imagepicker_quotas']['imagepicker_quota_byrole'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Quotas by Role'),
    '#description' => t("Setting this option will enable 'Quotas by Role' instead of 'Per User'."),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_quota_byrole', 0),
  );
  $form['imagepicker_quotas']['imagepicker_quota_role'] = array(
    '#type' => 'radios',
    '#title' => t('Available Roles'),
    '#description' => t("Select which Role for 'Quotas by Role'."),
    '#options' => user_roles(TRUE),
    '#default_value' => imagepicker_variable_get('imagepicker_quota_role', 2),
  );
  $form['imagepicker_quotas']['imagepicker_quota_default'] = array(
    '#type' => 'select',
    '#title' => t('Set Quota'),
    '#description' => t("Select the Quota to apply for 'Quotas by Role' or the default for 'Per User'."),
    '#default_value' => imagepicker_variable_get('imagepicker_quota_default', 0),
    '#options' => imagepicker_get_quota_list(),
  );
  if (imagepicker_image_check_functions()) {

    // watermark settings
    $form['imagepicker_watermark'] = array(
      '#type' => 'fieldset',
      '#title' => t('Image watermark settings'),
      '#collapsible' => TRUE,
      '#collapsed' => imagepicker_variable_get('imagepicker_watermark_enable', 0) ? TRUE : FALSE,
      '#weight' => -26,
    );
    $form['imagepicker_watermark']['imagepicker_watermark_enable'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable Watermarks in Imagepicker'),
      '#description' => t('Setting this option will enable Watermarks on new images in Imagepicker.'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_watermark_enable', 0),
    );
    $form['imagepicker_watermark']['imagepicker_watermark_image'] = array(
      '#type' => 'textfield',
      '#title' => t('Default Watermark image'),
      '#description' => t('Path of the image that should be used as the watermark image, relative to the Drupal root.  <br />This should be a truecolor (32 bit) PNG file with an alpha channel, but other formats may work.<br />If this field is used, the watermark will be applied to all new images uploaded to the site.<br />If this field is left empty users with access will have the option to apply their own watermark.'),
      '#size' => 55,
      '#maxlength' => 100,
      '#required' => FALSE,
      '#default_value' => imagepicker_variable_get('imagepicker_watermark_image', ''),
    );
    $form['imagepicker_watermark']['imagepicker_watermark_position'] = array(
      '#type' => 'select',
      '#title' => t('Select default watermark position'),
      '#default_value' => imagepicker_variable_get('imagepicker_watermark_position', 0),
      '#options' => imagepicker_watermark_opts(),
    );

    // watermarks
    $form['imagepicker_watermark']['imagepicker_watermark_scale'] = array(
      '#type' => 'fieldset',
      '#title' => t('Watermark scaling'),
      '#collapsible' => TRUE,
      '#collapsed' => FALSE,
      '#weight' => 1,
    );
    $form['imagepicker_watermark']['imagepicker_watermark_scale']['imagepicker_watermark_scaling'] = imagepicker_watermark_scaling_elem(imagepicker_variable_get('imagepicker_watermark_scaling', FALSE));
    $form['imagepicker_watermark']['imagepicker_watermark_scale']['imagepicker_watermark_scaling_percentage'] = imagepicker_watermark_scaling_percentage_elem(imagepicker_variable_get('imagepicker_watermark_scaling_percentage', 50));
    $form['imagepicker_watermark']['imagepicker_watermark_scale']['imagepicker_watermark_min_width'] = imagepicker_watermark_min_width_elem(imagepicker_variable_get('imagepicker_watermark_min_width', 0));
  }
  $form['imagepicker_exif'] = array(
    '#type' => 'fieldset',
    '#title' => t('Imagepicker Exif settings'),
    '#description' => t('Enable exif display.'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_exifinfo_enable', 0) ? TRUE : FALSE,
    '#weight' => -24,
  );
  if (imagepicker_exif_check(TRUE)) {
    $form['imagepicker_exif']['imagepicker_exifinfo_enable'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable Display of Exif info'),
      '#description' => t('Enable Display of Extended file information using PHP builtin functions.'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_exifinfo_enable', 0),
    );
  }
  $form['imagepicker_exif']['imagepicker_exifinfo_external'] = array(
    '#type' => 'textfield',
    '#title' => t('Use external program'),
    '#description' => t('Enter an external program to use for exif info instead of builtin functions.<br />For instance exiftool. Requires a full filesystem path.'),
    '#size' => 55,
    '#maxlength' => 100,
    '#required' => FALSE,
    '#default_value' => imagepicker_variable_get('imagepicker_exifinfo_external', ''),
  );

  // Iframe
  $form['imagepicker_iframe'] = array(
    '#type' => 'fieldset',
    '#title' => t('Imagepicker Iframe settings'),
    '#description' => t('You can alter the default styling of the iframe here,<br />useful if the iframe is not fitting in with your theme.'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#weight' => -22,
  );
  if (module_exists('colorbox') && variable_get('colorbox_load', 0)) {
    $form['imagepicker_iframe']['imagepicker_advanced_colorbox'] = imagepicker_colorbox_elem(imagepicker_variable_get('imagepicker_advanced_colorbox', 0));
  }
  $form['imagepicker_iframe']['imagepicker_advanced_iframe_width'] = imagepicker_iframe_width_elem(imagepicker_variable_get('imagepicker_advanced_iframe_width', "100%"));
  $form['imagepicker_iframe']['imagepicker_advanced_iframe_height'] = imagepicker_iframe_height_elem(imagepicker_variable_get('imagepicker_advanced_iframe_height', "500"));
  $form['imagepicker_iframe']['imagepicker_advanced_iframe_border'] = imagepicker_iframe_border_elem(imagepicker_variable_get('imagepicker_advanced_iframe_border', "0"));
  $form['imagepicker_iframe']['imagepicker_advanced_collapsed'] = imagepicker_collapsed_elem(imagepicker_variable_get('imagepicker_advanced_collapsed', 0));
  $form['imagepicker_iframe']['imagepicker_use_admin_theme'] = imagepicker_use_admin_theme_elem(imagepicker_variable_get('imagepicker_use_admin_theme', 0));

  // progress bar
  $form['imagepicker_progress'] = array(
    '#type' => 'fieldset',
    '#title' => t('Progress bar'),
    '#description' => t('Enable and configure progress bar.'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_upload_progress_enabled', 1) ? TRUE : FALSE,
    '#weight' => -18,
  );
  $form['imagepicker_progress']['imagepicker_upload_progress_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Progress bar in upload'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_upload_progress_enabled', 1),
  );
  $form['imagepicker_progress']['imagepicker_upload_progress_delay'] = array(
    '#type' => 'textfield',
    '#title' => t('Progress bar Delay'),
    '#description' => t('Show the progress bar if processing is longer than this value.'),
    '#size' => 3,
    '#required' => TRUE,
    '#default_value' => imagepicker_variable_get('imagepicker_upload_progress_delay', 3),
    '#field_suffix' => t('seconds'),
  );
  $form['imagepicker_progress']['imagepicker_upload_progress_message'] = array(
    '#type' => 'textfield',
    '#title' => t('Progress bar message'),
    '#description' => t('Message to display while uploading.'),
    '#size' => 60,
    '#default_value' => imagepicker_variable_get('imagepicker_upload_progress_message', t('Processing form... please wait.')),
  );
  $vok = FALSE;
  $extok = FALSE;
  if (version_compare(phpversion(), IMAGEPICKER_UPLOAD_STATUS_MIN_PHP) >= 0) {
    $vok = TRUE;
    if (extension_loaded('uploadprogress')) {
      $extok = TRUE;
    }
  }
  if ($vok && $extok) {
    $form['imagepicker_progress']['imagepicker_uploadprogress'] = array(
      '#type' => 'fieldset',
      '#title' => t('Upload Progress Extension'),
      '#collapsible' => TRUE,
      '#collapsed' => FALSE,
    );
    $form['imagepicker_progress']['imagepicker_uploadprogress']['imagepicker_uploadprogress_server'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable PECL uploadprogress'),
      '#default_value' => imagepicker_variable_get('imagepicker_uploadprogress_server', ''),
    );
    $form['imagepicker_progress']['imagepicker_uploadprogress']['imagepicker_uploadprogress_interval'] = array(
      '#title' => t('Interval Time'),
      '#description' => t('The interval between each check.'),
      '#type' => 'textfield',
      '#size' => 5,
      '#default_value' => imagepicker_variable_get('imagepicker_uploadprogress_interval', 1),
      '#field_suffix' => t('seconds'),
    );
  }

  // Groups
  $form['imagepicker_groups'] = array(
    '#type' => 'fieldset',
    '#title' => t('Imagepicker group settings'),
    '#description' => t('Enable and configure groups.'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_groups_enabled', 1) ? TRUE : FALSE,
    '#weight' => -16,
  );
  $form['imagepicker_groups']['imagepicker_groups_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Groups'),
    '#description' => t('Allow users to manage groups.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_groups_enabled', 1),
  );
  $form['imagepicker_groups']['imagepicker_public_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Public option'),
    '#description' => t('Allow users to make image groups publicly available.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_public_enabled', 1),
  );
  $form['imagepicker_groups']['imagepicker_publicroles_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Public Role Control option'),
    '#description' => t('Allow users to make publicly available image groups restricted by role.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_publicroles_enabled', 1),
  );
  $form['imagepicker_groups']['imagepicker_groups_in_upload_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Groups in upload form'),
    '#description' => t('Allow users to select a group in the upload form.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_groups_in_upload_enabled', 1),
  );

  // Import
  $form['imagepicker_import'] = array(
    '#type' => 'fieldset',
    '#title' => t('Imagepicker Bulk Import'),
    '#description' => t('Enable bulk import of images.'),
    '#collapsible' => TRUE,
    '#collapsed' => imagepicker_variable_get('imagepicker_import_enabled', 0) ? TRUE : FALSE,
    '#weight' => -14,
  );
  $form['imagepicker_import']['imagepicker_import_enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Bulk import processing'),
    '#description' => t('Import images into imagepicker from an import folder in the filesystem.<br />Requires FTP or SSH access'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_import_enabled', 0),
  );
  $form['imagepicker_import']['imagepicker_import_delete'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable Bulk import deletion'),
    '#description' => t('Delete uploaded source images after successful import into imagepicker.<br />The image files should be writeable by the web server for this option to work.'),
    '#return_value' => 1,
    '#default_value' => imagepicker_variable_get('imagepicker_import_delete', 0),
  );
  $form['imagepicker_import']['imagepicker_import_max'] = array(
    '#type' => 'textfield',
    '#title' => t('Default Import Batch size'),
    '#description' => t('How many files to process at a time. Must be greater than 0 and less than 100.'),
    '#size' => 3,
    '#required' => TRUE,
    '#default_value' => imagepicker_variable_get('imagepicker_import_max', 5),
  );

  // gallery blocks
  if (module_exists('colorbox')) {
    $groups = imagepicker_get_all_groups();
    $totgroups = 0;
    if ($groups) {
      $totgroups = count($groups);
    }
    $form['imagepicker_blocks'] = array(
      '#type' => 'fieldset',
      '#title' => t('Imagepicker Gallery Blocks'),
      '#collapsible' => TRUE,
      '#collapsed' => imagepicker_variable_get('imagepicker_galleryblocks_enabled', 0) ? TRUE : FALSE,
      '#weight' => -12,
    );
    $form['imagepicker_blocks']['imagepicker_galleryblocks_enabled'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable Gallery blocks'),
      '#description' => t('Create one or more blocks containing a link to a grouped image gallery.'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_enabled', 0),
    );
    if ($totgroups) {
      $level_options = range(0, $totgroups);
      unset($level_options[0]);
      $form['imagepicker_blocks']['imagepicker_galleryblocks_howmany'] = array(
        '#type' => 'select',
        '#title' => t('How many gallery blocks do you need?'),
        '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_howmany', 1),
        '#options' => $level_options,
        '#description' => t('Select how many blocks you need and click on the Save Configuration button to make the form available.'),
      );
      $form['imagepicker_blocks']['message'] = array(
        '#markup' => t('You have %c available.', array(
          '%c' => format_plural($totgroups, '1 group', '@count groups'),
        )),
      );
    }
    else {
      $form['imagepicker_blocks']['imagepicker_galleryblocks_howmany'] = array(
        '#type' => 'value',
        '#value' => 0,
      );
      $form['imagepicker_blocks']['message'] = array(
        '#markup' => t('You need to add some groups.'),
      );
    }
    $form['imagepicker_blocks']['imagepicker_galleryblocks_public'] = array(
      '#type' => 'checkbox',
      '#title' => t('Only allow public groups'),
      '#return_value' => 1,
      '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_public', 0),
    );
    if ($totgroups) {
      $form['imagepicker_blocks']['imagepicker_galleryblocks_fieldset'] = array(
        '#type' => 'fieldset',
        '#title' => t('Gallery blocks'),
        '#collapsible' => TRUE,
        '#collapsed' => FALSE,
        '#description' => t('Blocks should be configured under Structure > Blocks.'),
      );
      for ($i = 1; $i <= imagepicker_variable_get('imagepicker_galleryblocks_howmany', 1); $i++) {
        $form['imagepicker_blocks']['imagepicker_galleryblocks_fieldset']['imagepicker_galleryblocks_enable_' . $i] = array(
          '#type' => 'checkbox',
          '#title' => t('Enable Gallery block !i', array(
            '!i' => $i,
          )),
          '#return_value' => 1,
          '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_enable_' . $i, 1),
        );
      }
    }
    $form['imagepicker_blocks']['close'] = array(
      '#markup' => '',
    );
  }
  $form['imagepicker_jspaths'] = array(
    '#type' => 'fieldset',
    '#title' => t('Javascript paths'),
    '#description' => t('For advanced users who want to supply their own javascript.'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['imagepicker_jspaths']['imagepicker_jspath'] = array(
    '#type' => 'textfield',
    '#title' => t('Path to imagepicker javascript file'),
    '#description' => t('Where the imagepicker javascript file is located.'),
    '#size' => 60,
    '#required' => TRUE,
    '#default_value' => $imagepicker_jspaths['imagepicker_jspath'],
  );
  $form['imagepicker_jspaths']['imagepicker_iframe_jspath'] = array(
    '#type' => 'textfield',
    '#title' => t('Path to imagepicker iframe javascript file'),
    '#description' => t('Where the imagepicker javascript iframe file is located.'),
    '#size' => 60,
    '#required' => TRUE,
    '#default_value' => $imagepicker_jspaths['imagepicker_iframe_jspath'],
  );
  $form['imagepicker_jspaths']['imagepicker_upload_jspath'] = array(
    '#type' => 'textfield',
    '#title' => t('Path to imagepicker upload javascript file'),
    '#description' => t('Where the imagepicker javascript upload file is located.'),
    '#size' => 60,
    '#required' => TRUE,
    '#default_value' => $imagepicker_jspaths['imagepicker_upload_jspath'],
  );
  $form['imagepicker_jspaths']['imagepicker_upload_link_jspath'] = array(
    '#type' => 'textfield',
    '#title' => t('Path to imagepicker upload link javascript file'),
    '#description' => t('Where the imagepicker javascript upload link file is located.'),
    '#size' => 60,
    '#required' => TRUE,
    '#default_value' => $imagepicker_jspaths['imagepicker_upload_link_jspath'],
  );
  $form['imagepicker_jspaths']['imagepicker_jspath_reset'] = array(
    '#type' => 'checkbox',
    '#title' => t('Reset'),
    '#description' => t('Reset the paths to the defaults.'),
    '#return_value' => 1,
    '#default_value' => 0,
  );
  $form = system_settings_form($form);
  unset($form['#submit']);
  $form['#submit'][] = 'imagepicker_settings_form_submit';
  unset($form['#theme']);
  $form['#theme'] = 'imagepicker_settings_form';
  return $form;
}