• Главная
  • uCoz
  • Авто транслит названия материала в URL материала для Seo-модуля
Авто транслит названия материала в URL материала для Seo-модуля

Авто транслит названия материала в URL материала для Seo-модуля

О чем материал ?

Пользуясь функционалом Seo-модуля пунктом "Произвольные URL", мы имеем возможность для материалов в модулях прописывать урл какой хотим в разумных рамках. Сегодня я решил с вами поделиться небольшим скриптом, который автоматизирует процесс работы с URL.

Скрипт который будет представлен в материале, он проверяет поле название материала и производит автоматический транслит в поле URL материала, то есть, вам вручную не придется формировать урл для полей сео-модуля, он добавится автоматически.

Как установить скрипт авто транслит URL для Seo-модуля ?

Наведу пример как это реализуется для модулей Блог и Новости, нужно перейти в шаблон формы добавления и редактирования модуля:

  • /panel/?a=tmpl;m=6;t=5 - модуль новости
  • /panel/?a=tmpl;m=7;t=6 - модуль блог
  • /panel/?a=tmpl;m=10;t=8 - модуль статьи
  • /panel/?a=tmpl;m=11;t=8 - модуль файлы
  • /panel/?a=tmpl;m=12;t=8 - модуль сайты
  • /panel/?a=tmpl;m=13;t=8 - модуль объявления
  • /panel/?a=tmpl;m=21;t=8 - модуль игры

Авто транслит Названием материала в URL для Seo-модуля

далее в самый низ после всего кода с новой строки вставить такой скрипт:

<script type="text/javascript">
function urlLit(w,v) {
var tr='a b v g d e ["zh","j"] z i y k l m n o p r s t u f h c ch sh ["shh","shch"] ~ y ~ e yu ya ~ ["jo","e"]'.split(' ');
var ww=''; w=w.toLowerCase();
for(i=0; i<w.length; ++i) {
cc=w.charCodeAt(i); ch=(cc>=1072?tr[cc-1072]:w[i]);
if(ch.length<3) ww+=ch; else ww+=eval(ch)[v];}
return(ww.replace(/[^a-zA-Z0-9\-]/g,'-').replace(/[-]{2,}/gim, '-').replace( /^\-+/g, '').replace( /\-+$/g, ''));
}
$(document).ready(function() {
$('#nwF1').bind('change keyup input click', function(){
$('#ownu284').val(urlLit($('#nwF1').val(),0))
});
});
</script>

этого будет достаточно для модуля новости. 

Важно! При использовании такого скрипта урл будем иметь подобно: sitename.ru/post-url

Далее при добавлении новостей и при использовании пункта "Задать индивидуальные URL, Title, Description, Keywords", будет производиться автоматический транслит название материала в поле "URL материала". 

Авто транслит Название категории + Названием материала в URL для Seo-модуля

Наведу пример как это реализуется для модулей Блог и Новости, нужно перейти в шаблон формы добавления и редактирования модуля далее в самый низ после всего кода с новой строки вставить такой скрипт:

 <script type="text/javascript">
function urlLit(w,v) {
var tr='a b v g d e ["zh","j"] z i y k l m n o p r s t u f h c ch sh ["shh","shch"] ~ y ~ e yu ya ~ ["jo","e"]'.split(' ');
var ww=''; w=w.toLowerCase();
for(i=0; i<w.length; ++i) {
cc=w.charCodeAt(i); ch=(cc>=1072?tr[cc-1072]:w[i]);
if(ch.length<3) ww+=ch; else ww+=eval(ch)[v];}
return(ww.replace(/[^a-zA-Z0-9\-]/g,'-').replace(/[-]{2,}/gim, '-').replace( /^\-+/g, '').replace( /\-+$/g, ''));
}
$(document).ready(function() {
$('[name=cat]').change(function(){var uu = $('option:selected', this).text();
$('#nwF1').bind('change keyup input click', function(){
 $('#ownu284').val(urlLit(uu,0) + '/' + urlLit($('#nwF1').val(),0))
});
});});
</script>

Важно! При использовании такого скрипта урл будем иметь подобно: sitename.ru/cat-name/post-url

Далее при добавлении новостей и при использовании пункта "Задать индивидуальные URL, Title, Description, Keywords", будет производиться автоматический транслит названия категории + название материала в поле "URL материала". 

Авто транслит Название категории + Названием материала в URL для Seo-модуля (каталог файлов)

