Forum Webscript.Ru

Общие => Гостевая Webscript.Ru Network => Тема начата: USE от 06 Марта 2003, 13:53:14

Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 13:53:14
http://forums.webscript.ru/showthread.php?s=&postid=2656#post2656 очень хотелось бы так делать. ведь можно подправить тот скрипт. правда старые сообщения останутся в старой форме цитирования, а новые будут нормально...?
Название: Вот если бы цитирование так работало
Отправлено: NAS от 06 Марта 2003, 14:20:49
Как так ?
Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 14:28:44
чтобы в цитате подписывалось кто сказал (когда это уже по вкусу) там по ссылке посмотри...
Название: Вот если бы цитирование так работало
Отправлено: NAS от 06 Марта 2003, 14:34:31
USE
Думал над этим, но не знаю как это реализовать в принципе.
Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 14:45:06
можно сделать так: добавить еще один аргумент в функцию вставки которая вызывается при нажатии на кнопку "цитировать", а тем другим аргументом передавать имя, например.
Название: Вот если бы цитирование так работало
Отправлено: NAS от 06 Марта 2003, 15:17:04
А как это имя попадет туда ? Откуда функция узнает, что текст конкретного пользователя ?
Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 16:00:43
есть две функции, одна для вставки имени: 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 от 06 Марта 2003, 16:06:17
пхп исходников форума у меня нет. надо посмотреть функции вывода сообщений там где создаются ссылки править и цитировать. и также ссылка на имя и скомбинировать...
Название: Вот если бы цитирование так работало
Отправлено: NAS от 06 Марта 2003, 16:07:34
А дело в том, что сейчас  можно выделить в одном посте, а нажать цитировать в другом, тогда имя подставится другое. И будет еще большая путаница.

А вообще попробовать мона. Завтра попробую.
Название: Вот если бы цитирование так работало
Отправлено: NAS от 06 Марта 2003, 16:09:20
USE
ПХП не придется трогать. Попробую завтра.
Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 16:10:27
а сделай так, чтобы процитировать какого-то пользователя нажимать слово "цитировать" под его сообщением, а сообщение "Для того, чтобы вставить цитату с этой страницы, выделите её и нажмите здесь" замени на "Для того чтобы процитировать пользователя - выделите его текст и нажмите кнопку цитировать под сообщением" :)
Название: Вот если бы цитирование так работало
Отправлено: USE от 06 Марта 2003, 16:26:00
Цитировать
ПХП не придется трогать

вот я и говорю, что нету исходников форума ;)
Название: Вот если бы цитирование так работало
Отправлено: NAS от 07 Марта 2003, 14:01:42
Что-то не получается. Вызов
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;
}
Название: Вот если бы цитирование так работало
Отправлено: USE от 07 Марта 2003, 14:12:23
я для своего форума когда-то переделывал эти функции, у меня вот что получилось, правда я вставлял не имя пользователя, а его идентификатор, чтобы можно было менять имена пользователям, и соответственно обращения по имени менялись бы нормально, а не так как на других форумах, либо не меняй имя, либо говори всем как тебя раньше навали ;)

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;
}

может быть имя надо брать в кавычки?
Название: Вот если бы цитирование так работало
Отправлено: USE от 07 Марта 2003, 14:13:49
если не помогут кавычки, тогда может надо аргументы местами поменять :-/
Название: Вот если бы цитирование так работало
Отправлено: USE от 07 Марта 2003, 14:14:54
javascript:ins(\'USE\') аналогично надо javascript:Insert(\'USE\', selection), наверное...
Название: Вот если бы цитирование так работало
Отправлено: NAS от 07 Марта 2003, 14:19:11
Вообщем я сам до кавычек до пер :)
Название: Вот если бы цитирование так работало
Отправлено: NAS от 07 Марта 2003, 14:20:51
Цитировать
USE:
javascript:ins(\'USE\') аналогично надо javascript:Insert(\'USE\', selection), наверное..


Совершенно верно.
Название: Вот если бы цитирование так работало
Отправлено: NAS от 07 Марта 2003, 14:26:12
Вроде готово. Пользуйтесь.
Название: Вот если бы цитирование так работало
Отправлено: USE от 07 Марта 2003, 16:15:07
Цитировать
NAS:
Вроде готово. Пользуйтесь.

Это прекрасно, будем пользоваться на всю катушку :)
Кстати, а можно ли имя на этом форуме поменять безболезненно?
Название: Вот если бы цитирование так работало
Отправлено: NAS от 07 Марта 2003, 16:57:20
Цитировать
USE:
Кстати, а можно ли имя на этом форуме поменять безболезненно?

Только личное письмо мне, с адреса,  с которого регистрировался в форуме.