Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > Programming Articles
Add A Button To The Editor (vb3)
cirisme
Join Date: Jan 2003
Posts: 136

 

Show Printable Version Email this Page Subscription
cirisme cirisme is offline 01-17-2004, 10:00 PM

This will help you add an extra button to vb3's editor toolbar. The button calls a function that you define in vbulletin_global.js that can do anything you want. Originally posted here.

Open ./includes/functions_editor.php and find this:

PHP Code:
    global $datastore$bbcodecache
And change to:

PHP Code:
    global $datastore$bbcodecache$stylevar
Find this

PHP Code:
    foreach ($bbcodecache AS $bbcode)
         {
             if (
$bbcode['buttonimage'] != '')
             {
                 
$tag strtoupper($bbcode['bbcodetag']);
     
                 if (
$toolbartype == 2)
                 {
              
$extrabuttons .= "<td><div class=\"imagebutton\" id=\"cmd_wrap$bbcode[twoparams]_$bbcode[bbcodetag]\"><img src=\"$bbcode[buttonimage]\" alt=\"Wrap [$tag] Tags\" width=\"21\" height=\"20\" /></div></td>\n";
                 }
                 else
                 {
              
$extrabuttons .= "<td><div class=\"imagebutton\"><a href=\"#\" onclick=\"return vbcode('$tag', '')\"><img src=\"$bbcode[buttonimage]\" alt=\"Wrap [$tag] Tags\" title=\"Wrap [$tag] Tags\" width=\"21\" height=\"20\" border=\"0\" /></a></div></td>\n";
                 }
             }
         } 
And add this below:

Code:
	if ($toolbartype == 2){
     		$extrabuttons .= '<td><div class="imagebutton" id="cmd_xxxx"><img src="' . $stylevar[imgdir_editor] . '/xxxx.gif" alt="<Alt Text>" width="21" height="20" /></div></td>';
     	}else{
 		$extrabuttons .= '<td><div class="imagebutton"><a href="#" onclick="return xxxx()"><img src="' . $stylevar[imgdir_editor] . '/xxxx.gif" alt="<Alt Text>" title="<Alt Text>" width="21" height="20" border="0" /></a></div></td>';
     	}
Be sure to change the bolded xxxx to be whatever you want it to be.

Now, open clientscript/vbulletin_wysiwyg.js and find this:

Code:
		 htmlbox.execCommand(formatcommand, showinterface, extraparameters);
     			set_context(formatcommand);
And REPLACE with:

Code:
		if(formatcommand == 'xxxx') {
     			xxxx();
     		}else{
     			// this was original but outside IF
 			htmlbox.execCommand(formatcommand, showinterface, extraparameters);
     			set_context(formatcommand);
     		}
Be sure to change the xxxx's above to be the same as in the other code snippet.

And open clientscript/vbulletin_global.js and add a function called whatever you changed xxxx to. It can do whatever you want it to do and you'll be set.

If you want to add it to the showthread quick reply... open showthread.php and find:

PHP Code:
    eval('$quickreply = "' fetch_template('showthread_quickreply') . '";'); 
And replace with:

PHP Code:
    $extrabuttons        construct_editor_extra_buttons($WYSIWYG);
      eval(
'$quickreply = "' fetch_template('showthread_quickreply') . '";'); 
In the showthread_quickreply template find this:

HTML Code:
		<td><div class="imagebutton" id="cmd_wrap0_quote"><img src="$stylevar[imgdir_editor]/quote.gif" alt="$vbphrase[wrap_quote_tags]" width="21" height="20" /></div></td>
And add this below:

HTML Code:
		<if condition="$extrabuttons"><td>$extrabuttons</td></if>
Find this:

HTML Code:
		<td><div class="imagebutton"><a href="#" onclick="return vbcode('QUOTE', '')"><img src="$stylevar[imgdir_editor]/quote.gif" alt="$vbphrase[wrap_quote_tags]" title="$vbphrase[wrap_quote_tags]" width="21" height="21" border="0" /></a></div></td>
And add below:

HTML Code:
		<if condition="$extrabuttons"><td>$extrabuttons</td></if>
Done!
Reply With Quote
  #2  
Old 01-18-2004, 01:57 PM
MindTrix's Avatar
MindTrix MindTrix is offline
 
Join Date: Apr 2002
Location: United Kingdom
Posts: 1,833
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice one Should prove helpful to some people
Reply With Quote
  #3  
Old 01-18-2004, 04:49 PM
NTLDR's Avatar
NTLDR NTLDR is offline
Coder
 
Join Date: Apr 2002
Location: Bristol, UK
Posts: 3,644
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A reminder thatr if you want buttons for your custom BB Code then this is already an option in the BB Code Manager
Reply With Quote
  #4  
Old 01-18-2004, 04:51 PM
MindTrix's Avatar
MindTrix MindTrix is offline
 
Join Date: Apr 2002
Location: United Kingdom
Posts: 1,833
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Reply With Quote
  #5  
Old 01-18-2004, 05:46 PM
cirisme cirisme is offline
 
Join Date: Jan 2003
Posts: 136
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NTLDR
A reminder thatr if you want buttons for your custom BB Code then this is already an option in the BB Code Manager
Yes, of course.

This is if you want to do other things... and even with that, the extra buttons won't show up in quick reply unless you apply the modifications to showthread.php/showthread_quickreply in my first post.
Reply With Quote
  #6  
Old 02-15-2004, 04:44 PM
M.C. M.C. is offline
 
Join Date: Jan 2002
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i was trying to put smilies in quick reply box, using that system, but got javascript error... sorry, but i full zerro in all that javascript.. may be you help me?

my post about that here: https://vborg.vbsupport.ru/showpost....2&postcount=32
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 02:56 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.05778 seconds
  • Memory Usage 2,265KB
  • Queries Executed 21 (?)
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
  • (3)bbcode_code
  • (4)bbcode_html
  • (5)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (5)postbit
  • (6)postbit_onlinestatus
  • (6)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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete