<?php /** * @file * Theme settings file for the WCM Omega theme. */ require_once dirname(__FILE__) . '/template.php'; /** * Implements hook_form_FORM_alter(). */ function wcm_omega_form_system_theme_settings_alter(&$form, $form_state) { // You can use this hook to append your own theme settings to the theme // settings form for your subtheme. You should also take a look at the // 'extensions' concept in the Omega base theme. $form['wcm_omega'] = array( '#type' => 'fieldset', '#title' => t('Theme Customization'), '#description' => t('Customize the look and feel of the site.'), 'wcm_omega_breadcrumb' => array( '#type' => 'checkbox', '#title' => t('Show Breadcrumbs'), '#description' => t('If checked, breadcrumbs will display on all pages except for the front page. You will also have the option of hiding breadcrumbs for other Landing Pages on a per-page basis.'), '#default_value' => theme_get_setting('wcm_omega_breadcrumb'), ), ); //colorize fieldset $form['wcm_omega']['colorize'] = array( '#title' => t('Site Colors'), '#type' => 'fieldset', '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['wcm_omega']['colorize']['wcm_omega_color_navbar'] = array( '#type' => 'radios', '#title' => t('OSU Nav Bar'), '#default_value' => theme_get_setting('wcm_omega_color_navbar'), '#options' => wcm_omega_generate_color_swatches( array( 'lt-gray' => t('Light Gray'), 'dk-gray' => t('Dark Gray'), ) ), ); $form['wcm_omega']['colorize']['wcm_omega_color_masthead'] = array( '#type' => 'radios', '#title' => t('Masthead'), '#default_value' => theme_get_setting('wcm_omega_color_masthead'), '#options' => wcm_omega_generate_color_swatches( array( 'white' => t('White'), 'lt-gray' => t('Light Gray'), 'md-gray' => t('Mid Gray'), 'dk-gray' => t('Dark Gray'), ) ) ); $form['wcm_omega']['colorize']['wcm_omega_color_menu'] = array( '#type' => 'radios', '#title' => t('Menu'), '#default_value' => theme_get_setting('wcm_omega_color_menu'), '#options' => wcm_omega_generate_color_swatches( array( 'white' => t('White'), 'lt-gray' => t('Light Gray'), 'md-gray' => t('Mid Gray'), 'dk-gray' => t('Dark Gray'), 'black' => t('Black'), 'red' => t('Red'), ) ) ); $form['wcm_omega']['colorize']['wcm_omega_color_body'] = array( '#type' => 'radios', '#title' => t('Body Color'), '#default_value' => theme_get_setting('wcm_omega_color_body'), '#options' => wcm_omega_generate_color_swatches( array( 'white' => t('White'), 'lt-gray' => t('Light Gray'), ) ) ); $form['wcm_omega']['colorize']['wcm_omega_color_footer'] = array( '#type' => 'radios', '#title' => t('Footer Color'), '#default_value' => theme_get_setting('wcm_omega_color_footer'), '#options' => wcm_omega_generate_color_swatches( array( 'white' => t('White'), 'lt-gray' => t('Light Gray'), 'md-gray' => t('Mid Gray'), 'dk-gray' => t('Dark Gray'), ) ) ); //typography fieldset $form['wcm_omega']['typography'] = array( '#type' => 'fieldset', '#title' => t('Site Typography'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['wcm_omega']['typography']['wcm_omega_typography_group'] = array( '#type' => 'radios', '#default_value' => theme_get_setting('wcm_omega_typography_group'), '#options' => wcm_omega_generate_typography_group_samples( array( 'group1' => t('Group 1'), 'group2' => t('Group 2'), 'group3' => t('Group 3'), ) ), ); $form['#attached']['css'][] = drupal_get_path('theme', 'wcm_omega') . '/css/wcm-omega.settings.css'; $form['#validate'][] = 'wcm_omega_form_system_theme_settings_validate'; } // validation to not allow certain color combinations function wcm_omega_form_system_theme_settings_validate(&$form, &$form_state) { if (!empty($form['ocio_omega']['ocio_omega_color_navbar'])) { if ($form_state['values']['ocio_omega_color_navbar'] == 'dk-gray' && $form_state['values']['ocio_omega_color_masthead'] == 'dk-gray') { form_set_error('ocio_omega_color_masthead', t('Dark masthead cannot be used with dark navbar.')); $form['ocio_omega']['ocio_omega_color_masthead']['dk-gray']['#attributes']['class'][] = 'form-radio-error'; } } } //Generate Color swatches for settings function wcm_omega_generate_color_swatches($options = array()) { foreach ($options as $name => $title) { $option = '<span class="' . $name . '-option swatch-panel">'; $option .= '<span class="label">' . $title . '</span>'; $option .= '<div class="swatch ' . $name . '"></div>'; $option .= '</span>'; $options[$name] = $option; } return $options; } //Generate typography group samples function wcm_omega_generate_typography_group_samples($options = array()) { foreach ($options as $name => $title) { $option = '<span class="type-' . $name . '-sample">'; $option .= '<span class="label">' . $title . '</span>'; $option .= '<div class="sample-block">'; $option .= '<h1>Heading 1</h1><h2>Heading 2</h2><h3>Heading 3</h3><h4>Heading 4</h4><h2 class="block__title">Block Title</h2>'; $option .= '</div>'; $option .= '</span>'; $options[$name] = $option; } return $options; }