Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Цитирование

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хотелось бы сделать у себя на форуме такое же цитирование, как и на форуме ru-board.
Т.е чиоб при нажатии на кнопочку "цитировать" цитировался выделенный кусок сообщения, а не все сообщение. Не подскажете, где что подкрутить или какой-нибудь хак посоветуйте....

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 14:25 19-05-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KOHb2002
у тебя какая IB-то?
по-моему стандартно так и должно работать (как ты хочешь).
если че, пробегись.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 15:24 19-05-2003
KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
у тебя какая IB-то?  

Взятая из файлого архива ru.board.

Цитата:
по-моему стандартно так и должно работать (как ты хочешь).  

В том-то и дело, что нет.  Если выдеяешь кусок сообщения и нажимаешь "цитировать", то все-равно цитируется все сообщение.

Цитата:
если че, пробегись.

Пробежался, спасибо. Узнал кое-что новое и интересное.... но решения своей проблемы не нашел...  

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 15:58 19-05-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KOHb2002

Цитата:
Хотелось бы сделать у себя на форуме такое же цитирование, как и на форуме ru-board. Т.е чиоб при нажатии на кнопочку "цитировать" цитировался выделенный кусок сообщения, а не все сообщение.

 

Цитата:
Если выдеяешь кусок сообщения и нажимаешь "цитировать", то все-равно цитируется все сообщение.  

 
А там и так это есть, только надо жать не ту "Цитировать", что вверху постинга, а ту, ссылку, что слева от поля для ответа:

Цитата:
Для вставки цитаты, выделите её  
и нажмите эту ссылку
 

 

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 20:09 19-05-2003
KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А там и так это есть, только надо жать не ту "Цитировать", что вверху постинга, а ту, ссылку, что слева от поля для ответа.

А мне-то надо как раз ту, которая вверху постинга. Не подскажешь, как это сделать?

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 23:03 19-05-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KOHb2002
делаешь ссылку:  

Код:
<a href="javascript:pasteQ();">Цитировать</a>


----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 23:41 19-05-2003
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xntx
ага, щас...
 
KOHb2002
меняешь в топик.цги ссылку на  

Код:
<a href="VBScript:paste2(document.selection.createRange().Text)">Цитата</a>


----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 01:02 20-05-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Grey2002

Цитата:
ага, щас...  
 
KOHb2002  
меняешь в топик.цги ссылку на  
 
Код:
<a href="VBScript:paste2(document.selection.createRange().Text)">Цитата</a>  

 
ага... щас...
 
KOHb2002
Вот всё в подробностях:
http://forum.ru-board.com/topic.cgi?forum=13&topic=0864#1
 

 


----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 02:52 20-05-2003
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Svarga
ну это если как здесь. Я про дефолтную.

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 08:35 20-05-2003
KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
KOHb2002  
меняешь в топик.цги ссылку на  
Код:<a href="VBScript:paste2(document.selection.createRange().Text)">Цитата</a>  

Хммм.... а какой код на этот надо заменить?
 
 
Добавлено
Вроде сделал.....
Всем спасибо за советы.

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 14:40 20-05-2003
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KOHb2002

Код:
 
$replygraphic = qq~| <a href="$postprog?action=replyquote&forum=$inforum&topic=$intopic&postno=$editpostnumber">Цитата</a>~;
 

 
 
Добавлено
одновременно запостили

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 15:27 20-05-2003
KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Блин, в Опере 7.03 не работает...
Че делать?

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 15:33 20-05-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KOHb2002
 
Полностью переписывать скрипт цитирования на javascript, бо в опере vbscript не канает.
 
 
Добавлено
Вот же: http://forum.ru-board.com/topic.cgi?forum=13&topic=0864#1 полностью рабочее решение.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 20:41 20-05-2003
KOHb2002



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Вот же: http://forum.ru-board.com/topic.cgi?forum=13&topic=0864#1  полностью рабочее решение.  

А не подскажешь, что куда вставлять, а то я в Java ни бум-бум.  
Заранее спасибо.

Всего записей: 117 | Зарегистр. 31-03-2003 | Отправлено: 12:04 21-05-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
# 1.  
В корневой директории сайта создаём файл scripts.js и помещаем в него следующий код:

Код:
var txt=''  
var d=document
function copyQ(){  
txt=''
if(d.getSelection){txt=d.getSelection()}  
else if (d.selection){txt=d.selection.createRange().text}  
txt='[q]'+txt+'[/q]\n'}  
function pasteQ(){d.mt.inpost.value += txt}  
if(d.selection||d.getSelection){Q=true}else{var Q=false}

 
# 2.
В файле topic.cgi:
 
# 2.1
находим такой код:

Код:
           if ($text_menu ne "yes"){$replygraphic = qq~<a href="$postprog?action=replyquote&forum=$inforum&topic=$intopic&postno=$editpostnumber"><img src="$imagesurl/images/$reply" border=0></a>~;}
           else{$replygraphic = qq~| <a href="$postprog?action=replyquote&forum=$inforum&topic=$intopic&postno=$editpostnumber">Цитата</a>~;}

заменяем его на:

Код:
           if ($text_menu ne "yes"){$replygraphic = qq~<a title="Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда"  onmouseover="copyQ()" href="javascript:pasteQ()"><img src="$imagesurl/images/$reply" border=0></a>~;}
           else{$replygraphic = qq~| <a title="Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда"  onmouseover="copyQ()" href="javascript:pasteQ()">Цитата</a>~;}

     
# 2.2
находим такой код:    

Код:
<SCRIPT language=JavaScript>  
if (navigator.appVersion.indexOf("MSIE")!= -1) document.writeln("Для вставки цитаты, выделите её и <a href='VBScript:paste2(document.selection.createRange().Text)'>нажмите эту ссылку</a><br></span>")  
</SCRIPT>

заменяем его на:

Код:
<script>if(Q)document.write('Для вставки цитаты, выделите её и <a onmouseover="copyQ()" href="javascript:pasteQ()">нажмите эту ссылку</a>.')</script>

 
# 3.
В файле data/template.dat находим
</head>
и вставляем перед ним следующее:
<script src=/scripts.js></script>
 

 
Всё.

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 03:26 25-05-2003 | Исправлено: Svarga, 19:04 18-10-2003
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
У меня тут вопросик возник по поводу твоего поста в помощи ру-борду:
http://forum.ru-board.com/topic.cgi?forum=13&topic=0864&start=20
ты там показывал как вставлять текст на место курсора
 
Скажи пожалуйста, а как обрамлять выделенный в текстАреа текст тэгами?
 
Ну типа редактора. Виделил текст, нажал кнопку В и текст выделился жырным.
я написал в pasteQ():
d.selection.clear()
но чего-то не пашет
 
Добавлено
И еще, после вставки текста на место курсора сам курсор перемещается в конец ТекстАреи. Если в нем много текста то это не очень приятно
Как возвращать курсор на место?

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 11:10 15-10-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nazarius

Цитата:
Скажи пожалуйста, а как обрамлять выделенный в текстАреа текст тэгами?  

Сорри, более подробнее пока ответить не могу...
Копай в сторону createTextRange... Само собой, только под ИЕ будет работать всё это...
 
Если малость отсроченный ответ устроит-- покопаюсь днями-- напишу что-нибудь...

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 17:49 20-10-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nazarius
Блин... В офлайне пытался вспомнить, что тебе именно надо было (в интернет тогда не было возможности вылезти)-- толком так и не вспомнил , поэтому доделал с горя то, о чём шла речь в теме про цитирование в "Помощи по Ру-Борд"...
Сорри, твоё сегодня-завтра попытаюсь сделать...
 


Итак,
Вставка цитаты на javascript + возможность вставлять ник и цитату в то место, где находится курсор (последнее только для MSIE 5.5+)



Цитата:
  1. Находим в topic.cgi такой код:

    Код:
     
    <SCRIPT language=Javascript>
    function paste(name){
    var input=document.mt.elements[7];
    input.value=input.value+"[b]"+name+"[/b]$rt";
    }
    function paste2(name){
    var input=document.mt.elements[7]
    if (name!="") input.value=input.value+"[quote]"+name+"[/quote]$rt"
    }
    </SCRIPT>
     

    Убиваем его напрочь.
     
  2. Дальше находим такое:

    Код:
    <td bgcolor=$miscbackone valign=middle><textarea cols=60 rows=6 wrap="soft" name="inpost">$inpost</textarea>

     
    и заменяем его на

    Код:
    <td bgcolor=$miscbackone valign=middle><textarea cols=60 rows=6 wrap="soft" name="inpost" onBeforeDeactivate="vbscript:curPos()">$inpost</textarea>
    </td>

     
  3. Создаём в корне сайта файл scripts.js
    И вставляем в него следующий код:

    Код:
    var txt=''
    var d=document
    pos= -1
    if(d.selection||d.getSelection){Q=true}else{var Q=false}
     
     
    function curPos(){
    var bk=d.mt.inpost.value
    if (bk!='') {document.selection.createRange().text='¬¬';
    pos = d.mt.inpost.value.search('¬¬');
    d.mt.inpost.value=bk}
    }
     
    function copyQ() {
    txt=''
    if (d.getSelection) {txt=d.getSelection()}
    else if (d.selection) {txt=d.selection.createRange().text;}
    txt='[q]'+txt+'[/q]\n'}
     
    function pasteQ() {
    if (pos!= -1) {var val=d.mt.inpost.value
    d.mt.inpost.value =val.substring(0,pos)+ '\n'+txt+'\n'+val.substring(pos,val.length)
    pos +=txt.length-2}
    else {d.mt.inpost.value  += txt}
    }
     
    function paste(N){
    var val=d.mt.inpost.value
    N="[b]"+N+"[/b]"
    if(pos!= -1)
    {d.mt.inpost.value =val.substring(0,pos)+N+val.substring(pos,val.length)
    pos +=N.length}
    else{d.mt.inpost.value += N}
    }
     

    /

    А дальше, как описывалось выше:

  4. Заменяем в topic.cgi такой кусок кода:

    Код:
    if ($text_menu ne "yes"){$replygraphic = qq~<a href="$postprog?action=replyquote&forum=$inforum&topic=$intopic&postno=$editpostnumber"><img src="$imagesurl/images/$reply" border=0></a>~;}  
               else{$replygraphic = qq~| <a href="$postprog?action=replyquote&forum=$inforum&topic=$intopic&postno=$editpostnumber">Цитата</a>~;}  

    на сие:

    Код:
     if ($text_menu ne "yes"){$replygraphic = qq~<a title="Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда"  onmouseover="copyQ()" href="javascript:pasteQ()"><img src="$imagesurl/images/$reply" border=0></a>~;}
               else{$replygraphic = qq~| <a title="Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда"  onmouseover="copyQ()" href="javascript:pasteQ()">Цитата</a>~;}

     
  5. и такой кусок:

    Код:
    <SCRIPT language=JavaScript>  
    if (navigator.appVersion.indexOf("MSIE")!= -1) document.writeln("Для вставки цитаты, выделите её и <a href='VBScript:paste2(document.selection.createRange().Text)'>нажмите эту ссылку</a><br></span>")  
    </SCRIPT>  

    заменяем на такой:

    Код:
    <script>if(Q)document.write('Для вставки цитаты, выделите её и <a onmouseover="copyQ()" href="javascript:pasteQ()">нажмите эту ссылку</a>.')</script>

     
  6. В template.dat где-нибудь внутри тэга <head></head> вставляем:

    Код:
    <script src=/scripts.js></script>

 
Собссно, и всё...


----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 09:54 22-10-2003 | Исправлено: Svarga, 09:59 22-10-2003
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
Ты меня немного не понял, ну да ладно, я уже сам чевой-то придумал
Я имел ввиду обрамлять тэгами текст из ТекстАреи, то есть выделил в ТекстАреи текст, нажал кнопочку и этот текст стал с тэгами.
Ну, короче, я справился с этим, но как я уже писал выше
 

Цитата:
И еще, после вставки текста на место курсора сам курсор перемещается в конец ТекстАреи. Если в нем много текста то это не очень приятно  

 
Может это через
d.nedit.subj.value=bk ???
 
Что скажеш?
 

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 12:50 22-10-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nazarius

Цитата:
Ты меня немного не понял, ну да ладно, я уже сам чевой-то придумал  

да понял я тебя , я ж в начале поста написал:

Цитата:
Блин... В офлайне пытался вспомнить, что тебе именно надо было (в интернет тогда не было возможности вылезти)-- толком так и не вспомнил , поэтому доделал с горя то, о чём шла речь в теме про цитирование в "Помощи по Ру-Борд"...  
Сорри, твоё сегодня-завтра попытаюсь сделать...  

%)))
 
 
Что-то начал делать, но текущие Жуткие Глюки в MSIE 5 пугают
Не знаю, доделаю ли...
Смотри, что есть:

Код:
function curPos(){
var bk=d.mt.inpost.value
txt=d.selection.createRange().text
len=txt.length
if (bk!='') {document.selection.createRange().text='¬¬';
pos = d.mt.inpost.value.search('¬¬');
d.mt.inpost.value=bk
}
}

 

Код:
 
var len=0
function tagIt(TAG,ATR)
{
var tmp=''
if(ATR){ATR='='+ATR}else{var ATR=''}
txt='['+TAG+ATR+']'+txt+'[/'+TAG+']'
alert(txt)
var val=d.mt.inpost.value
d.mt.inpost.value =val.substring(0,pos)+ txt+val.substring(pos,val.length)
pos +=txt.length-2
}

 
 
 

Код:
<nobr><a href="javascript:tagIt('b')"><B>Ж</B></a>&nbsp;<a href="javascript:tagIt('b')"><i>К</i></a>&nbsp;<a href="javascript:tagIt(font,prompt('Выберите шрифт','Courier,mono,Courier New'))"><font face="Courier,mono,Courier New">Шрифт</font></a></nobr><br><textarea cols=60 rows=6 wrap="soft" name="inpost" onMouseOut="vbscript:curPos()">$inpost</textarea>

 
В Эксплорере чёрти что происходит с этими вещами-- полезу, вообщем перекапывать вглубь и вширь майкрософтовское творение TextRange
 
А курсор, кстати, по-моему нельзя ставить внутри textarea: просто можно запомнить его положение и этим пользоваться для обработки текста...
 
Добавлено

Цитата:
А курсор, кстати, по-моему нельзя ставить внутри textarea

в смісле віставлять его позицию внутри текста, набранного в textarea...

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 15:38 22-10-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Цитирование


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru