evrus01 писал(а):ГУРУ, я использовал следующий код.
posting_buttons.html (просто добавил в самый конец):")Код: Выделить всё
<script language="Javascript"> // One character letters var t_table1 = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'"; var w_table1 = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь"; // Two character letters var t_table2 = "'EYOJOZHCHSHYUJUYAJA'eyojozhchshyujuyaja'EYoYoZhChShYuJuYaJa"; var w_table2 = "ЭЁЁЖЧШЮЮЯЯэёёжчшююяяЭЁЁЖЧШЮЮЯЯ"; function translit2win(str) { var quoteOpen = 0; var engOpen = 0; var codeOpen = 0; var phpOpen = 0; var len = str.length; var new_str=""; for(i=0; i<len; i++) { // [QUOTE] Tags if(i<=len-7 && str.substr(i,7).toUpperCase()=="[QUOTE]") { quoteOpen++; new_str += str.substr(i,7); i+=6; continue; } if(i<=len-8 && str.substr(i,8).toUpperCase()=="[/QUOTE]") { quoteOpen--; new_str += str.substr(i,8); i+=7; continue; } // [code] Tags if(i<=len-6 && str.substr(i,6).toUpperCase()=="[CODE]") { codeOpen++; new_str += str.substr(i,6); i+=5; continue; } if(i<=len-7 && str.substr(i,7).toUpperCase()=="
{
codeOpen--;
new_str += str.substr(i,7);
i+=6;
continue;
}
// Tags if(i<=len-5 && str.substr(i,5 ... rCase()=="")
{
phpOpen--;
new_str += str.substr(i,6);
i+=5;
continue;
}
//")
{
phpOpen--;
new_str += str.substr(i,6);
i+=5;
continue;
}
// vB , and tags
if(i<=len-3 && (str.substr(i,3).toUpperCase()=="" || str.substr(i,3).toUpperCase()=="" || str.substr(i,3).toUpperCase()==""))
{
new_str += str.substr(i,3);
i+=2;
continue;
}
if(i<=len-4 && (str.substr(i,4).toUpperCase()=="" || str.substr(i,4).toUpperCase()=="" || str.substr(i,4).toUpperCase()==""))
{
new_str += str.substr(i,4);
i+=3;
continue;
}
// Check for 2-character letters
if(!quoteOpen && !engOpen)
{
is2char = false;
if(i<len-1)
{
for(j=0; j<w_table2.length; j++)
{
if(str.substr(i,2)==t_table2.substr(j*2,2))
{
new_str+= w_table2.charAt(j);
i++;
is2char=true;
break;
}
}
}
if(!is2char)
{
// Convert one-character letter
var c = str.substr(i,1);
var pos = t_table1.indexOf(c);
if(pos<0)
new_str += c;
else
new_str += w_table1.charAt(pos);
}
}
else
new_str += str.charAt(i);
}
//alert(new_str);
return new_str;
}
</script>
<input <!-- IF S_QUICK_REPLY --> style="display: none;"<!-- ENDIF --> type="button" class="button2" onClick="with(document.getElementById('postform').<!-- IF $SIG_EDIT -->signature<!-- ELSE -->message<!-- ENDIF -->) { value=translit2win(value); focus(); } return false;" value="Транслит" title="Преобразовать транслит в win-кодировку (Alt + t)" accesskey="t">[/code]
Транслитерация происходит по нажатию на клавишу, после чего можно отправить пост.
Скриншот:
Все бы хорошо, но как мне добавить кастомные коды, некоторые смайлы и url-адреса (http://), чтобы их не транслитерировало?
Взято из топика
Translit MOD