Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Syntax Highlighter Details »»
Syntax Highlighter
Version: 1.0.1, by Lizard King Lizard King is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: BB Code Enhancements - Version: 3.7.1 Rating:
Released: 06-13-2008 Last Update: Never Installs: 30
Template Edits
Code Changes Additional Files  
No support by the author.

I donot like the limitation of bbcodes with code , php and html. Thats why i decided to integrate syntaxhighlighter - Google Code with vBulletin. You can use different brushes such as SQL , Css , Xml , Pyhton etc... Here are the installation instructions
  1. Download latest version of Syntax Highlighter from syntaxhighlighter - Google Code
  2. Extract the folder and upload js files to a folder named js within your forum root.
  3. 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
    			);
  4. 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>
  5. Add the following 4 template
    1. bbcode_high
      Code:
      <pre name="code" class="$option">$code</pre>
    2. bbcode_high1
      Code:
      <pre name="code" class="Xml">$code</pre>
    3. bbcode_high_printable
      Code:
      <pre name="code" class="$option">$code</pre>
    4. bbcode_high1_printable
      Code:
      <pre name="code" class="Xml">$code</pre>
  6. 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 vBTech

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
m7sen

Comments
  #12  
Old 11-17-2008, 05:16 PM
TradeOfAllJacks TradeOfAllJacks is offline
 
Join Date: Nov 2008
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Any chance for actionscript 2/3 support for this? I've been trying to find a good 3.7 syntax highlighter but to no avail.
Reply With Quote
  #13  
Old 04-24-2009, 08:04 AM
veenuisthebest's Avatar
veenuisthebest veenuisthebest is offline
 
Join Date: Mar 2008
Location: India
Posts: 1,416
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This mod works good in 3.8.x, I have two questions please:-

1. Is there any chance of getting this done without file edits?

2. Any way of showing the old default vb's style of code, when javascript is disabled on the user's browser?

Thanks
Reply With Quote
  #14  
Old 06-02-2009, 06:41 PM
beduino's Avatar
beduino beduino is offline
 
Join Date: Dec 2005
Location: Rio de Janeiro
Posts: 280
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thank you lizard king!
all the best
beduino
Reply With Quote
  #15  
Old 06-02-2009, 07:31 PM
sheppardzwc sheppardzwc is offline
 
Join Date: Dec 2008
Location: South Carolina
Posts: 104
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Great! Just what we needed.
Reply With Quote
  #16  
Old 06-18-2009, 05:56 PM
wo0kie wo0kie is offline
 
Join Date: Jun 2009
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

EDIT: Fixed, had to enable legacy support:

http://alexgorbatchev.com/wiki/Synta...hter:Upgrading

Demo: http://www.joinuv.com/forums/showthread.php?t=17316
Reply With Quote
  #17  
Old 07-23-2009, 10:41 PM
stanleys stanleys is offline
 
Join Date: Dec 2007
Location: NYC
Posts: 44
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks. It would be great if you could package this is a mod, and make it so it overwrites the standard [code] tag.
SitePoint has a nice implementation with a code list dropdown, it would be great to have something like that.
Reply With Quote
  #18  
Old 12-09-2009, 08:40 PM
AshMagic AshMagic is offline
 
Join Date: Nov 2008
Posts: 90
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can anyone please confirm if this works with vBulletin 3.8.4?

Thanks.
Reply With Quote
  #19  
Old 08-07-2010, 12:36 AM
Mike09 Mike09 is offline
 
Join Date: Jul 2010
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works perfectly with vB 4.0.x with a minor modification in the first code block,

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;

		$templater = vB_Template::create($template);
			$templater->register('blockheight', $blockheight);
			$templater->register('code', $code);
			$templater->register('option', $option);
		return $templater->render();
	}

	/**
	* 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;

		$templater = vB_Template::create($template);
			$templater->register('blockheight', $blockheight);
			$templater->register('code', $code);
		return $templater->render();


	}
Thanks.
Reply With Quote
  #20  
Old 09-28-2010, 01:16 PM
Delphiprogrammi Delphiprogrammi is offline
 
Join Date: Feb 2004
Location: Landen(Belgium)
Posts: 1,335
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Mike09 View Post
Works perfectly with vB 4.0.x with a minor modification in the first code block,

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;
 
        $templater = vB_Template::create($template);
            $templater->register('blockheight', $blockheight);
            $templater->register('code', $code);
            $templater->register('option', $option);
        return $templater->render();
    }
 
    /**
    * 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;
 
        $templater = vB_Template::create($template);
            $templater->register('blockheight', $blockheight);
            $templater->register('code', $code);
        return $templater->render();
 
 
    }
Thanks.
no it doesn't work on 4.0.7 it outputs plain text or is it me here ?

[high]test[/high]

[high1=php]//php code[/high1]
Reply With Quote
  #21  
Old 09-30-2010, 01:42 PM
Delphiprogrammi Delphiprogrammi is offline
 
Join Date: Feb 2004
Location: Landen(Belgium)
Posts: 1,335
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

anybody alive around here ? this thing does NOT work
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:09 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09970 seconds
  • Memory Usage 2,356KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (12)bbcode_code
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete