Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Небольшая примочка для Mozilla 1.3+

Форум для авторов модов для phpBB 2.0.x.
atrus

Небольшая примочка для Mozilla 1.3+

Сообщение atrus »

Не секрет, что удобное добавление смайликов (по месту курсора), реализованное для IE, не работает в Mozilla based броузерах. А между тем, это возможно начиная с версии 1.3.

Код: Выделить всё

#
#-----[ OPEN ]-----
#

templates/subSilver/posting_body.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 
# Эта строка дожна быть в функции emoticon
#

		txtarea.value  += text;

#
#-----[ REPLACE WITH ]---------------------------------------- 
#

		if (is_nav && document.getElementById) {
		    mozWrap(txtarea, '', text);
		} else {
			txtarea.value  += text;
		       }

#
#-----[ OPEN ]-----
#
templates/subSilver/posting_smilies.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 
<script language="javascript" type="text/javascript">
<!--

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	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;
	return;
}

# 
#-----[ FIND ]------------------------------------------ 
# 
# Эта строка дожна быть в функции emoticon
#

	opener.document.forms['post'].message.value  += text;

#
#-----[ REPLACE WITH ]---------------------------------------- 
#

		if (is_nav && document.getElementById) {
		    mozWrap(opener.document.forms['post'].message, '', text);
		} else {
			opener.document.forms['post'].message.value  += text;
		       }

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
Если у вас установлен extended quick reply, то потребуется ещё и вот это:

Код: Выделить всё

#
#-----[ OPEN ]-----
#
templates/subSilver/quick_reply.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 
# Эта строка дожна быть в функции emoticon
#

		txtarea.value  += text;

#
#-----[ REPLACE WITH ]---------------------------------------- 
#
		if (is_nav && document.getElementById) {
		    mozWrap(txtarea, '', text);
		} else {
			txtarea.value  += text;
		       }

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
Вот. Если кто заинтересуется кто, то интересует и мнение, ибо в php и JavaScript я новичёк... :roll:

Вернуться в «Для авторов (phpBB 2.0.x)»