Jump to content
Sign in to follow this  
graf

[ищу] автоматическая транлитерация ЧПУ

Recommended Posts

вобщем для этого нужны знания явы, ну и знать где менять в коде.
Смысл таков, в категориях/товарах автоматических чтобы заполнялось поле ЧПУ с наименования товара/категории.
может кто себе уже сделал?

Share this post


Link to post
Share on other sites

Что-то вроде этого.

function get_link()
{
var cyr = new Array(
\"Щ\", \"Ш\", \"Ч\", \"Ц\",\"Ю\", \"Я\", \"Ж\", \"А\",\"Б\",\"В\",\"Г\",\"Д\",\"Е\",\"Ё\",\"З\",\"И\",\"Й\",\"К\",\"Л\",\"М\",\"Н\",\"О\",\"П\",\"Р\",\"С\",\"Т\",\"У\",\"Ф\",\"Х\", \"Ь\",\"Ы\",\"Ъ\",\"Э\",\"Є\",\"Ї\",
\"щ\", \"ш\", \"ч\", \"ц\",\"ю\", \"я\", \"ж\", \"а\",\"б\",\"в\",\"г\",\"д\",\"е\",\"ё\",\"з\",\"и\",\"й\",\"к\",\"л\",\"м\",\"н\",\"о\",\"п\",\"р\",\"с\",\"т\",\"у\",\"ф\",\"х\", \"ь\",\"ы\",\"ъ\",\"э\",\"є\",\"ї\",\"ь\");
var lat= new Array(
\"Shh\",\"Sh\",\"Ch\",\"C\",\"Ju\",\"Ja\",\"Zh\",\"A\",\"B\",\"V\",\"G\",\"D\",\"Je\",\"Jo\",\"Z\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"R\",\"S\",\"T\",\"U\",\"F\",\"Kh\",\"\'\",\"Y\",\"`\",\"E\",\"Je\",\"Ji\",
\"shh\",\"sh\",\"ch\",\"c\",\"ju\",\"ja\",\"zh\",\"a\",\"b\",\"v\",\"g\",\"d\",\"je\",\"jo\",\"z\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"r\",\"s\",\"t\",\"u\",\"f\",\"kh\",\"\'\",\"y\",\"`\",\"e\",\"je\",\"ji\",\"\");
url = document.getElementById(\"title\");
var chars = url.value.split(\'\');
for (var i=0; i < chars.length; i++)
if(cyr.join(\'\').indexOf(chars[i]) != -1)
chars[i] = lat[cyr.join(\'\').indexOf(chars[i])];
document.getElementById(\"link\").value = chars.join(\'\').replace(/\\W/gi, \"_\").toLowerCase().substr(0,38);

}


Название*
<input type=\"text\" name=\"title\" value=\"Контакты\" size=\"45\" id=\"title\"/>

Ссылка*  
<input type=\"text\" name=\"link\" value=\"kontakty\" size=\"45\" id=\"link\" />

<a href=\'[removed]void(0)\' onclick=\'get_link()\'>Получить ссылку




#title — поле с названием
#link  — поле со ссылкой



url = document.getElementById(\"title\");
document.getElementById(\"link\") ...

Share this post


Link to post
Share on other sites

а в каком файле это менять/вставлять?

Share this post


Link to post
Share on other sites

Посмотрите в admin.js функцию str2url. Дальше надеюсь сами догадаетесь.

Share this post


Link to post
Share on other sites

изменения в файле ../js/admin.js Заменяем функцию str2url (с 3 строки) ниже приведенным кодом:

function str2url(str,encoding,ucfirst)
{
   str = str.toUpperCase();
   str = str.toLowerCase();

   str = str.replace(/[\u0105\u0104\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5]/g,'a');
   str = str.replace(/[\u00E7\u0107\u0106]/g,'c');
   str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u0119\u0118]/g,'e');
   str = str.replace(/[\u00EC\u00ED\u00EE\u00EF]/g,'i');
   str = str.replace(/[\u0142\u0141]/g,'l');
   str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00D3]/g,'o');
   str = str.replace(/[\u015B\u015A]/g,'s');
   str = str.replace(/[\u00F9\u00FA\u00FB\u00FC]/g,'u');
   str = str.replace(/[\u00FD\u00FF]/g,'y');
   str = str.replace(/[\u017C\u017A\u017B\u0179]/g,'z');
   str = str.replace(/[\u00F1]/g,'n');
   str = str.replace(/[\u0153]/g,'oe');
   str = str.replace(/[\u00E6]/g,'ae');
   str = str.replace(/[\u00DF]/g,'ss');

   str = str.replace(/[\u0410\u0430]/g,'a');
   str = str.replace(/[\u0411\u0431]/g,'b');
   str = str.replace(/[\u0412\u0432]/g,'v');
   str = str.replace(/[\u0413\u0433]/g,'g');
   str = str.replace(/[\u0414\u0434]/g,'d');
   str = str.replace(/[\u0415\u0435\u0401\u0451]/g,'e');
   str = str.replace(/[\u0416\u0436]/g,'zh');
   str = str.replace(/[\u0417\u0437]/g,'z');
   str = str.replace(/[\u0418\u0438\u0406\u0456]/g,'i');
   str = str.replace(/[\u0419\u0439]/g,'j');
   str = str.replace(/[\u041A\u043A]/g,'k');
   str = str.replace(/[\u041B\u043B]/g,'l');
   str = str.replace(/[\u041C\u043C]/g,'m');
   str = str.replace(/[\u041D\u043D]/g,'n');
   str = str.replace(/[\u041E\u043E]/g,'o');
   str = str.replace(/[\u041F\u043F]/g,'p');
   str = str.replace(/[\u0420\u0440]/g,'r');
   str = str.replace(/[\u0421\u0441]/g,'s');
   str = str.replace(/[\u0422\u0442]/g,'t');
   str = str.replace(/[\u0423\u0443]/g,'u');
   str = str.replace(/[\u0424\u0444]/g,'f');
   str = str.replace(/[\u0425\u0445]/g,'kh');
   str = str.replace(/[\u0426\u0446]/g,'c');
   str = str.replace(/[\u0427\u0447]/g,'ch');
   str = str.replace(/[\u0428\u0448]/g,'sh');
   str = str.replace(/[\u0429\u0449]/g,'sch');
   str = str.replace(/[\u042A\u044A]/g,'');
   str = str.replace(/[\u042B\u044B]/g,'');
   str = str.replace(/[\u042C\u044C]/g,'');
   str = str.replace(/[\u042D\u044D]/g,'e');
   str = str.replace(/[\u042E\u044E]/g,'yu');
   str = str.replace(/[\u042F\u044F]/g,'ya');
   str = str.replace(/[\u0407\u0457]/g,'ji');
   str = str.replace(/[\u0404\u0454]/g,'je');


   str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,'');
   str = str.replace(/[\s\'\:\/\[\]-]+/g,' ');
   str = str.replace(/[ ]/g,'-');

   if (ucfirst == 1) {
       c = str.charAt(0);
       str = c.toUpperCase()+str.slice(1);
   }

   return str;
}

Share this post


Link to post
Share on other sites

Доброго времени суток. Подскажите, пожалуйста, как сделать так, чтобы в ЧПУ не указывался номер категории, т.е. вместо /166-noutbuki/asus... было просто /noutbuki/asus... Заранее спасибо за помощь.

Share this post


Link to post
Share on other sites

Для меня это высшая математика.. Так глубоко я боюсь лазить без особых на то знаний. Можете и хотите - помогите, пожалуйста, нет - так нет. В любом случае спасибо.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More