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

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

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

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

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

Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Shurik хотя интересно, у хобота если выделить текст и нажать какую нить кнопулю, то выскочит окшко, а апосля новый текст падает аккурат именно туда где было выделено


----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 15:46 27-07-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw
Там можно выибрать через меню.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 17:25 27-07-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
значит оттуда и стыбзим, лол
 
все, ушел тыбзить...... скоро будет.

----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 17:07 28-07-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw
Я со своим почти отсутствующим знанием JS птался - по нулям.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:24 28-07-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ausw
ждем!..


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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 10:21 29-07-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ну скажем я сбацал
правда... ээ... будут любители кячять права.

----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 08:16 02-08-2002 | Исправлено: Ausw, 15:08 02-08-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ausw
сбацал-то сбацал.
осталось дело за малым - выложить.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 13:53 02-08-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw
А, забей на MN'а и выкладывай...
Будут качать права - уберёшь. лол
Тока напиши типа оригинал бай МэНэ сс хобота. лол
И фотку ту приложи, помнишь я тебе давал?

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 13:13 04-08-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Значится так.
делаем post.js  с вот таким содержанием.
 

Код:
 
 
var mode  = 3
var codes_array = new Array();
 
 
codes_array[0]  = new Array("b","Тег [b] - полужирное начертание шрифта.");
codes_array[1]  = new Array("i","Тег [i] - курсив, наклонное начертание шрифта.");
codes_array[2]  = new Array("u","Тег [u] - подчеркнутое начертание шрифта.");
codes_array[3]  = new Array("s","Тег [s] - мелкий шрифт.");
codes_array[4]  = new Array("sup","Тег [sup] - верхний регистр.");
codes_array[5]  = new Array("sub","Тег [sub] - нижний регистр.");
codes_array[6]  = new Array("list=1","Тег [list=1] - нумерованный список.");
codes_array[7]  = new Array("list","Тег [list] - маркированный список.");
codes_array[8]  = new Array("url","Тег [url] - ссылка.", 1);
codes_array[9]  = new Array("img","Тег [img] - рисунок.");
 
function insertcodes1(show_always){
 
document.writeln('<td>')
 
if (navigator.userAgent.indexOf("Opera") == -1)  document.writeln('<select name="select" onChange="mode=this.options[this.selectedIndex].value"><option value="1">показать справку<option value="3" selected>Расширенный режим<option value="2">Обычный режим</select>')
             
document.writeln('</td><td>')
document.writeln('<map name="codes">')
 
document.writeln('<area shape="rect" coords="0,0,19,19  " href="javascript:c1(0 )" alt="'+codes_array[0 ][1]+'">')
document.writeln('<area shape="rect" coords="20,0,39,19  " href="javascript:c1(1 )" alt="'+codes_array[1 ][1]+'">')
document.writeln('<area shape="rect" coords="40,0,59,19  " href="javascript:c1(2 )" alt="'+codes_array[2 ][1]+'">')
document.writeln('<area shape="rect" coords="60,0,69,19  " href="javascript:c1(3 )" alt="'+codes_array[3 ][1]+'">')
document.writeln('<area shape="rect" coords="80,0,99,19 " href="javascript:c1(4 )" alt="'+codes_array[4 ][1]+'">')
document.writeln('<area shape="rect" coords="100,0,119,19" href="javascript:c1(5 )" alt="'+codes_array[5 ][1]+'">')
document.writeln('<area shape="rect" coords="120,0,139,19" href="javascript:c1(6 )" alt="'+codes_array[6 ][1]+'">')
document.writeln('<area shape="rect" coords="140,0,159,19" href="javascript:c1(7 )" alt="'+codes_array[7 ][1]+'">')
document.writeln('<area shape="rect" coords="160,0,179,19" href="javascript:c1(8 )" alt="'+codes_array[8 ][1]+'">')
document.writeln('<area shape="rect" coords="180,0,199,19" href="javascript:c1(9 )" alt="'+codes_array[9 ][1]+'">')
 
document.writeln('</map>')
 
if (navigator.userAgent.indexOf("Opera") == -1)  document.writeln('<a href="javascript:p2(selection)" onMouseDown="get_selection()"><img border=0 src="http://server/ikonboard/quoter.gif" alt="Выдели мышкой - вставь цитату"></a>')
if (navigator.userAgent.indexOf("Opera") == -1)  document.writeln('<img border=0 src="http://server/ikonboard/codemap.gif" usemap="#codes">')
document.writeln('</td>')
 
 
 
}
 
 
 
function p3(text){  
if (text!="") paste(text, 1)
}
 
function p4(text1, text2){  
if ((document.selection)) {
document.mt.inpost.focus()
document.mt.document.selection.createRange().text = text1+document.mt.document.selection.createRange().text+text2
} else document.mt.inpost.value += text1+text2
}
 
function c1(num) {
line1 = "["+codes_array[num][0]+"]"
line2 = "[/"+codes_array[num][0]+"]"
if (num==18) {
line1 = "[table][tr][td]"
line2 = "[/td][/tr][/table]"
}
if (num==20) line2 = ""
if (mode==1) alert(codes_array[num][1])
else if (mode==3) p4(line1, line2)
else {
if (codes_array[num][2] == null) p3(line1)
else if (codes_array[num][3] == null) {
txt=prompt(codes_array[num][2],"")
if (txt!=null) p3(line1+txt+line2)
} else {
txt2=prompt(codes_array[num][3],"")
if (txt2!=null) {
txt=prompt(codes_array[num][2],"")
if (txt!=null) {
if (txt2=="") p3(line1+txt+line2)  
else if (codes_array[num][4] != null) p3("["+codes_array[num][0]+"="+txt+"]"+txt2+"[/"+codes_array[num][0]+"]")
else p3("["+codes_array[num][0]+"="+txt2+"]"+txt+"[/"+codes_array[num][0]+"]")
}
}
}
}
}
 
function c2(num) {
if (num == 11) line1 = "[list=1]"  
    else line1 = "[list][*]"
line2 = "\n[/list]"
 
if (mode==1) alert(codes_array[num][1])
else if (mode==3) p4(line1+"[*]", line2)
else {
txt="1"
list=""
while ((txt!="") && (txt!=null)) {
txt=prompt(codes_array[num][2],"")
if (txt!="") list+="[*]"+txt+"\r"
if (txt==null) return  
}  
p3(line1+list+"[/list]")
}
}
 
function insert_quote(){
if (navigator.userAgent.indexOf("Opera") == -1) document.writeln('<br><br><a class=small3 href="javascript:p2(selection)" onMouseDown="get_selection()">выдели мышкой - <br>вставь цитату</a>')
}
 
 
 
 
 
 
 
 
 
 
function p1(text){  
if (text!="") paste("[b]"+text+"[/b]\n", 1);
}
 
function p2(text){  
if (text!="") paste("[q]"+text+"[/q]\n", 0);
}
 
function paste(text, flag){  
if ((document.selection)&&(flag)) {
document.mt.inpost.focus();
document.mt.document.selection.createRange().text = text;
} else document.mt.inpost.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;
}
 
 

 
обратите внимание на  строчку http://server/ - эт надо будет сменить на свои, то, где располагается картинка.
само файло post.js расположить в папке /ikonboard/ и в шаблоне написать

Код:
<SCRIPT language=Javascript src="http://server/ikonboard/post.js"></SCRIPT>

картинки я замутил, можно взять прямо отсюда
     
 
значится, теперь за дело в topic.cgi.
я вынес к чертям тот скрипт, который делает цитирование и клик по нику, теперя это в том post.js все делается, намного проще и легче не нужно грузить в топике эти фичи кликанья.
за сим надо будет просто удалить из 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>  

 
и сменить ссылу, что делает клик по нику на вот такой вид

Код:
<a href="javascript:p1('$mname')"><b>$membername</b></a>

 
ссылу "выделите и кликните тут" - тоже поменять вот так

Код:
<a href='javascript:p2(selection)' onMouseDown='get_selection()'>нажмите эту ссылку</a>

 
теперь всунем сам скрипт сей фичи в topic.cgi
я разместил после имени и паролей, вобщем после </tr>ов всяких.
и выглядит это вот так

Код:
               
</tr><tr>  
<SCRIPT language=JavaScript>insertcodes1();</SCRIPT>
</tr><tr>

 
вроди нече не забыл.  
ах ну да, copyleft типа на месте  =))  
кто не протестирует тот не пьет пиво.
 
 
 
 
 
 


----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 17:28 11-08-2002 | Исправлено: Ausw, 17:30 11-08-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я бы себе прикрутил, но меня потом сожрут, типа плагиат...

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 20:18 11-08-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexander Ipp да забей ты лол.  
кстати. слови фичу.
 

Цитата:
SCRIPT language=JavaScript>insertcodes1();</SCRIPT>  

 
эта строчка вставляет фичу
а с ней и кучу tr, td, img

Цитата:
document.writeln('<td>')  
document.writeln('</td><td>')  
[q]document.writeln('</map>')  
 

 
ниче не наводит на мысль ?  
мол нафига таскать всю тяжесть-ересь в сги-шке, коли можно пихнуть в кешируемый файл-скрипт ?  
 
 


----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 20:28 11-08-2002
alexei



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

Цитата:
мол нафига таскать всю тяжесть-ересь в сги-шке, коли можно пихнуть в кешируемый файл-скрипт ?  

Возможно

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 21:39 11-08-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw
Ты прав кстати...

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 22:09 11-08-2002
quasar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
странно. в topic.cgi - все работает. если вставить  <SCRIPT language=JavaScript>insertcodes1();</SCRIPT>  в postings.cgi - для того, чтобы такая же штука была при редактировании сообщений - то, кнопки отображаются, но не работают. В чем причина? В template я путь к скрипту прописал.

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 02:05 12-08-2002
quasar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw
не поможешь?

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 18:54 12-08-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quasar
Там название формы сменить надо.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 18:58 12-08-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
quasar
там просто название формы имхо другое...

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

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 18:59 12-08-2002
quasar



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

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 23:11 12-08-2002
Wozik



Ёж
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да, полезный топик, особенно в совокупности с этим (чтоб цитата в опере работала)
 
правда главная фишка (вставка кодов вокруг выделенного текста) в опере не работает, но зато урезать нафик ненужные кнопки полезно
 
осталось одно НО:
некоторые коды типо subscript/superscript м 2.1.9 fixed 3 не поддерживаются, как их поддержку вернуть?
фпринципе то вполне необходимые фишки :Р

Всего записей: 589 | Зарегистр. 02-01-2003 | Отправлено: 19:32 20-08-2004
Wozik



Ёж
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такс, посидел вечерок, помучал друзей вопросами, вышло вот как:

Код:
clckcnt = 0;
var mode  = 3  
var codes_array = new Array();  
var f="PostTopic";
 
