-
Melissa Miller authoredMelissa Miller authored
theme-settings.php 5.40 KiB
<?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;
}