function _geshifilter_get_available_languages in GeSHi Filter for syntax highlighting 5.2
Same name and namespace in other branches
- 6 geshifilter.inc \_geshifilter_get_available_languages()
- 7 geshifilter.inc \_geshifilter_get_available_languages()
List of available languages.
Return value
an array mapping language code to array with the language path and full language name
4 calls to _geshifilter_get_available_languages()
- geshifilter_per_language_settings in ./
geshifilter.admin.inc - function for generating a form table for per language settings
- geshifilter_per_language_settings_validate in ./
geshifilter.admin.inc - Validate function for per language settings
- _geshifilter_geshi_factory in ./
geshifilter.inc - helper function for generating a GeSHi object
- _geshifilter_get_enabled_languages in ./
geshifilter.inc - List of enabled languages. (with caching)
File
- ./
geshifilter.inc, line 61
Code
function _geshifilter_get_available_languages() {
// try to get it from cache (database actually)
$available_languages = variable_get('geshifilter_available_languages_cache', NULL);
if ($available_languages === NULL) {
// not in cache: build the array of available_languages
$geshi_library = _geshifilter_check_geshi_library();
$available_languages = array();
if ($geshi_library['success']) {
$dirs = array(
_geshifilter_get_geshi_dir() . '/geshi',
drupal_get_path('module', 'geshifilter') . '/geshi-extra',
);
foreach ($dirs as $dir) {
foreach (file_scan_directory($dir, '\\.[pP][hH][pP]$') as $filename => $fileinfo) {
// short name
$name = $fileinfo->name;
// get full name
$geshi = new GeSHi('', $name);
$geshi
->set_language_path($dir);
$fullname = $geshi
->get_language_name();
unset($geshi);
// store
$available_languages[$name] = array(
'language_path' => $dir,
'fullname' => $fullname,
);
}
}
ksort($available_languages);
// save array to database
variable_set('geshifilter_available_languages_cache', $available_languages);
}
}
return $available_languages;
}