function google_fonts_admin_settings_form_submit in Google Fonts 7
Same name and namespace in other branches
- 6.2 google_fonts.admin.inc \google_fonts_admin_settings_form_submit()
- 7.2 google_fonts.admin.inc \google_fonts_admin_settings_form_submit()
Submit handler of the admin settings form Saves the fonts, CSS code and settings
File
- ./
google_fonts.admin.inc, line 168 - Administrative page callbacks for the Google Fonts module.
Code
function google_fonts_admin_settings_form_submit($form, &$form_state) {
$enabled_fonts = array();
if (isset($form_state['values']['enabled_fonts'])) {
foreach ($form_state['values']['enabled_fonts'] as $key => $font) {
$font_key = _google_fonts_family_array_key_encode($font->family);
// Strip out unchecked font variants
foreach ($form_state['values'][$font_key . '_variants'] as $variant_key => $variant) {
if (!$variant) {
unset($form_state['values'][$font_key . '_variants'][$variant_key]);
}
}
// Only add the font if the enabler checkbox is not checked
if (!$form_state['values'][$font_key . '_enabler']) {
$enabled_fonts[$font_key] = array(
'family' => $font->family,
'variants' => $form_state['values'][$font_key . '_variants'],
'subsets' => $form_state['values'][$font_key . '_subsets'],
);
}
}
}
foreach ($form_state['values']['google_fonts_disabled_fonts'] as $key => $font) {
if (!empty($font)) {
$enabled_fonts[$key] = array(
'family' => $font,
);
}
}
// Save the font settings to the database
variable_set('google_fonts_enabled_fonts', $enabled_fonts);
// Save the CSS code. If left empty, just delete the existing variable
if (empty($form_state['values']['css_code'])) {
variable_del('google_fonts_css_contents');
}
else {
variable_set('google_fonts_css_contents', $form_state['values']['css_code']);
// Save the CSS code as local file
if (!_google_fonts_cache($form_state['values']['css_code'], TRUE)) {
drupal_set_message(t('Could not generate the CSS code for the Google Fonts.'), 'error');
}
}
// Clear the current messages (to prevent an unneeded 'No Google Fonts have been enabled' message)
drupal_get_messages('status');
drupal_set_message(t('Configuration saved'), 'status');
}