Динамическое преобразование Алиас

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Динамическое преобразование Алиас

Сообщение Smiler »

Здравствуйте! Прошу прощения за такое название, но не знаю как более менее адекватно назвать то, что я хочу реализовать.

Имеется два поля:
1. Поле название новости
2. Поле алиас. Фактически тут задаю адрес новости.

Мне нужно реализовать такую схему. Я ввожу название новости, а во втором поле сразу поставляется данное название, но на латинице.
Пример:

Код: Выделить всё

Поле1:
Первая новость на сайте!
Поле2:
pervaya-novost-na-sayte
Я не знаю как называется этот метод, функция или как ее назвать, чтобы обратиться нормально к ПС.
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Динамическое преобразование Алиас

Сообщение chesar »

В yii2 из коробки есть http://www.yiiframework.com/doc-2.0/yii ... avior.html
Правда, что бы динамично в админке изменялось - нужно допиливать. Если не принципиально, то решается добавлением пары строчек кода.
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Динамическое преобразование Алиас

Сообщение Smiler »

chesar писал(а):В yii2 из коробки есть http://www.yiiframework.com/doc-2.0/yii ... avior.html
Правда, что бы динамично в админке изменялось - нужно допиливать. Если не принципиально, то решается добавлением пары строчек кода.
Если честно не могу понять как работает данный метод
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Динамическое преобразование Алиас

Сообщение Smiler »

Довольно простой вариант) Теперь буду знать как называется. А как лучше всего интегрировать данное решение? Хотелось бы, чтобы из любого места я мог получить доступ к скрипту
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Динамическое преобразование Алиас

Сообщение ElisDN »

Круче всего будет оформить как jQuery-плагин и сделать InputWidget.
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Динамическое преобразование Алиас

Сообщение Smiler »

ElisDN писал(а):Круче всего будет оформить как jQuery-плагин и сделать InputWidget.
Если не трудно, то можно по подробнее? или же ссылки, как делается,т.к. с JS у меня вообще все печально чем с PHP+MYSQL+HTML+CSS :D
wpd
Сообщения: 161
Зарегистрирован: 2014.08.22, 12:34
Контактная информация:

Re: Динамическое преобразование Алиас

Сообщение wpd »

Код: Выделить всё

var ru2en = {
  fromChars : 'абвгдезиклмнопрстуфыэйхё',
  toChars : 'abvgdeziklmnoprstufyejxe',
  biChars : {'ж':'zh','ц':'ts','ч':'ch','ш':'sh','щ':'sch','ю':'ju','я':'ja','&':'-and-'},
  vowelChars : 'аеёиоуыэюя',
  translit : function(str) {
    str = str.replace(/[_\s\.,?!\[\](){}\\\/"':;]+/g, '-')
             .toLowerCase()
             .replace(new RegExp('(ь|ъ)(['+this.vowelChars+'])', 'g'), 'j$2')
             .replace(/(ь|ъ)/g, '');

    var _str = '';
    for (var x=0; x<str.length; x++)
      if ((index = this.fromChars.indexOf(str.charAt(x))) > -1)
        _str += this.toChars.charAt(index);
      else
        _str += str.charAt(x);
    str = _str;

    var _str = '';
    for (var x=0; x<str.length; x++)
      if (this.biChars[str.charAt(x)])
        _str += this.biChars[str.charAt(x)];
      else
        _str += str.charAt(x);
    str = _str;

    str = str.replace(/j{2,}/g, 'j')
             .replace(/[^-0-9a-z]+/g, '')
             .replace(/-{2,}/g, '-')
             .replace(/^-+|-+$/g, '');

    return str;
  }
}

function setTranslit(src, dst, force){
  if ($('input[name="'+src+'"]').val() != undefined){
    $('input[name="'+src+'"]').change(function(){
      var srcVal = $('input[name="'+src+'"]').val();
      var dstVal = $('input[name="'+dst+'"]').val();

      if (force || (dstVal == ''))
        $('input[name="'+dst+'"]').val(ru2en.translit(srcVal));
    });
  }
}

$(document).ready(function(){
  // Posts
  setTranslit('Post[name]', 'Post[slug]', false);

});

Подключите данный жс файл в AppAsset .
Download TV Series in HD http://serialsfree.net/
wpd
Сообщения: 161
Зарегистрирован: 2014.08.22, 12:34
Контактная информация:

Re: Динамическое преобразование Алиас

Сообщение wpd »

У меня кстати почему то SluggableBehavior не работает. Хотя раньше работал :) intl стоит
Download TV Series in HD http://serialsfree.net/
wpd
Сообщения: 161
Зарегистрирован: 2014.08.22, 12:34
Контактная информация:

Re: Динамическое преобразование Алиас

Сообщение wpd »

есть мнение, что если у меня "слугбихайвер" из коробки не пашет, то и ваше расширение не заработает, но я попробую. Спасибо.
Download TV Series in HD http://serialsfree.net/
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Динамическое преобразование Алиас

Сообщение zelenin »

wpd писал(а):
есть мнение, что если у меня "слугбихайвер" из коробки не пашет, то и ваше расширение не заработает, но я попробую. Спасибо.
там есть фолбэк для не-интл
wpd
Сообщения: 161
Зарегистрирован: 2014.08.22, 12:34
Контактная информация:

Re: Динамическое преобразование Алиас

Сообщение wpd »

так интл установлен. В том то и непонятка, тот же ОпенСервер где оно работало, после установки другого проекта, оно не работает :) Магия....
Download TV Series in HD http://serialsfree.net/
Ответить