Доработка генерации URL страницы.

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #1 Евгений » 02.04.2021, 07:51

V 2.3.5
Добрый день форумчане!
На сайте было добавлено Дополнительное поле для названия товара.
Сейчас необходимо добавить текст этого поля в генерацию URL страницы.
В файле /backend/design/html/index.tpl есть ниже представленный код, но добавить второй инпут "nfcat" не получается. Подскажите пожалуйста с решением.

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

    function generate_url() {
        url = $('input[name="name"]').val();
        url = translit(url);
        if (is_translit_alpha.size() > 0) {
            url = url.replace(/[^0-9a-z]+/gi, '').toLowerCase();
        } else {
            url = url.replace(/[\s]+/gi, '-');
            url = url.replace(/[^0-9a-z_\-]+/gi, '').toLowerCase();
        }
        return url;
    }

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #2 Евгений » 28.10.2021, 21:42

Опять вернулся к этой теме.
Для реализации вышеописанной задачи
строку:

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

 url = $('input[name="name"]').val();


заменил на:

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

 url = $('input[name="nfcat"]').val() + $('input[name="name"]').val();


Кроме того, после:

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

$('input[name="name"]').keyup(function() { set_meta(); });


добавил строку:

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

$('input[name="nfcat"]').keyup(function() { set_meta(); });



Остался вопрос, как в генерации УРЛа убрать повторяющиеся дефисы?
Если в "Префикс имени" ввести к примеру Мобильный телефон - , а в "Название" Iphone 13, то получим УРЛ mobilnyj-telefon---iphone-13

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #3 korshunov » 29.10.2021, 06:33

Пробуйте
url = url.replace(/[\-]+/gi, '-');
или
url = url.replace(/[\s\-]+/gi, '-');

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #4 Евгений » 29.10.2021, 07:56

korshunov писал(а):Пробуйте
url = url.replace(/[\-]+/gi, '-');
или
url = url.replace(/[\s\-]+/gi, '-');

Спасибо! Работает


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 25 гостей