5.x color.module color_form_alter($form_id, &$form)
6.x color.module color_form_alter(&$form, $form_state, $form_id)

Implementation of hook_form_alter().

File

modules/color/color.module, line 31

Code

function color_form_alter(&$form, $form_state, $form_id) {
  // Insert the color changer into the theme settings page.
  if ($form_id == 'system_theme_settings' && color_get_info(arg(4)) && function_exists('gd_info')) {
    if (variable_get('file_downloads', FILE_DOWNLOADS_PUBLIC) != FILE_DOWNLOADS_PUBLIC) {
      // Disables the color changer when the private download method is used.
      // TODO: This should be solved in a different way. See issue #181003.
      drupal_set_message(t('The color picker only works if the <a href="@url">download method</a> is set to public.', array('@url' => url('admin/settings/file-system'))), 'warning');
    }
    else {
      $form['color'] = array(
        '#type' => 'fieldset',
        '#title' => t('Color scheme'),
        '#weight' => -1,
        '#attributes' => array('id' => 'color_scheme_form'),
        '#theme' => 'color_scheme_form',
      );
      $form['color'] += color_scheme_form($form_state, arg(4));
      $form['#validate'][] = 'color_scheme_form_validate';
      $form['#submit'][] = 'color_scheme_form_submit';
    }
  }

  // Use the generated screenshot in the theme list.
  if ($form_id == 'system_theme_select_form' || $form_id == 'system_themes') {
    $themes = list_themes();
    foreach (element_children($form) as $theme) {
      if ($screenshot = variable_get('color_' . $theme . '_screenshot', NULL)) {
        if (isset($form[$theme]['screenshot'])) {
          $form[$theme]['screenshot']['#value'] = theme('image', $screenshot, '', '', array('class' => 'screenshot'), FALSE);
        }
      }
    }
  }
}