Важная информация!
Правила форума
для обязательного прочтения!
Пожалуйста, не регистрируйтесь на этом форуме с электронными адресами mail.ru, bk.ru, inbox.ru, list.ru - вам может не прийти письмо со ссылкой активации!
Вы можете воспользоваться адресами типа yandex.ru, rambler.ru, gmail.com и т.д.
(забыл / потерял пароль)
Общий FAQ по управлению форумом
FAQ: реклама на форуме
Туториалы по разным функциям ваших форумов
Алфавитный указатель
Интересные решения для форумов
Наши видео-туториалы
Условия пользования сервисом
Ссылки на полезные ресурсы
Последние темы
» совет админамавтор Форум Г. Сегодня в 12:24
» Не могу поменять местами виджеты форума.
автор Форум Г. Сегодня в 12:19
» [Общая тема] Что делать, если вы забыли / потеряли пароль
автор https://https-festasport. Декабрь 7th 2024, 19:06
» Пропала функция редактировать сообщение
автор VENEFICA. Декабрь 6th 2024, 07:12
» Не корректное отображение картинок
автор Luz Декабрь 5th 2024, 19:19
» ВПН
автор Luz Декабрь 5th 2024, 19:17
» Дублируется ссылка на форум в боковом меню
автор Luz Декабрь 5th 2024, 19:14
» Как найти администратора?
автор Luz Ноябрь 28th 2024, 14:12
» Пропала вкладка "Обработка пользователей"
автор Luz Ноябрь 28th 2024, 13:56
» Не меняется название форума
автор Aviator Ноябрь 14th 2024, 15:40
Скрипт. Транслитерация.
+2
Sunnyta
Irbis
Участников: 6
Бесплатный форум: форум поддержки :: Взаимопомощь и Поддержка :: Проблемы со скриптами (кодами) :: [Архив] Проблемы со скриптами
Страница 1 из 3
Страница 1 из 3 • 1, 2, 3
Скрипт. Транслитерация.
Не буду рассказывать, что меня подтолкнуло к написанию (точнее к оптимизации под наш сервис) скрипта транслита, кому надо тот догадается
скрин:
Установка:
Как всегда, создаем новый виджет главной страницы или берем любой созданный до этого и втыкаем в него:
Тестировалось на версии PhpBB3 из под Internet Explorer'a. С другими версиями форумов по идее проблем быть не должно, а вот из под других браузеров не уверен, поэтому выкладываю не в туториалах, а здесь.
скрин:
Установка:
Как всегда, создаем новый виджет главной страницы или берем любой созданный до этого и втыкаем в него:
- Код:
<SCRIPT language=JavaScript>
var content="<INPUT class=button onclick=translateAlltoCyrillic();upgradeclipboard(); type=button value='в кириллицу'><INPUT class=button onclick=translateAlltoLatin();upgradeclipboard(); type=button value='в латиницу'>";
var arr=document.getElementsByTagName("form");
var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');
var translitown=0;var language = 0;
if (document.images) {swrus_src = new Image; swrus_src = "pict/swrus.gif";swlat_src = new Image; swlat_src = "pict/swlat.gif";}
function setfoc(){document.post.message.focus();}
function compbelongs(isprivate)
{
translitown = isprivate;
if (translitown==1) {document.post.message.createTextRange().execCommand("Copy");}
document·cookie = "trowncomputer=" + escape(isprivate);
return true;
}
function upgradeclipboard()
{
if (translitown==1) {document.post.message.createTextRange().execCommand("Copy");}
return true;
}
function setlangpicture(){document.ruslat.src = swrus_src;}
function changelanguage(){if (language==1) {language=0; document.images['ruslat'].src = swrus_src; document.post.message.focus();return;}if (language==0) {language=1; document.images['ruslat'].src = swlat_src; document.post.message.focus();return;}}
function AkeyIsDown()
{
if (event.ctrlKey && event.altKey) changelanguage();
if (window.event.keyCode==27) event.returnValue=false;
return false;
}
function translate_letter()
{
if (language==1) return;
var code = event.keyCode;
txt=String.fromCharCode(code);
cursor_pos_selection = document.selection.createRange();
cursor_pos_selection.text="";
cursor_pos_selection.moveStart("character",-1);
pretxt = cursor_pos_selection.text;
if (pretxt.length>1) {pretxt="";}
event.keyCode = 0;
result = translatesymboltocyrillic(pretxt,txt);
if (pretxt!="") { cursor_pos_selection.select(); cursor_pos_selection.collapse();}
with(document.selection.createRange()) {text = result; collapse(); select()}
return;
}
function translatesymboltocyrillic(pretxt,txt)
{
var doubletxt = pretxt+txt;
var code = txt.charCodeAt(0);
if (!(((code>=65) && (code<=123))||(code==35)||(code==39))) return doubletxt;
var ii;
for (ii=0; ii<lat_lr2.length; ii++)
{
if (lat_lr2[ii]==doubletxt) return rus_lr2[ii];
}
for (ii=0; ii<lat_lr1.length; ii++)
{
if (lat_lr1[ii]==txt) return pretxt+rus_lr1[ii];
}
return doubletxt;
}
function translatesymboltolatin(symb)
{
var ii;
for (ii=0; ii<rus_rl.length; ii++)
{
if (rus_rl[ii]==symb)
return lat_rl[ii];
}
return symb;
}
function translateAlltoCyrillic()
{
var is_selection_flag = 1;
var userselection = document.selection.createRange();
var txt = userselection.text;
if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea")
{
is_selection_flag = 0;
txt = document.post.message.value;
}
var txtnew = translatesymboltocyrillic("",txt.substr(0,1));
var symb = "";
for (kk=1;kk<txt.length;kk++)
{
symb = translatesymboltocyrillic(txtnew.substr(txtnew.length-1,1),txt.substr(kk,1));
txtnew = txtnew.substr(0,txtnew.length-1) + symb;
}
if (is_selection_flag)
{
userselection.text = txtnew; userselection.collapse(); userselection.select();
}
else
{
document.post.message.value = txtnew;
document.post.message.focus();
}
return;
}
function translateAlltoLatin()
{
var is_selection_flag = 1;
var userselection = document.selection.createRange();
var txt = userselection.text;
if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea")
{
is_selection_flag = 0;
txt = document.post.message.value;
}
txtnew="";
var symb = "";
for (kk=0;kk<txt.length;kk++)
{
symb = translatesymboltolatin(txt.substr(kk,1));
txtnew = txtnew.substr(0,txtnew.length) + symb;
}
if (is_selection_flag)
{
userselection.text = txtnew; userselection.collapse(); userselection.select();
}
else
{
document.post.message.value = txtnew;
document.post.message.focus();
}
return;
}
iiiii=0;
while(arr[iiiii] )
{if(arr[iiiii].id=="quick_reply")
{name=arr[iiiii].innerHTML;
name=name.substring(0);
arr[iiiii].innerHTML=name+"<div id=buttontrans>"+content+"</div>"}
iiiii++}
</script>
Тестировалось на версии PhpBB3 из под Internet Explorer'a. С другими версиями форумов по идее проблем быть не должно, а вот из под других браузеров не уверен, поэтому выкладываю не в туториалах, а здесь.
Последний раз редактировалось: Irbis (Май 12th 2009, 22:45), всего редактировалось 3 раз(а)
Re: Скрипт. Транслитерация.
В bb2 пока ничего не получается ... смотрела во всех браузерах. Кнопок "в латиницу" и " в кириллицу" не появилось и вообще никак?Irbis пишет: кому надо тот догадается
А нам надо!!!
Re: Скрипт. Транслитерация.
А куда ещё этот скрипт засунуть... Только в виджет и то при условии что он будет на всех страницах форума (кроме портала, думаю)
Иосиф Виссарионович-
-
Сообщения : 331
Регистрация : 2009-05-08
Благодарности : 78
Re: Скрипт. Транслитерация.
хм... веб-страница она вся взаимосвязана, то что её часть обозвали виджетом, сути не меняет... жди Ирбиса) скоро придёт)
Иосиф Виссарионович-
-
Сообщения : 331
Регистрация : 2009-05-08
Благодарности : 78
Re: Скрипт. Транслитерация.
Кстати, у него на тесте все отлично работает в ИЭ и Опере (ФФ - нет), самолично "транскриптила" туда и обратно!
Ждем-с...
Ждем-с...
Re: Скрипт. Транслитерация.
Отпишись, если удачно будет...VanillaSky пишет:Ааа, может потому, что я через лису смотрела...
А у меня не получается может из-за bb2?
Re: Скрипт. Транслитерация.
Сорри, что долго не было, защита диплома на носу, училсо немножко))
Потому что больше некуда Верно связи между виджетом и формой никакого, скрипт ищет на странице форму с именем post и под нее ставит кнопки.Всё-таки я не понимаю, зачем ставить в виджет?
положение кнопок можно в CSS регулироватьИ ещё, эти кнопки стоят немного не в том месте, где показано на скрине.
- Код:
#buttontrans{...}
Второй движок вообще под все скрипты отдельная история. Сейчас гляну, если там код виджета после формы ответа идет то приспособим, если до нее, то про bb2 придется забыть.А у меня не получается может из-за bb2?
Re: Скрипт. Транслитерация.
В лисе не работает ни на одной версии к сожалению.
Sunnyta, в бб2 работает, ничего менять не надо.
Sunnyta, в бб2 работает, ничего менять не надо.
Если bb2, то можно поставить в шаблон overall_footer в конце перед </body>, проверял работает. На других версиях придется забыть.3. А если виджеты не активированы на форуме?
Re: Скрипт. Транслитерация.
УУУРРРЯЯЯ!!!!
Но я пока в окне Быстрого ответа ничего написать не смогла
Но я пока в окне Быстрого ответа ничего написать не смогла
Последний раз редактировалось: Sunnyta (Май 13th 2009, 00:17), всего редактировалось 1 раз(а)
Re: Скрипт. Транслитерация.
Да и вообще пока никакого "Уррря" - писАть в окне не получается никаких букаффф!!!VanillaSky пишет:Шо ж уря, если лиса отдыхает?
Ирбис, вернись!
Re: Скрипт. Транслитерация.
type=button value='в кириллицу'><INPUT class=button onclick=translateAlltoLatin();upgradeclipboard(); type=button value='в латиницу'>";
Тут, текст ли стоит или адрес бутон - в кирилицу(в латиницу)?
И в каком виждетам я сложила вашия код и нигде не видела ети бутони.
Версия вв3 и виждета не включена, как я поступит.
П.П За проба, виждета бьла вкл.
Тут, текст ли стоит или адрес бутон - в кирилицу(в латиницу)?
И в каком виждетам я сложила вашия код и нигде не видела ети бутони.
Версия вв3 и виждета не включена, как я поступит.
П.П За проба, виждета бьла вкл.
Re: Скрипт. Транслитерация.
VanillaSky, спасибо.
tuci_iv
2. Какой у вас браузер? Если Mozilla Firefox, то работать не будет.
tuci_iv
В скрипте ничего менять и подписывать не надо.Тут текст или адрес кнопки из кириллицы в латиницу?
1. Ставить нужно в виджет НЕ на портале, а на форуме.В какой виджет бы не ставила коды, нигде не вижу этих кнопок.
2. Какой у вас браузер? Если Mozilla Firefox, то работать не будет.
Либо включать виджеты, либо отказаться от скрипта.У меня 3 версия и виджеты не включены, как быть?
Re: Скрипт. Транслитерация.
ОКВ скрипте ничего менять и подписывать не надо.
1. Ставить нужно в виджет НЕ на портале, а на форуме.
2. Какой у вас браузер? Если Mozilla Firefox, то работать не будет.
1. когда пробовала, то виджеты были включены на форуме- нигде не вижу этих кнопок.
2. IE
Дай мне адрес теста я посмотрю.
Страница 1 из 3 • 1, 2, 3
Бесплатный форум: форум поддержки :: Взаимопомощь и Поддержка :: Проблемы со скриптами (кодами) :: [Архив] Проблемы со скриптами
Страница 1 из 3
Права доступа к этому форуму:
Вы не можете отвечать на сообщения