Same name and namespace in other branches
  1. 6.x modules/color/color.module \color_form_alter()

Implementation of hook_form_alter().

File

modules/color/color.module, line 18

Code

function color_form_alter($form_id, &$form) {

  // 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'),
      )));
    }
    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(arg(4));
      $form['#submit']['color_scheme_form_submit'] = array();
    }
  }

  // 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);
        }
      }
    }
  }
}