Создание URL блога для людей
Опубликую идею которую в идеале стоило бы допинать полностью, но я надеюсь, что она будет услышана Ort-ом и реализована в виде родной возможности. А суть очень проста — избавить пользователей от написания URL при создании общего блога.
Эта штука постоянно кучу вопросов вызывает — «как писать», «что писать» и т.д. Давайте облегчим участь пользователей.
Для этого нам просто понадобится функция JS, которая переводит русский текст в транслит. Немного порыв в интернете я ее наше и, буквально немного модифицировав, применил.
Пишем в файл main.js:
А затем в шаблоне actions/ActionBlog/add.tpl ищем поле:
И добавляем туда:
Таблица перевода вроде должна полностью поддерживаться Гуглом и Яндексом. Соответственно для проекта будет еще и бонус ;-)
Эта штука постоянно кучу вопросов вызывает — «как писать», «что писать» и т.д. Давайте облегчим участь пользователей.
Для этого нам просто понадобится функция JS, которая переводит русский текст в транслит. Немного порыв в интернете я ее наше и, буквально немного модифицировав, применил.
Пишем в файл main.js:
function setTranslitName() {
text = document.getElementById('blog_title').value;
document.getElementById('blog_url').value = translate(text);
}
var lat=new Array("-","-","","","","a","b","v","g","d","e","e","j","z","i","y","k","l","m","n","o","p","r","s","t","u","f","h","c","ch","sh","shch","y","e","yu","ya","","");
var cyr=new Array(" - "," ",",",".",'"',"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ы","э","ю","я","ъ","ь");
function translate(tex) {
var buf=tex;
var i;
for (i=0;i<lat.length;i++) {
buf=replace(buf,cyr[i],lat[i],0,0);
}
tex=buf;
return tex;
}
function replace(target,oldTerm,newTerm,caseSens,wordOnly) {
var work = target;
var ind = 0;
var next = 0;
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;
}
А затем в шаблоне actions/ActionBlog/add.tpl ищем поле:
<input type="text" id="blog_title" name="blog_title" value="{$_aRequest.blog_title}" />
И добавляем туда:
onkeyup="setTranslitName()"
Таблица перевода вроде должна полностью поддерживаться Гуглом и Яндексом. Соответственно для проекта будет еще и бонус ;-)
8 комментариев
представляете что напишет транслитер на блог «Конкурсные работы в номинации „Дизайн проекта Live Street по умолчанию“» :)
а достаточно просто написать livestreet_design_competition
И это можно вполне доредактировать руками, а можно оставить и так. Заодно вполне можно предложить пользователю сократить этот кусок, чтобы он попадал в какую-то норму. :-)