Вам нужно перейти в шаблон формы добавления и редактирования модуля "Каталог файлов" далее в самый низ после всего кода с новой строки вставить такой скрипт:

<script type="text/javascript">
function urlLit(w,v) {
var tr='a b v g d e ["zh","j"] z i y k l m n o p r s t u f h c ch sh ["shh","shch"] ~ y ~ e yu ya ~ ["jo","e"]'.split(' ');
var ww=''; w=w.toLowerCase();
for(i=0; i<w.length; ++i) {
cc=w.charCodeAt(i); ch=(cc>=1072?tr[cc-1072]:w[i]);
if(ch.length<3) ww+=ch; else ww+=eval(ch)[v];}
return(ww.replace(/[^a-zA-Z0-9\-]/g,'-').replace(/[-]{2,}/gim, '-').replace( /^\-+/g, '').replace( /\-+$/g, ''));
}
$(document).ready(function() {
$('[name=ocat]').click(function(){var uu = $("#catSelector9").not("[value=- Выбрать категорию -]").val();
$('#ldF1').bind('change keyup input click', function(){
$('[name=ownurl]').val(urlLit(uu,0) + '/' + urlLit($('#ldF1').val(),0))
});
});});
</script>

Примечание

В скрипте выше для модуля новости используется айди #nwF1, если вам нужно настроить скрипт для других модулей, айди нужно изменить на другой:

  • #nwF1 - Новости
  • #blF1 - Блог
  • #ldF1 - Каталог файлов
  • #puF1 - Каталог статей
  • #drF1 - Каталог сайтов
  • #bdF1 - Доска объявлений
  • #sfF1 - Онлайн игры

Разработчик скрипта: Sentimo

Лицензия: CC BY-SA 4.0

Автор: Юрий Герук

Похожие материалы:
Помогла ли вам статья?
Да Нет
Статья оказалась полезной для 0 человек
A
Спасибо за интересные решения для uCoz. Случайно наткнулся на Ваш сайт, тыкнув по ссылке в подписи профиля на форуме uCoz. Очень рад что добрые люди ещё что-то делают для uCoz и делятся этим.
З.Ы. а в этом скрипте автоматически вставляется в поле URL материала только транслит заголовка, без адреса сайта. Это конечно не критично, быстро вставить его не проблема перед заголовком, но вдруг как-то можно чтоб ещё и адрес сайта вставлялся? Но в любом случае спасибо, это действительно упрощает процесс работы с URL
avatar
Для поля URL материала адрес домена подставляется автоматически, дополнительно вставлять его не нужно. При сохранении материала вы будете иметь готовый рабочий урл.
A
Странно но у меня адрес сайта исчезает и вместо него становится только сам заголовок https://www.screenpresso.com/=07BPe
Например если я перед тем как начну вводить заголовок, ставлю галочку Задать индивидуальные URL, Title, Description, Keywords
адрес сайта стоит. Стоит только начать вводить, вместо адреса становится то что на скрине.
Если галку сразу не ставлю, а сначала вводу заголовок, а потом ставлю галку то тоже самое как на скрине.
avatar
Так и должно быть, после добавления материала, урл, который отображается в поле, применяется к создаваемому материалу и все успешно работает.
A
А вон оно что, теперь всё понятно. Спасибо smile
avatar
Так сложилось, что у меня в одном блоке отсутствует название материала. Можно ли переделать этот скрипт, что бы он подставлял в урл: Title, которое используется для кода $SEO_TITLE$
avatar
Переделать можно, но нужно желание...
avatar
Если я оплачу переделку данного скрипта, я желаю его в единоличное владение. Согласны? Сколько?
Автор: Подобное возможно. Напишите в ЛС. Но в ваше управление будет переделанный скрипт, а не текущий, что в статье.
avatar
Решил применить скрипт из статьи, однако после срабатывания этого скрипта урл имеет вид: sitename.ru/cat-name/post-url/27-1-0-1401. Как избавиться от добавления цифр в конце урла?
Автор: Мы видим вам уже исправили работу скрипта. Совместно с этим скриптом нужно использовать скрипт в шаблоне Страница добавления и редактирования материала:
Код
<script type="text/javascript">
$(function () {
$('input#settitlekeydesc')[0].click();
});
</script>
 
Скрипт автоматически активирует поле Задать индивидуальные URL, Title, Description, Keywords, после чего корректно работает скрипт транслита.