diff --git a/wp-admin/b2edit.form.php b/wp-admin/b2edit.form.php index 766c0141e8..2d84ea78e7 100644 --- a/wp-admin/b2edit.form.php +++ b/wp-admin/b2edit.form.php @@ -165,10 +165,11 @@ if ($action != 'editcomment') { ?> -Quicktags: '; include('b2quicktags.php'); - } +} ?> @@ -181,13 +182,22 @@ if ($action != 'editcomment') { ?>
+ +     click for Geo Info
diff --git a/wp-admin/b2quicktags.js b/wp-admin/b2quicktags.js index 8d1bf948d8..d811af92f8 100644 --- a/wp-admin/b2quicktags.js +++ b/wp-admin/b2quicktags.js @@ -1,190 +1,336 @@ -// b2 quick tags -// - authorized adaptation of the 'bbCode control code' by subBlue design ( www.subBlue.com ) +// new edit toolbar used with permission +// by Alex King +// http://www.alexking.org/ -// Define the quick tags -bbcode = new Array(); -bbtags = new Array('','','','','','','','','
','
','

','

','
  • ','
  • ','','','',''); -imageTag = false; - -// Replacement for arrayname.length property -function getarraysize(thearray) { - for (i = 0; i < thearray.length; i++) { - if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null)) - return i; - } - return thearray.length; +function edButton() { + this.id = ''; // used to name the toolbar button + this.display = ''; // label on button + this.tagStart = ''; // open tag + this.tagEnd = ''; // close tag + this.open = 0; // set to -1 if tag does not need to be closed } -// Replacement for arrayname.push(value) not implemented in IE until version 5.5 -// Appends element to the array -function arraypush(thearray,value) { - thearray[ getarraysize(thearray) ] = value; -} +var edOpenTags = new Array(); -// Replacement for arrayname.pop() not implemented in IE until version 5.5 -// Removes and returns the last element of an array -function arraypop(thearray) { - thearraysize = getarraysize(thearray); - retval = thearray[thearraysize - 1]; - delete thearray[thearraysize - 1]; - return retval; -} +function edAddTag(button) { + if (eval('ed' + button + '.tagEnd') != '') { + edOpenTags[edOpenTags.length] = button; + document.getElementById(eval('ed' + button + '.id')).value = '/' + document.getElementById(eval('ed' + button + '.id')).value; - -function checkForm(formObj) { - - formErrors = false; - - if (formObj.content.value.length < 2) { - formErrors = "You must enter a message!"; - } - - if (formErrors) { - alert(formErrors); - return false; - } else { - bbstyle(formObj, -1); - //formObj.preview.disabled = true; - //formObj.submit.disabled = true; - return true; } } - -function emoticon(theSmilie) { - if ((parseInt(navigator.appVersion) >= 4) && (navigator.appName == "Microsoft Internet Explorer")) - theSelection = document.selection.createRange().text; // Get text selection - - if (theSelection) { - // Add tags around selection - document.selection.createRange().text = theSelection + theSmilie + ' '; - formObj.content.focus(); - theSelection = ''; - return; - } - - - document.post.content.value += ' ' + theSmilie + ' '; - document.post.content.focus(); -} - - -function bbfontstyle(formObj, bbopen, bbclose) { - if ((parseInt(navigator.appVersion) >= 4) && (navigator.appName == "Microsoft Internet Explorer")) { - theSelection = document.selection.createRange().text; - if (!theSelection) { - formObj.content.value += bbopen + bbclose; - formObj.content.focus(); - return; - } - document.selection.createRange().text = bbopen + theSelection + bbclose; - formObj.content.focus(); - return; - } else { - formObj.content.value += bbopen + bbclose; - formObj.content.focus(); - return; - } -} - - -function bbstyle(formObj, bbnumber) { - - donotinsert = false; - theSelection = false; - bblast = 0; - - if (bbnumber == -1) { // Close all open tags & default button names - while (bbcode[0]) { - butnumber = arraypop(bbcode) - 1; - formObj.content.value += bbtags[butnumber + 1]; - buttext = eval('formObj.addbbcode' + butnumber + '.value'); - eval('formObj.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); - } - formObj.content.focus(); - return; - } - - if ((parseInt(navigator.appVersion) >= 4) && (navigator.appName == "Microsoft Internet Explorer")) - theSelection = document.selection.createRange().text; // Get text selection - - if (theSelection) { - // Add tags around selection - document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1]; - formObj.content.focus(); - theSelection = ''; - return; - } - - // Find last occurance of an open tag the same as the one just clicked - for (i = 0; i < bbcode.length; i++) { - if (bbcode[i] == bbnumber+1) { - bblast = i; - donotinsert = true; +function edRemoveTag(button) { + for (i = 0; i < edOpenTags.length; i++) { + if (edOpenTags[i] == button) { + edOpenTags.splice(i, 1); + document.getElementById(eval('ed' + button + '.id')).value = document.getElementById(eval('ed' + button + '.id')).value.replace('/', ''); } } +} - if (donotinsert) { // Close all open tags up to the one just clicked & default button names - while (bbcode[bblast]) { - butnumber = arraypop(bbcode) - 1; - formObj.content.value += bbtags[butnumber + 1]; - buttext = eval('formObj.addbbcode' + butnumber + '.value'); - eval('formObj.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); - imageTag = false; +function edCheckOpenTags(button) { + var tag = 0; + for (i = 0; i < edOpenTags.length; i++) { + if (edOpenTags[i] == button) { + tag++; + } + } + if (tag > 0) { + return true; // tag found + } + else { + return false; // tag not found + } +} + +function edCloseAllTags() { + var count = edOpenTags.length; + for (o = 0; o < count; o++) { + edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]); + } +} + +var ed0 = new edButton(); +ed0.id = 'ed_bold'; +ed0.display = 'B'; +ed0.tagStart = ''; +ed0.tagEnd = ''; + +var ed1 = new edButton(); +ed1.id = 'ed_italic'; +ed1.display = 'I'; +ed1.tagStart = ''; +ed1.tagEnd = ''; + +var ed2 = new edButton(); +ed2.id = 'ed_under'; +ed2.display = 'U'; +ed2.tagStart = ''; +ed2.tagEnd = ''; + +var ed3 = new edButton(); +ed3.id = 'ed_strike'; +ed3.display = 'S'; +ed3.tagStart = ''; +ed3.tagEnd = ''; + +var ed4 = new edButton(); +ed4.id = 'ed_quot'; +ed4.display = '"'; +ed4.tagStart = '"'; +ed4.tagEnd = '"'; +ed4.open = -1; + +var ed5 = new edButton(); +ed5.id = 'ed_amp'; +ed5.display = '&'; +ed5.tagStart = '&'; +ed5.tagEnd = ''; +ed5.open = -1; + +var ed6 = new edButton(); +ed6.id = 'ed_nbsp'; +ed6.display = 'nbsp'; +ed6.tagStart = ' '; +ed6.tagEnd = ''; +ed6.open = -1; + +var ed7 = new edButton(); +ed7.id = 'ed_nobr'; +ed7.display = 'nobr'; +ed7.tagStart = ''; +ed7.tagEnd = ''; + +var ed8 = new edButton(); +ed8.id = 'ed_link'; +ed8.display = 'link'; +ed8.tagStart = ''; // special case +ed8.tagEnd = ''; + +var ed9 = new edButton(); +ed9.id = 'ed_img'; +ed9.display = 'img'; +ed9.tagStart = ''; // special case +ed9.tagEnd = ''; +ed9.open = -1; + +var ed10 = new edButton(); +ed10.id = 'ed_ul'; +ed10.display = 'UL'; +ed10.tagStart = ''; + +var ed11 = new edButton(); +ed11.id = 'ed_ol'; +ed11.display = 'OL'; +ed11.tagStart = '
      '; +ed11.tagEnd = '
    '; + +var ed12 = new edButton(); +ed12.id = 'ed_li'; +ed12.display = 'LI'; +ed12.tagStart = '
  • '; +ed12.tagEnd = '
  • '; + +var ed13 = new edButton(); +ed13.id = 'ed_block'; +ed13.display = 'b-quote'; +ed13.tagStart = '
    '; +ed13.tagEnd = '
    '; + +var ed14 = new edButton(); +ed14.id = 'ed_pre'; +ed14.display = 'pre'; +ed14.tagStart = '
    ';
    +ed14.tagEnd = '
    '; + +var edButtonCount = 15; + +function edShowButton(button, i) { + if (button.id == 'ed_img') { + document.write(''); + } + else if (button.id == 'ed_link') { + document.write(''); + } + else { + document.write(''); + } +} + +function edLink() { + this.display = ''; + this.URL = ''; + this.newWin = 0; +} + +var edLink0 = new edLink; +edLink0.display = 'WordPress'; +edLink0.URL = 'http://www.wordpress.org/'; + +var edLink1 = new edLink; +edLink1.display = 'alexking.org'; +edLink1.URL = 'http://www.alexking.org/'; + +var edLinkCount = 2; + +function edShowLinks() { + var tempStr = ''; + document.write(tempStr); +} + +function edQuickLink(i, thisSelect) { + if (i > -1) { + var newWin = ''; + if (eval('edLink' + i + '.newWin') == 1) { + newWin = ' target="_blank"'; + } + var tempStr = '' + eval('edLink' + i + '.display') + ''; + edInsertContent(edCanvas, tempStr); + } + thisSelect.selectedIndex = 0; +} + +function edSpell(myField) { + var word = ''; + if (document.selection) { + myField.focus(); + var sel = document.selection.createRange(); + if (sel.text.length > 0) { + word = sel.text; + } + } + else if (myField.selectionStart || myField.selectionStart == '0') { + var startPos = myField.selectionStart; + var endPos = myField.selectionEnd; + if (startPos != endPos) { + word = myField.value.substring(startPos, endPos); + } + } + if (word == '') { + word = prompt('Enter a word to look up:', ''); + } + if (word != '') { + window.open('http://dictionary.reference.com/search?q=' + word); + } +} + +function edToolbar() { + document.write('
    '); + for (i = 0; i < edButtonCount; i++) { + edShowButton(eval('ed' + i), i); + } + document.write(''); + document.write(''); +// edShowLinks(); // disabled by default + document.write('
    '); +} + +// insertion code + +function edInsertTag(myField, i) { + //IE support + if (document.selection) { + myField.focus(); + sel = document.selection.createRange(); + if (sel.text.length > 0) { + sel.text = eval('ed' + i + '.tagStart') + sel.text + eval('ed' + i + '.tagEnd'); + } + else { + if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') { + sel.text = eval('ed' + i + '.tagStart'); + edAddTag(i); + } + else { + sel.text = eval('ed' + i + '.tagEnd'); + edRemoveTag(i); } - formObj.content.focus(); - return; - } else { // Open tags - - if (imageTag && (bbnumber != 14)) { // Close image tag before adding another - formObj.content.value += bbtags[15]; - lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list - formObj.addbbcode14.value = "image"; // Return button back to normal state - imageTag = false; } - - // Open tag - formObj.content.value += bbtags[bbnumber]; - if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag - arraypush(bbcode,bbnumber+1); - eval('formObj.addbbcode'+bbnumber+'.value += "*"'); - formObj.content.focus(); - return; + myField.focus(); + } + //MOZILLA/NETSCAPE support + else if (myField.selectionStart || myField.selectionStart == '0') { + var startPos = myField.selectionStart; + var endPos = myField.selectionEnd; + var cursorPos; + if (startPos != endPos) { + myField.value = myField.value.substring(0, startPos) + + eval('ed' + i + '.tagStart') + + myField.value.substring(startPos, endPos) + + eval('ed' + i + '.tagEnd') + + myField.value.substring(endPos, myField.value.length); + cursorPos = endPos + eval('ed' + i + '.tagStart').length + eval('ed' + i + '.tagEnd').length; + } + else { + if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') { + myField.value = myField.value.substring(0, startPos) + + eval('ed' + i + '.tagStart') + + myField.value.substring(endPos, myField.value.length); + edAddTag(i); + cursorPos = startPos + eval('ed' + i + '.tagStart').length; + } + else { + myField.value = myField.value.substring(0, startPos) + + eval('ed' + i + '.tagEnd') + + myField.value.substring(endPos, myField.value.length); + edRemoveTag(i); + cursorPos = startPos + eval('ed' + i + '.tagEnd').length; + } + } + myField.focus(); + myField.selectionStart = cursorPos; + myField.selectionEnd = cursorPos; + } + else { + if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') { + myField.value += eval('ed' + i + '.tagStart'); + edAddTag(i); + } + else { + myField.value += eval('ed' + i + '.tagEnd'); + edRemoveTag(i); + } + myField.focus(); } - } -// swirlee's bblink hack, slightly corrected -function bblink(formObj, bbnumber) { - current_url = prompt("URL:","http://"); - var re = new RegExp ('http%3A//', 'gi') ; - var current_url = current_url.replace(re, 'http://') ; - if((current_url == 'null') || (current_url == "http://")) { - current_url = ""; - exit; +function edInsertContent(myField, myValue) { + //IE support + if (document.selection) { + myField.focus(); + sel = document.selection.createRange(); + sel.text = myValue; + myField.focus(); } - if(bbnumber == 16) { - current_link_text = unescape(prompt("Link text:","link")); - if((current_link_text == null) || (current_link_text == "") || (current_link_text == "link")) { - link_text = 'link'; - } else { - link_text = current_link_text; - } - final_link = '' + current_link_text + ''; - if (final_link != 'null') { - formObj.content.value += final_link; - } + //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) + + myValue + + myField.value.substring(endPos, myField.value.length); + myField.focus(); + myField.selectionStart = startPos + myValue.length; + myField.selectionEnd = startPos + myValue.length; + } else { + myField.value += myValue; + myField.focus(); } - if(bbnumber == 14) { - current_alt = prompt("ALTernate text:","ALT"); - if((current_alt == null) || (current_alt == "") || (current_alt == "ALT")) { - alttag = ' alt=""'; - } else { - alttag = ' alt="' + current_alt + '"'; - } - final_image = ''; - if (final_image != '') { - formObj.content.value += final_image; - } +} + +function edInsertLink(myField, i) { + if (!edCheckOpenTags(i)) { + eval('ed' + i + '.tagStart = \'\''); } -} \ No newline at end of file + edInsertTag(myField, i); +} + +function edInsertImage(myField) { + var myValue = '' + prompt('Enter a description of the image', '') + ''; + edInsertContent(myField, myValue); +} diff --git a/wp-admin/b2quicktags.php b/wp-admin/b2quicktags.php index bf2cc2bac1..f59eb28c29 100644 --- a/wp-admin/b2quicktags.php +++ b/wp-admin/b2quicktags.php @@ -1,24 +1,2 @@ - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file