Forum Webscript.Ru
Общие => Гостевая Webscript.Ru Network => Тема начата: USE от 06 Марта 2003, 13:53:14
-
http://forums.webscript.ru/showthread.php?s=&postid=2656#post2656 очень хотелось бы так делать. ведь можно подправить тот скрипт. правда старые сообщения останутся в старой форме цитирования, а новые будут нормально...?
-
Как так ?
-
чтобы в цитате подписывалось кто сказал (когда это уже по вкусу) там по ссылке посмотри...
-
USE
Думал над этим, но не знаю как это реализовать в принципе.
-
можно сделать так: добавить еще один аргумент в функцию вставки которая вызывается при нажатии на кнопку "цитировать", а тем другим аргументом передавать имя, например.
-
А как это имя попадет туда ? Откуда функция узнает, что текст конкретного пользователя ?
-
есть две функции, одна для вставки имени: javascript:ins(\'NAS\'), а другая для вставки выделеного фрагмента: javascript:Insert(selection)
так почему же не переделать javascript:Insert(\'NAS\',selection) тогда и вставлятся будет так как надо..., правда тут придется править исходники форума немного.
function Insert(text){
if (text!="") paste("[quote!]"+text+"[/quote]\\n", 0);
}
сделать, что-то вроде:
function Insert(member, text){
if (text!="") paste("[quote!]"+member+"
"+text+"[/quote]\\n", 0);
}
эти функции в lib.js лежат. что-то в этом роде надо модифицировать. я в js не силен, может кто-то более компетентный сможет более продуктивное решение посоветовать.
правда вызов функций Insert(\'NAS\',selection) надо будет переделать в пхп-шных скриптах, чтобы так прописывалось а не Insert(selection)
p.s. вместо NAS можно ставить имя соответствующего пользователя ;)
-
пхп исходников форума у меня нет. надо посмотреть функции вывода сообщений там где создаются ссылки править и цитировать. и также ссылка на имя и скомбинировать...
-
А дело в том, что сейчас можно выделить в одном посте, а нажать цитировать в другом, тогда имя подставится другое. И будет еще большая путаница.
А вообще попробовать мона. Завтра попробую.
-
USE
ПХП не придется трогать. Попробую завтра.
-
а сделай так, чтобы процитировать какого-то пользователя нажимать слово "цитировать" под его сообщением, а сообщение "Для того, чтобы вставить цитату с этой страницы, выделите её и нажмите здесь" замени на "Для того чтобы процитировать пользователя - выделите его текст и нажмите кнопку цитировать под сообщением" :)
-
ПХП не придется трогать
вот я и говорю, что нету исходников форума ;)
-
Что-то не получается. Вызов
Insert (NAS, selection)
Сами функции
function Insert(name, text){
if (text!="") paste("quote]"+name+":
"+text+"[/quote]\\n", 0);
}
function paste(text, flag){
if ((document.selection)&&(flag)) {
document.vbform.message.focus();
document.vbform.document.selection.createRange().text = text;
} else document.vbform.message.value += text;
}
function get_selection() {
if (document.getSelection){
selection = document.getSelection();
selection = selection.replace(/\\r\\n\\r\\n/gi, "_doublecaret_");
selection = selection.replace(/\\r\\n/gi, " ");
while (selection.indexOf(" ") !=-1) selection = selection.replace(/ /gi, "");
selection = selection.replace(/_doublecaret_/gi, "\\r\\n\\r\\n");
} else
selection = document.selection.createRange().text;
}
-
я для своего форума когда-то переделывал эти функции, у меня вот что получилось, правда я вставлял не имя пользователя, а его идентификатор, чтобы можно было менять имена пользователям, и соответственно обращения по имени менялись бы нормально, а не так как на других форумах, либо не меняй имя, либо говори всем как тебя раньше навали ;)
function ins(member_id){
var input=document.post.message;
input.value=input.value+"[name="+member_id+"]"+" ";
}
function Insert(text,member){
if (text!="") paste("[quote=""+member+""]"+text+"[/quote]\\n", 0);
}
function paste(text, flag){
if ((document.selection)&&(flag)) {
document.post.message.focus();
document.post.document.selection.createRange().text = text;
} else document.post.message.value += text;
}
function get_selection() {
if (document.getSelection){
selection = document.getSelection();
selection = selection.replace(/\\r\\n\\r\\n/gi, "_doublecaret_");
selection = selection.replace(/\\r\\n/gi, " ");
while (selection.indexOf(" ") !=-1) selection = selection.replace(/ /gi, "");
selection = selection.replace(/_doublecaret_/gi, "\\r\\n\\r\\n");
} else
selection = document.selection.createRange().text;
}
может быть имя надо брать в кавычки?
-
если не помогут кавычки, тогда может надо аргументы местами поменять :-/
-
javascript:ins(\'USE\') аналогично надо javascript:Insert(\'USE\', selection), наверное...
-
Вообщем я сам до кавычек до пер :)
-
USE:
javascript:ins(\'USE\') аналогично надо javascript:Insert(\'USE\', selection), наверное..
Совершенно верно.
-
Вроде готово. Пользуйтесь.
-
NAS:
Вроде готово. Пользуйтесь.
Это прекрасно, будем пользоваться на всю катушку :)
Кстати, а можно ли имя на этом форуме поменять безболезненно?
-
USE:
Кстати, а можно ли имя на этом форуме поменять безболезненно?
Только личное письмо мне, с адреса, с которого регистрировался в форуме.