LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 07:43:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [РЕШЕНО] Кнопка транслит для перевода текста сообщения в кириллицу?  (Прочитано 455 раз)
0 Пользователей и 1 Гость смотрят эту тему.
exciterx
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 20


« : 18.07.2011, 23:10:35 »

Очень нужно вмонтировать кнопку "транслит" в редактор сообщений kunena - для перевода текста сообщения или выделенного текста на латинице в кириллицу!..

нечто подобное у меня было установлено в vBulletin

На форуме подобных тем не нашел.. буду очень благодарен за любую информацию и помощь!

П.С. готов сам покопать скрипты - если нет готовых решений...
« Последнее редактирование: 19.07.2011, 13:08:03 от exciterx » Записан
exciterx
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 20


« Ответ #1 : 19.07.2011, 13:00:16 »

Пришлось сделать самому небольшой хак  Yes!

1. добавляем в components\com_kunena\lib\kunena.bbcode.js.php - перед текстом
Код:
<?php
// Add the click behaviors for our bbcode options
?>
следующий код ->
Код:
<?php
//---------start-of-translate-button-------------
?>
var lat=new Array("jo","zh","i'","ch","sh","xh","je","ju","ja","a","b","v","g","d","e","z","i","k","l","m","n","o","p","r","s","t","u","f","x","c","'","y","`","j","h");
var cyr=new Array("ё","ж","й","ч","ш","щ","э","ю","я","а","б","в","г","д","е","з","и","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ь","ы","ъ","ж","х");

var latcap=new Array("JO","Jo","ZH","Zh","I'","Ch","CH","Sh","SH","Xh","XH","Je","JE","Ju","JU","Ja","JA","A","B","V","G","D","E","Z","I","K","L","M","N","O","P","R","S","T","U","F","X","C","Y","J","H");
var cyrcap=new Array("Ё","Ё","Ж","Ж","Й","Ч","Ч","Ш","Ш","Щ","Щ","Э","Э","Ю","Ю","Я","Я","А","Б","В","Г","Д","Е","З","И","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ы","Ж","Х");

function translate(tex)
{
var buf=tex;
var i;
for (i=0;i<latcap.length;i++)
  {
  buf=replace(buf,latcap[i],cyrcap[i],1,0);
  }

for (i=0;i<lat.length;i++)
  {
  buf=replace(buf,lat[i],cyr[i],1,0);
  }

tex=buf;
return tex;
}

function replace(target,oldTerm,newTerm,caseSens,wordOnly) {

  var work = target;
  var ind = 0;
  var next = 0;

  if (!caseSens) {
    oldTerm = oldTerm.toLowerCase();
    work = target.toLowerCase();
  }

  while ((ind = work.indexOf(oldTerm,next)) >= 0) {
    if (wordOnly) {
      var before = ind - 1;
      var after = ind + oldTerm.length;
      if (!(space(work.charAt(before)) && space(work.charAt(after)))) {
        next = ind + oldTerm.length;
        continue;
      }
    }
    target = target.substring(0,ind) + newTerm +
    target.substring(ind+oldTerm.length,target.length);
    work = work.substring(0,ind) + newTerm +
    work.substring(ind+oldTerm.length,work.length);
    next = ind + newTerm.length;
    if (next >= work.length) { break; }
  }
  return target;
}

//serparator
kbbcode.addFunction('#', function() {
}, {'id': 'kbbcode-separator8'});

//button
kbbcode.addFunction('Translitt', function() {
selection = this.getSelection();
if (selection == "") {
}
else
{
var translated = translate(selection);
this.replaceSelection(translated,  true);
    }
}, {'id': 'kbbcode-translit-button',
'title': '<?php echo JText::_('COM_KUNENA_EDITOR_TRANSLIT');?>',
'alt': '<?php echo JText::_('COM_KUNENA_EDITOR_HELPLINE_TRANSLIT');?>',
'onmouseover' : 'document.id("helpbox").set("value", "<?php echo JText::_('COM_KUNENA_EDITOR_HELPLINE_TRANSLIT');?>")'});

<?php
//---------end-of-translate-button-------------
?>

2. записываем новую панель иконок default.png в components\com_kunena\template\default\media\iconsets\editor\default\
3. добавляем 1 строчку в components\com_kunena\template\default\css\kunena.forum.css\, примерно 2358 линия кода
Код:
#Kunena ul#kbbcode-toolbar li a#kbbcode-translit-button {background-position:-380px -18px;}
4. добавляем строчки перевода в language\ru-RU\ru-RU.com_kunena.ini
Код:
COM_KUNENA_EDITOR_HELPLINE_TRANSLIT="Переводит выделленый фрагмент текста из латиницы в кирилицу"
COM_KUNENA_EDITOR_TRANSLIT="Транслит"


Линк для загрузки отредактированной default.png http://xmages.net/show.php/2975397_default-png.html, после загрузки нужно переименовать файл!

Как то так Wink

П.С. саму функцию транслита я не писал, взял где то в нете готовую и прикрутил к Kunena.

Да, кстати проверял в FF5, IE9, Chrome, если кто проверит в других - буду благодарен.
« Последнее редактирование: 19.07.2011, 13:28:37 от exciterx » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet