/** * @file * Generate title styles. */ function at_core_submit_titles($values, $theme, $generated_files_path) { $titles_styles = array(); // Array of valid title types $titles_valid_types = title_valid_type_options(); // Get the font elements array. $font_elements = font_elements(); $css = array(); // Build arrays of selectors with associated styles. foreach ($font_elements as $font_element_key => $font_element_value) { if (in_array($font_element_key, $titles_valid_types)) { $case = 'text-transform:'; $weight = 'font-weight:'; $alignment = 'text-align:'; // Selector if (!empty($font_element_value['selector'])) { $css[$font_element_key]['selector'] = $font_element_value['selector']; } //var_dump($values['settings_titles_' . $font_element_key . '_case']); // Case or Font variant: small-caps is a font-variant, set properties and values accordingly. // We need to set tranform and variant explicitly so selectors can override each other, without // any nasty inheritance issues, such as when .page__title overrides h1. if (!empty($values['settings_titles_' . $font_element_key . '_case'])) { if ($values['settings_titles_' . $font_element_key . '_case'] == 'small-caps') { $css[$font_element_key]['styles']['font_variant'] = 'font-variant:' . $values['settings_titles_' . $font_element_key . '_case']; $css[$font_element_key]['styles']['text_transform'] = 'text-transform:none'; } else { $css[$font_element_key]['styles']['case'] = $case . $values['settings_titles_' . $font_element_key . '_case']; $css[$font_element_key]['styles']['font_variant'] = 'font-variant:normal'; } } // Weight if (!empty($values['settings_titles_' . $font_element_key . '_weight'])) { $css[$font_element_key]['styles']['weight'] = $weight . $values['settings_titles_' . $font_element_key . '_weight']; } // Alignment if (!empty($values['settings_titles_' . $font_element_key . '_alignment'])) { $css[$font_element_key]['styles']['align'] = $alignment . $values['settings_titles_' . $font_element_key . '_alignment']; } } } // Format CSS. if (!empty($css)) { $output = array(); foreach ($css as $selector_key => $selector_styles) { if (isset($selector_styles['styles'])) { $output[] = $selector_styles['selector'] . '{' . implode(';', $selector_styles['styles']) . '}'; } } if (!empty($output)) { // Output data to file. $titles_styles = implode("\n", $output); if (!empty($titles_styles)) { //$file_name = $theme . '.titles.css'; $file_name = 'title-styles.css'; $filepath = "$generated_files_path/$file_name"; file_unmanaged_save_data($titles_styles, $filepath, FILE_EXISTS_REPLACE); } } } }
* @file * Generate form elments for the $titles Styles settings. */ $form['titles'] = array( '#type' => 'details', '#title' => t('Titles'), '#group' => 'extension_settings', ); $form['titles']['description'] = array( '#markup' => t('<h3>Title Styles</h3><p>Set title case, weight and alignment.</p><p>Semibold and light font-weight options will only work if the font supports those weights, otherwise these typically render as bold and normal respecitively.</p>'), ); // Array of valid title types $titles_valid_types = title_valid_type_options(); // Get the fonts list $font_elements = font_elements(); // Build form elements for each selector and style. foreach ($font_elements as $font_element_key => $font_element_value) { if (in_array($font_element_key, $titles_valid_types)) { // Title element $form['titles'][$font_element_key . '_element'] = array( '#type' => 'details', '#title' => t($font_element_value['label']), ); // Case $form['titles'][$font_element_key . '_element']['settings_titles_' . $font_element_key . '_case'] = array( '#type' => 'select',