codes_array[0]  = new Array("b","Тег - полужирное начертание шрифта.");  
codes_array[1]  = new Array("i","Тег [i] - курсив, наклонное начертание шрифта.");  
codes_array[2]  = new Array("u","Тег [u] - подчеркнутое начертание шрифта.");  
codes_array[3]  = new Array("s","Тег [s] - мелкий шрифт.");  
codes_array[4]  = new Array("sup","Тег [sup] - верхний регистр.");  
codes_array[5]  = new Array("sub","Тег [sub] - нижний регистр.");  
codes_array[6]  = new Array("list=1","Тег
    - нумерованный список.");  
    codes_array[7]  = new Array("list","Тег
      - маркированный список.");  
      codes_array[8]  = new Array("url","Тег [url] - ссылка.", 1);  
      codes_array[9]  = new Array("img","Тег [img] - рисунок.");  
       
      function f23(ff){
      f=ff;}
       
      function insertcodes1(){
      document.writeln('<select name="select" onChange="mode=this.options[this.selectedIndex].value"><option value="1">показать справку<option value="3" selected>Расширенный режим<option value="2">Обычный режим</select>')                
      document.writeln('<map name="codes">')  
      document.writeln('<area shape="rect" coords="0,0,19,19  " href="javascript:c1(0 )" alt="'+codes_array[0 ][1]+'">')  
      document.writeln('<area shape="rect" coords="20,0,39,19  " href="javascript:c1(1 )" alt="'+codes_array[1 ][1]+'">')  
      document.writeln('<area shape="rect" coords="40,0,59,19  " href="javascript:c1(2 )" alt="'+codes_array[2 ][1]+'">')  
      document.writeln('<area shape="rect" coords="60,0,69,19  " href="javascript:c1(3 )" alt="'+codes_array[3 ][1]+'">')  
      document.writeln('<area shape="rect" coords="80,0,99,19 " href="javascript:c1(4 )" alt="'+codes_array[4 ][1]+'">')  
      document.writeln('<area shape="rect" coords="100,0,119,19" href="javascript:c1(5 )" alt="'+codes_array[5 ][1]+'">')  
      document.writeln('<area shape="rect" coords="120,0,139,19" href="javascript:c1(6 )" alt="'+codes_array[6 ][1]+'">')  
      document.writeln('<area shape="rect" coords="140,0,159,19" href="javascript:c1(7 )" alt="'+codes_array[7 ][1]+'">')  
      document.writeln('<area shape="rect" coords="160,0,179,19" href="javascript:c1(8 )" alt="'+codes_array[8 ][1]+'">')  
      document.writeln('<area shape="rect" coords="180,0,199,19" href="javascript:c1(9 )" alt="'+codes_array[9 ][1]+'">')  
       
      document.writeln('</map>')  
       
      document.writeln('<a href="javascript:pasteQ()" onMouseOver="copyQ()"><img border=0 src="/ikonboard/cb/quoter.gif" alt="Выдели мышкой - вставь цитату"></a>')  
      document.writeln('<img border=0 src="/ikonboard/cb/codemap.gif" usemap="#codes">')  
      }  
       
      function p3(text){  
      if (text!="") paste(text, 1)  
      }  
       
      function p4(text1, text2){  
      if ((document.selection)) {  
      eval('document.'+f).inpost.focus()  
      eval('document.'+f).document.selection.createRange().text = text1+eval('document.'+f).document.selection.createRange().text+text2  
      } else eval('document.'+f).inpost.value+= text1+text2;
      }
       
      function c1(num) {  
      line1 = "["+codes_array[num][0]+"]"  
      line2 = "[/"+codes_array[num][0]+"]"  
      if (num==18) {  
      line1 = "
      [td]"    line2 = "[/td][/tr]
      "  
      }  
      if (num==20) line2 = ""  
      if (mode==1) alert(codes_array[num][1])  
      else if (mode==3) p4(line1, line2)  
      else {  
      if (codes_array[num][2] == null) p3(line1)  
      else if (codes_array[num][3] == null) {  
      txt=prompt(codes_array[num][2],"")  
      if (txt!=null) p3(line1+txt+line2)  
      } else {  
      txt2=prompt(codes_array[num][3],"")  
      if (txt2!=null) {  
      txt=prompt(codes_array[num][2],"")  
      if (txt!=null) {  
      if (txt2=="") p3(line1+txt+line2)  
      else if (codes_array[num][4] != null) p3("["+codes_array[num][0]+"="+txt+"]"+txt2+"[/"+codes_array[num][0]+"]")  
      else p3("["+codes_array[num][0]+"="+txt2+"]"+txt+"[/"+codes_array[num][0]+"]")  
      } } } } }  
       
      function c2(num) {  
      if (num == 11) line1 = "[list=1]"  
          else line1 = "[list]
    • "  
      line2 = "\n
    "  
     
    if (mode==1) alert(codes_array[num][1])  
    else if (mode==3) p4(line1+"
  1. ", line2)  
    else {  
    txt="1"  
    list=""  
    while ((txt!="") && (txt!=null)) {  
    txt=prompt(codes_array[num][2],"")  
    if (txt!="") list+="
  2. "+txt+"\r"  
    if (txt==null) return  
    }  
    p3(line1+list+"
")  
}  
}  
function p1(text){  
if (text!="") paste("[b]"+text+"
\n", 1);  
}  
 
function pasteQ(text, flag){  
if ((document.selection)&&(flag)) {  
eval('document.'+f).inpost.focus();  
eval('document.'+f).document.selection.createRange().text = text;  
} else eval('document.'+f).inpost.value += text;  
}  
 
 
function clckcntr() {
clckcnt++;
if(clckcnt > 1) {
    if(clckcnt > 2) { return false; }
    alert('Processing...\n\n' + '     Thank you for your patience.');
    return false;}
return true;}
 
function openScript(url, width, height) {
        var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=yes,status=yes' );
}
 
function copyQ() {    
txt=''    
if (document.getSelection) {txt=document.getSelection()}    
else if (document.selection) {txt=document.selection.createRange().text;}    
txt='
Цитата:
'+txt+'
\n'  
}    
function pasteQ() {    
eval('document.'+f).inpost.value=eval('document.'+f).inpost.value+txt;    
}    
   
function pasteURL(){  
var url="\[url\="+document.location+"\]"+document.title+"\[\/url\]";  
document.forms[0].inpost.value = url;    
}
   
function pasteURL(){  
var url="\[url\="+document.location+"\]"+document.title+"\[\/url\]";  
document.forms[0].inpost.value = url;    
}

не придумал как для оперы написать
Цитата:
document.mt.document.selection.createRange().text = text1+document.mt.document.selection.createRange().text+text2

поэтому форматирование выделенной области работает только в ИЕ =((
из topic.cgi функцию вызывать так:
<SCRIPT language=JavaScript>insertcodes1();f23("mt");</SCRIPT>
из post.cgi так:
<SCRIPT language=JavaScript>insertcodes1();f23("PostTopic");</SCRIPT>

Всего записей: 589 | Зарегистр. 02-01-2003 | Отправлено: 03:14 21-08-2004 | Исправлено: Wozik, 03:15 21-08-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Разработка Codebuttons


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru