Source for file _quicktags.toolbar.php
Documentation is available at _quicktags.toolbar.php
* This file implements the Quicktahs Toolbar plugin for b2evolution
* Includes code from the WordPress team -
* http://sourceforge.net/project/memberlist.php?group_id=51422
* b2evolution - {@link http://b2evolution.net/}
* Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
* @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
if( !defined('DB_USER') ) die( 'Please, do not access this page directly.' );
require_once dirname(__FILE__
).
'/../toolbar.class.php';
* Should be toolbar be displayed?
var $name =
'Quick Tags';
* {@internal quicktags_Toolbarplugin::quicktags_Toolbarplugin(-)}}
* {@internal quicktags_Toolbarplugin::render(-)}}
{ // We don't want to show this toolbar
{ // let's deactivate quicktags on Lynx, because they don't work there.
<script language="JavaScript" type="text/javascript">
var b2evoButtons = new Array();
var b2evoLinks = new Array();
var b2evoOpenTags = new Array();
function b2evoButton(id, display, tagStart, tagEnd, access, tit, open) {
this.id = id; // used to name the toolbar button
this.display = display; // label on button
this.tagStart = tagStart; // open tag
this.tagEnd = tagEnd; // close tag
this.access = access; // access key
this.open = open; // set to -1 if tag does not need to be closed
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('INSerted [Alt-I]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('DELeted [Alt-D]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('STRong [Alt-S]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('EMphasis [Alt-E]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('CODE [Alt-C]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('Paragraph [Alt-P]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('Unordered List [Alt-U]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('List Item [Alt-L]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'<blockquote>','</blockquote>'
,'
<?php echo
T_('BLOCKQUOTE [Alt-B]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('IMaGe [Alt-G]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('A href [Alt-A]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'
<?php echo
T_('More [Alt-M]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'<!-'+'-noteaser-'+'->',''
,'
<?php echo
T_('no teaser [Alt-T]') ?>'
b2evoButtons[b2evoButtons.length] = new b2evoButton(
,'<!-'+'-nextpage-'+'->',''
,'
<?php echo
T_('next page [Alt-Q]') ?>'
function b2evoShowButton(button, i)
if (button.id == 'b2evo_img')
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" title="' + button.tit + '" class="quicktags" onclick="b2evoInsertImage(b2evoCanvas);" value="' + button.display + '" />');
else if (button.id == 'b2evo_link')
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" title="' + button.tit + '" class="quicktags" onclick="b2evoInsertLink(b2evoCanvas, ' + i + ');" value="' + button.display + '" />');
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" title="' + button.tit + '" class="quicktags" onclick="b2evoInsertTag(b2evoCanvas, ' + i + ');" value="' + button.display + '" />');
function b2evoAddTag(button) {
if (b2evoButtons[button].tagEnd != '') {
b2evoOpenTags[b2evoOpenTags.length] = button;
document.getElementById(b2evoButtons[button].id).value = '/' + document.getElementById(b2evoButtons[button].id).value;
function b2evoRemoveTag(button) {
for (i = 0; i < b2evoOpenTags.length; i++) {
if (b2evoOpenTags[i] == button) {
b2evoOpenTags.splice(i, 1);
document.getElementById(b2evoButtons[button].id).value = document.getElementById(b2evoButtons[button].id).value.replace('/', '');
function b2evoCheckOpenTags(button) {
for (i = 0; i < b2evoOpenTags.length; i++) {
if (b2evoOpenTags[i] == button) {
return true; // tag found
return false; // tag not found
function b2evoCloseAllTags() {
var count = b2evoOpenTags.length;
for (o = 0; o < count; o++) {
b2evoInsertTag(b2evoCanvas, b2evoOpenTags[b2evoOpenTags.length - 1]);
function b2evoToolbar() {
for (i = 0; i < b2evoButtons.length; i++) {
b2evoShowButton(b2evoButtons[i], i);
document.write('<input type="button" id="b2evo_close" class="quicktags" onclick="b2evoCloseAllTags();" title="
<?php echo
T_('Close all tags') ?>" value="X" />');
document.write('</div>');
function b2evoInsertTag(myField, i)
sel = document.selection.createRange();
if (sel.text.length > 0) {
sel.text = b2evoButtons[i].tagStart + sel.text + b2evoButtons[i].tagEnd;
if (!b2evoCheckOpenTags(i) || b2evoButtons[i].tagEnd == '') {
sel.text = b2evoButtons[i].tagStart;
sel.text = b2evoButtons[i].tagEnd;
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0')
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var scrollTop, scrollLeft;
if( myField.type == 'textarea' && typeof myField.scrollTop != 'undefined' )
{ // remember old position
scrollTop = myField.scrollTop;
scrollLeft = myField.scrollLeft;
myField.value = myField.value.substring(0, startPos)
+ b2evoButtons[i].tagStart
+ myField.value.substring(startPos, endPos)
+ myField.value.substring(endPos, myField.value.length);
cursorPos += b2evoButtons[i].tagStart.length + b2evoButtons[i].tagEnd.length;
if (!b2evoCheckOpenTags(i) || b2evoButtons[i].tagEnd == '')
myField.value = myField.value.substring(0, startPos)
+ b2evoButtons[i].tagStart
+ myField.value.substring(endPos, myField.value.length);
cursorPos = startPos + b2evoButtons[i].tagStart.length;
myField.value = myField.value.substring(0, startPos)
+ myField.value.substring(endPos, myField.value.length);
cursorPos = startPos + b2evoButtons[i].tagEnd.length;
if( typeof scrollTop != 'undefined' )
{ // scroll to old position
myField.scrollTop = scrollTop;
myField.scrollLeft = scrollLeft;
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;
{ // Browser not especially supported
if (!b2evoCheckOpenTags(i) || b2evoButtons[i].tagEnd == '') {
myField.value += b2evoButtons[i].tagStart;
myField.value += b2evoButtons[i].tagEnd;
function b2evoInsertContent(myField, myValue) {
if (document.selection) {
sel = document.selection.createRange();
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
myField.value += myValue;
function b2evoInsertLink(myField, i, defaultValue) {
defaultValue = 'http://';
if (!b2evoCheckOpenTags(i)) {
var URL = prompt('
<?php echo
T_('URL') ?>:' ,defaultValue);
b2evoButtons[i].tagStart = '<a href="' + URL + '">';
b2evoInsertTag(myField, i);
b2evoInsertTag(myField, i);
function b2evoInsertImage(myField) {
var myValue = prompt('
<?php echo
T_('URL') ?>:', 'http://');
+ '" alt="' + prompt('
<?php echo
T_('ALTernate text') ?>:', '')
+ '" title="' + prompt('
<?php echo
T_('Title') ?>:', '')
b2evoInsertContent(myField, myValue);
<div class="edit_toolbar"><script language="JavaScript" type="text/javascript">b2evoToolbar();</script></div>