Syntax Highlighter
Mod Version: 1.0.1, by Lizard King
This modification is in the archives.
vB Version: 3.7.1 |
Rating: (7 votes - 4.71 average) |
Installs: 31 |
Released: 14 Jun 2008 |
Last Update: Never |
Downloads: 128 |
Not Supported
Template Edits
Code Changes
Additional Files
|
I donot like the limitation of bbcodes with code , php and html. Thats why i decided to integrate https://code.google.com/p/syntaxhighlighter/ with vBulletin. You can use different brushes such as SQL , Css , Xml , Pyhton etc... Here are the installation instructions - Download latest version of Syntax Highlighter from https://code.google.com/p/syntaxhighlighter/downloads/list
- Extract the folder and upload js files to a folder named js within your forum root.
- Edit class_bbcode.php
Search for
Code:
if ($this->printable)
{
$code = $this->emulate_pre_tag($code);
$template = 'bbcode_code_printable';
}
else
{
$blockheight = $this->fetch_block_height($code);
$template = 'bbcode_code';
}
eval('$html = "' . fetch_template($template) . '";');
return $html;
}
Add After
Code:
/**
* Handles a [ high ] tag. Displays a preformatted string.
*
* @param string The code to display
*
* @return string HTML representation of the tag.
*/
function handle_bbcode_high($code , $option)
{
global $vbulletin, $vbphrase, $stylevar, $show;
// remove unnecessary line breaks and escaped quotes
$code = str_replace(array('<br>', '<br />'), array('', ''), $code);
$code = $this->strip_front_back_whitespace($code, 1);
if ($this->printable)
{
$code = $this->emulate_pre_tag($code);
$template = 'bbcode_high_printable';
}
else
{
$blockheight = $this->fetch_block_height($code);
$template = 'bbcode_high';
}
eval('$html = "' . fetch_template($template) . '";');
return $html;
}
/**
* Handles a [ high ] tag. Displays a preformatted string.
*
* @param string The code to display
*
* @return string HTML representation of the tag.
*/
function handle_bbcode_high1($code)
{
global $vbulletin, $vbphrase, $stylevar, $show;
// remove unnecessary line breaks and escaped quotes
$code = str_replace(array('<br>', '<br />'), array('', ''), $code);
$code = $this->strip_front_back_whitespace($code, 1);
if ($this->printable)
{
$code = $this->emulate_pre_tag($code);
$template = 'bbcode_high1_printable';
}
else
{
$blockheight = $this->fetch_block_height($code);
$template = 'bbcode_high1';
}
eval('$html = "' . fetch_template($template) . '";');
return $html;
}
Search For
Code:
$tag_list['no_option']['code'] = array(
'callback' => 'handle_bbcode_code',
'strip_empty' => true,
'disable_smilies' => true,
'disable_wordwrap' => true,
'strip_space_after' => 2
);
}
Add After
Code:
//[ HIGH=XXX ]
$tag_list['option']['high'] = array(
'callback' => 'handle_bbcode_high',
'strip_empty' => true,
'disable_smilies' => true,
'disable_wordwrap' => true,
'strip_space_after' => 2
);
//[ HIGH ]
$tag_list['no_option']['high'] = array(
'callback' => 'handle_bbcode_high1',
'strip_empty' => true,
'disable_smilies' => true,
'disable_wordwrap' => true,
'strip_space_after' => 2
);
- Add the following bottom of Footer template
Code:
<script type="text/javascript" src="js/shCore.js"></script>
<script type="text/javascript" src="js/shBrushPhp.js"></script>
<script type="text/javascript" src="js/shBrushCSharp.js"></script>
<script type="text/javascript" src="js/shBrushCss.js"></script>
<script type="text/javascript" src="js/shBrushJScript.js"></script>
<script type="text/javascript" src="js/shBrushSql.js"></script>
<script type="text/javascript" src="js/shBrushVb.js"></script>
<script type="text/javascript" src="js/shBrushXml.js"></script>
<script type="text/javascript">
window.onload = function () {
dp.SyntaxHighlighter.ClipboardSwf = 'js/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code', true, true, false, 1, false);
}
</script>
- Add the following 4 template
- bbcode_high
Code:
<pre name="code" class="$option">$code</pre>
- bbcode_high1
Code:
<pre name="code" class="Xml">$code</pre>
- bbcode_high_printable
Code:
<pre name="code" class="$option">$code</pre>
- bbcode_high1_printable
Code:
<pre name="code" class="Xml">$code</pre>
- Add the following to your Additional CSS settings
Code:
.dp-highlighter
.dp-highlighter ol,
.dp-highlighter ol li,
.dp-highlighter ol li span
{
font-weight: normal;
font-family: "Consolas", "Monaco", "Courier New", Courier, monospace !important;
font-size: 12px;
}
.dp-highlighter
{
background-color: #E7E5DC;
width: 620px;
overflow: auto;
margin: 0px 0 18px 0 !important;
padding-top: 0px; /* adds a little border on top when controls are hidden */
padding-right: 1px; /* adds a little border on top when controls are hidden */
}
/* clear styles */
.dp-highlighter ol,
.dp-highlighter ol li,
.dp-highlighter ol li span
{
margin: 0;
padding: 0;
border: none;
}
.dp-highlighter a,
.dp-highlighter a:hover
{
background: none;
border: none;
padding: 0;
margin: 0;
}
.dp-highlighter .bar
{
padding-left: 45px;
}
.dp-highlighter.collapsed .bar,
.dp-highlighter.nogutter .bar
{
padding-left: 0px;
}
.dp-highlighter ol
{
list-style: decimal; /* for ie */
background-color: #fff;
margin: 0px 0px 1px 45px !important; /* 1px bottom margin seems to fix occasional Firefox scrolling */
padding: 0px;
color: #5C5C5C;
}
.dp-highlighter.nogutter ol,
.dp-highlighter.nogutter ol li
{
list-style: none !important;
margin-left: 0px !important;
}
.dp-highlighter ol li,
.dp-highlighter .columns div
{
list-style: decimal-leading-zero; /* better look for others, override cascade from OL */
list-style-position: outside !important;
border-left: 3px solid #6CE26C;
background-color: #F8F8F8;
color: #5C5C5C;
padding: 0 3px 0 10px !important;
margin: 0 !important;
line-height: 14px;
}
.dp-highlighter.nogutter ol li,
.dp-highlighter.nogutter .columns div
{
border: 0;
}
.dp-highlighter .columns
{
background-color: #F8F8F8;
color: gray;
overflow: hidden;
width: 80%;
}
.dp-highlighter .columns div
{
padding-bottom: 5px;
}
.dp-highlighter ol li.alt
{
background-color: #FFF;
color: inherit;
}
.dp-highlighter ol li span
{
color: black;
background-color: inherit;
}
/* Adjust some properties when collapsed */
.dp-highlighter.collapsed ol
{
margin: 0px;
}
.dp-highlighter.collapsed ol li
{
display: none;
}
/* Additional modifications when in print-view */
.dp-highlighter.printing
{
border: none;
}
.dp-highlighter.printing .tools
{
display: none !important;
}
.dp-highlighter.printing li
{
display: list-item !important;
}
/* Styles for the tools */
.dp-highlighter .tools
{
padding: 3px 8px 3px 10px;
font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
color: silver;
background-color: #f8f8f8;
padding-bottom: 10px;
border-left: 3px solid #6CE26C;
}
.dp-highlighter.nogutter .tools
{
border-left: 0;
}
.dp-highlighter.collapsed .tools
{
border-bottom: 0;
}
.dp-highlighter .tools a
{
font-size: 9px;
color: #a0a0a0;
background-color: inherit;
text-decoration: none;
margin-right: 10px;
}
.dp-highlighter .tools a:hover
{
color: red;
background-color: inherit;
text-decoration: underline;
}
/* About dialog styles */
.dp-about { background-color: #fff; color: #333; margin: 0px; padding: 0px; }
.dp-about table { width: 80%; height: 100%; font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; }
.dp-about td { padding: 10px; vertical-align: top; }
.dp-about .copy { border-bottom: 1px solid #ACA899; height: 95%; }
.dp-about .title { color: red; background-color: inherit; font-weight: bold; }
.dp-about .para { margin: 0 0 4px 0; }
.dp-about .footer { background-color: #ECEADB; color: #333; border-top: 1px solid #fff; text-align: right; }
.dp-about .close { font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; background-color: #ECEADB; color: #333; width: 60px; height: 22px; }
/* Language specific styles */
.dp-highlighter .comment, .dp-highlighter .comments { color: #008200; background-color: inherit; }
.dp-highlighter .string { color: blue; background-color: inherit; }
.dp-highlighter .keyword { color: #069; font-weight: bold; background-color: inherit; }
.dp-highlighter .preprocessor { color: gray; background-color: inherit; }
Fix for WYSIWYG missing tags
search for inside class_bbcode_alt.php
PHP Code:
// make the "pre" tags use the correct handler
foreach (array('code', 'php', 'html') AS $pre_tag)
replace with
PHP Code:
// make the "pre" tags use the correct handler
foreach (array('code', 'php', 'html', 'high') AS $pre_tag)
search for
PHP Code:
'code' => false, // overridden
'html' => false, // overridden
'php' => false // overridden
replace with
PHP Code:
'high' => false, // overridden
'code' => false, // overridden
'html' => false, // overridden
'php' => false // overridden
Update at 18.06.2008 : WYSIWYG missing tags bug has been corrected
If you want you can upload the js files to a different directory. Just donot forget to change the file path within footer template.
This mod is brought to you by http://vbtech.net
Download
This modification is archived, downloads are still allowed.
syntaxhighlighter.txt (8.5 KB, 132 downloads)
Screenshots
|