You are here

function _geshifilter_generate_languages_css_file in GeSHi Filter for syntax highlighting 6

Same name and namespace in other branches
  1. 5.2 geshifilter.admin.inc \_geshifilter_generate_languages_css_file()
  2. 7 geshifilter.admin.inc \_geshifilter_generate_languages_css_file()

Function for generating the external stylesheet.

Parameters

$force force the regeneration of the CSS file:

4 calls to _geshifilter_generate_languages_css_file()
geshifilter_admin_general_settings_submit in ./geshifilter.admin.inc
Submit function for admin settings
geshifilter_admin_per_language_settings_submit in ./geshifilter.admin.inc
Submit function for per language settings
geshifilter_update_6003 in ./geshifilter.install
Implementation of hook_update_N().
_geshifilter_flush_language_definition_cache in ./geshifilter.admin.inc
Helper function for flushing the GeSHi language definition cache

File

./geshifilter.admin.inc, line 573

Code

function _geshifilter_generate_languages_css_file($force = FALSE) {
  $languages = _geshifilter_get_enabled_languages();

  // Serialize the array of enabled languages as sort of hash.
  $languages_hash = serialize($languages);

  // Check if generation of the CSS file is needed
  if ($force || $languages_hash != variable_get('geshifilter_cssfile_languages', '')) {

    // Build stylesheet.
    $stylesheet = _geshifilter_generate_languages_css_rules();

    // Save stylesheet.
    $stylesheet_filename = file_directory_path() . '/geshifilter-languages.css';
    $ret = file_save_data($stylesheet, $stylesheet_filename, FILE_EXISTS_REPLACE);
    if ($ret) {
      drupal_set_message(t('(Re)generated external CSS style sheet %file.', array(
        '%file' => $ret,
      )));
    }
    else {
      drupal_set_message(t('Could not generate external CSS file. Check the settings of your <a href="!filesystem">file system</a>.', array(
        '!filesystem' => url('admin/settings/file-system'),
      )), 'error');
    }

    // Remember for which list of languages the CSS file was generated
    variable_set('geshifilter_cssfile_languages', $languages_hash);
  }
}