Updated insert_text and removed some code duplication.


git-svn-id: file:///svn/phpbb/trunk@6504 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Dominik Dröscher 2006-10-16 12:07:51 +00:00
parent c7f9d94b75
commit 1d1e6d4603
3 changed files with 27 additions and 95 deletions

View file

@ -64,32 +64,6 @@ function arraypop(thearray)
return retval; return retval;
} }
/**
* Insert emoticon
*/
function smiley(text)
{
text = ' ' + text + ' ';
if (document.forms[form_name].elements[text_name].createTextRange && document.forms[form_name].elements[text_name].caretPos)
{
var caretPos = document.forms[form_name].elements[text_name].caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
document.forms[form_name].elements[text_name].focus();
}
else
{
var selStart = document.forms[form_name].elements[text_name].selectionStart;
var selEnd = document.forms[form_name].elements[text_name].selectionEnd;
mozWrap(document.forms[form_name].elements[text_name], text, '')
document.forms[form_name].elements[text_name].focus();
document.forms[form_name].elements[text_name].selectionStart = selStart + text.length;
document.forms[form_name].elements[text_name].selectionEnd = selEnd + text.length;
}
}
/** /**
* Apply bbcodes * Apply bbcodes
*/ */
@ -145,25 +119,36 @@ function bbfontstyle(bbopen, bbclose)
/** /**
* Insert text at position * Insert text at position
*/ */
function insert_text(text) function insert_text(text, spaces, popup)
{ {
if (document.forms[form_name].elements[text_name].createTextRange && !isNaN(document.forms[form_name].elements[text_name].caretPos)) var textarea;
{
var caretPos = document.forms[form_name].elements[text_name].caretPos; if (!popup) {
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; textarea = document.forms[form_name].elements[text_name];
} else {
textarea = opener.document.forms[form_name].elements[text_name];
} }
else if (!isNaN(document.forms[form_name].elements[text_name].selectionStart)) if (spaces)
{ {
var selStart = document.forms[form_name].elements[text_name].selectionStart; text = ' ' + text + ' ';
var selEnd = document.forms[form_name].elements[text_name].selectionEnd; }
if (textarea.createTextRange && !isNaN(textarea.caretPos))
{
var caret_pos = textarea.caretPos;
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
}
else if (!isNaN(textarea.selectionStart))
{
var sel_start = textarea.selectionStart;
var sel_end = textarea.selectionEnd;
mozWrap(document.forms[form_name].elements[text_name], text, '') mozWrap(textarea, text, '')
document.forms[form_name].elements[text_name].selectionStart = selStart + text.length; textarea.selectionStart = sel_start + text.length;
document.forms[form_name].elements[text_name].selectionEnd = selEnd + text.length; textarea.selectionEnd = sel_end + text.length;
} }
else else
{ {
document.forms[form_name].elements[text_name].value = document.forms[form_name].elements[text_name].value + text; textarea.value = textarea.value + text;
} }
} }

View file

@ -228,7 +228,7 @@ function checkForm()
<tr> <tr>
<td align="center"> <td align="center">
<!-- BEGIN smiley --> <!-- BEGIN smiley -->
<a href="#" onclick="smiley('{smiley.A_SMILEY_CODE}'); return false;" style="line-height: 20px;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_DESC}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;" style="line-height: 20px;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_DESC}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a>
<!-- END smiley --> <!-- END smiley -->
</td> </td>
</tr> </tr>

View file

@ -4,63 +4,10 @@
<!-- <!--
var form_name = 'post'; var form_name = 'post';
var text_name = 'message';
/**
* Apply clicked smiley to message body
*/
function smiley(text)
{
text = ' ' + text + ' ';
if (opener.document.forms[form_name].message.createTextRange && opener.document.forms[form_name].message.caretPos)
{
var caretPos = opener.document.forms[form_name].message.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
opener.document.forms[form_name].message.focus();
}
else
{
var selStart = opener.document.forms[form_name].message.selectionStart;
var selEnd = opener.document.forms[form_name].message.selectionEnd;
mozWrap(opener.document.forms[form_name].message, text, '')
opener.document.forms[form_name].message.focus();
opener.document.forms[form_name].message.selectionStart = selStart + text.length;
opener.document.forms[form_name].message.selectionEnd = selEnd + text.length;
}
}
/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close)
{
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;
if (selEnd == 1 || selEnd == 2)
{
selEnd = selLength;
}
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
txtarea.selectionStart = selEnd + open.length + close.length;
txtarea.selectionEnd = txtarea.selectionStart;
txtarea.focus();
txtarea.scrollTop = scrollTop;
return;
}
//--> //-->
</script> </script>
<script language="javascript" type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
<table width="100%" cellspacing="1" cellpadding="4" border="0"> <table width="100%" cellspacing="1" cellpadding="4" border="0">
<tr> <tr>
@ -70,7 +17,7 @@ function mozWrap(txtarea, open, close)
<th>{L_SMILIES}</th> <th>{L_SMILIES}</th>
</tr> </tr>
<tr> <tr>
<td class="row1" align="center" valign="middle"><!-- BEGIN smiley --> <a href="#" onclick="smiley('{smiley.A_SMILEY_CODE}'); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_DESC}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <!-- END smiley --><br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td> <td class="row1" align="center" valign="middle"><!-- BEGIN smiley --> <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true, true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_DESC}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <!-- END smiley --><br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td>
</tr> </tr>
</table> </table>
</td> </td>