Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons

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
  #2  
Old 06-14-2008, 12:11 AM
nothing4me nothing4me is offline
 
Join Date: Oct 2007
Posts: 183
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Brilliant job! This makes me want to start a coding forum!
Reply With Quote
  #3  
Old 06-14-2008, 01:38 AM
Quantnet Quantnet is offline
 
Join Date: Nov 2006
Location: NYC
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I installed this per instruction. How do I use it?
Reply With Quote
  #4  
Old 06-14-2008, 05:06 AM
Magnumutz's Avatar
Magnumutz Magnumutz is offline
 
Join Date: Feb 2006
Location: Romania
Posts: 731
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is awesome for coder forums
Good job !
Reply With Quote
  #5  
Old 06-14-2008, 06:48 AM
Lizard King Lizard King is offline
 
Join Date: Jan 2005
Location: Mersin
Posts: 907
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Quantnet.org View Post
I installed this per instruction. How do I use it?
[high=language]code[/high] or [high]code[/high]
Reply With Quote
  #6  
Old 06-14-2008, 08:18 AM
snowlion snowlion is offline
 
Join Date: Mar 2005
Location: STY
Posts: 183
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

great mod . installed
Reply With Quote
  #7  
Old 06-14-2008, 12:28 PM
Quantnet Quantnet is offline
 
Join Date: Nov 2006
Location: NYC
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lizard King View Post
[high=language]code[/high] or [high]code[/high]
Many thanks.
is there any plan to modify the code tag button # to use this or create a new button for this bbcode?

Also, when i use this [high] to post something, when I go back to edit the post, the tag is not visible. I can't also edit posts in the past to use this tag, only new posts can use this.

P.S: what are the list of language option?

thanks
Reply With Quote
  #8  
Old 06-18-2008, 11:36 AM
Lizard King Lizard King is offline
 
Join Date: Jan 2005
Location: Mersin
Posts: 907
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Also, when i use this [high] to post something, when I go back to edit the post, the tag is not visible. I can't also edit posts in the past to use this tag, only new posts can use this.
This is now fixed. The fix is inside the first post.
Reply With Quote
  #9  
Old 06-18-2008, 07:46 PM
rizelim's Avatar
rizelim rizelim is offline
 
Join Date: Nov 2006
Posts: 170
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks
Reply With Quote
  #10  
Old 06-19-2008, 03:31 AM
Quantnet Quantnet is offline
 
Join Date: Nov 2006
Location: NYC
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lizard King View Post
This is now fixed. The fix is inside the first post.
Thanks you.

Not sure if this is a bug.
When I go back and edit old posts and replace code tags by the the new high tags, it only works after I click on Go Advance and Preview.
If i only edit and Save, it will not work. It seems like the Preview will invoke the script before it can be saved.
Reply With Quote
Reply

Thread Tools

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:29 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07530 seconds
  • Memory Usage 2,325KB
  • Queries Executed 23 (?)
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
  • (10)bbcode_code
  • (4)bbcode_php
  • (4)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
  • (10)post_thanks_box
  • (1)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)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_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