function xbbcode_highlighter_xbbcode in Extensible BBCode 6
Same name and namespace in other branches
- 5 xbbcode_highlighter/xbbcode_highlighter.module \xbbcode_highlighter_xbbcode()
File
- xbbcode_highlighter/
xbbcode_highlighter.module, line 3
Code
function xbbcode_highlighter_xbbcode($op = 'list', $delta = '', $tag = NULL) {
static $languages;
if (!isset($languages)) {
$languages = array();
$res = db_query("SELECT id, name, description, sample, file FROM {highlighter}");
while ($row = db_fetch_array($res)) {
if (!$row['name']) {
$row['name'] = strtoupper($row['id']);
}
$languages[strtolower($row['id'])] = $row;
}
}
switch ($op) {
case 'list':
return array_keys($languages);
case 'info':
return isset($languages[$delta]) ? xbbcode_highlighter_info($languages[$delta]) : NULL;
case 'render':
$tag->content = html_entity_decode($tag->content);
$settings = array(
'language' => $delta,
'tabsize' => 2,
'numbers' => $tag->option == 'ln',
'file' => $languages[$delta]['file'],
);
if (!HIGHLIGHTER_OKAY) {
return $text;
}
require_once drupal_get_path('module', 'highlighter') . '/highlighter.filter.inc';
return highlighter_highlight($settings, $tag->content);
}
}