YaSe

[Доработка] Автоматический транслит псевдонима для SEO-url

53 сообщения в этой теме

Смысл в следующем:

При вводе поля "Название товара" введенное значение переводится в транслит и записывается в поле "Псевдоним".

То же самое для категорий, производителей и информационных статей.

Установка:

1. Скопировать файл translit.js в папку admin/view/javascript/jquery/

2. Добавить в файл admin/view/template/common/header.tpl после строки

строку

В самом translit.js в document.ready для каждого раздела подключается обработчик.

Пример подключения для страницы товаров:

setTranslit("product_description[1][name]", "keyword", false);
первый параметр - имя input с названием товара

второй параметр - имя input с псевдонимом ( куда будем писать )

третий параметр - перезаписывать ли псевдоним при изменении имени товара.

Если третий параметр false - псевдоним будет заполнен только если ранее это поле было пустым.

Обратите внимание, что квадратные скобки в имени поля следует экранировать дважды.

Вроде все.

PS. Тестировалось на OpenCart v1.4.6

Копеечный вариант под новые версии находится тут

translit.zip

Изменено пользователем YaSe
edit -> save
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое! :lol:

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

На 1.4.7 тоже работает

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

А у меня вылазит ошибка после создания псевдонима с функцией seo-url ! Что нужно сделать что бы её исправить!

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

А не у кого не было-ли проблемы с базами данных, после добавления товара :) :) https://opencartforum.com/public/style_emoticons/default/icon_question.gif

У меня что то вылазит подобное

# SQL.q : INSERT INTO oc_product_tags SET product_id = '57', language_id = '1', tag = 'необычные подарки'

# MySQL.e : Duplicate entry '57-необычные подарки-1' for key 1

# MySQL.e.№ : 1062

# PHP.v : 5.2.13

# Data : 05.06.2010 13:18

# Script : /admin/index.php?route=catalog/product/insert

# Refer : http://suvenir-74.ru/admin/index.php?ro ... uct/insert

Если удалить фаил translit, то всё пропадает!

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо! Отличное решение для сотрудников магазина, особенно если много товаров.

Скажите только пожалуйста на будущее, что собой являет номер в квадратных кавычках

product_description[1]
потому как у меня этот номер - двойка и скрипт пришлось подправить.
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

А не у кого не было-ли проблемы с базами данных, после добавления товара :) :) :) У меня что то вылазит подобное # SQL.q : INSERT INTO oc_product_tags SET product_id = '57', language_id = '1', tag = 'необычные подарки'# MySQL.e : Duplicate entry '57-необычные подарки-1' for key 1# MySQL.e.№ : 1062# PHP.v : 5.2.13# Data : 05.06.2010 13:18# Script : /admin/index.php?route=catalog/product/insert# Refer : http://suvenir-74.ru/admin/index.php?ro ... uct/insertЕсли удалить фаил translit, то всё пропадает!

у меня проблем небыло, ошибка: # MySQL.e : Duplicate entry '57-необычные подарки-1' for key 1т.е. уже есть такая строка в базе
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я полностью переделал базу (удалил и создал новую) , переустановил Опен Карт, и каждый раз ошибка лезет при добавлении(сохранении) любого нового товара, которого раньше даже не было вообще, а если потом отредактировать тот же товар, то сохраняет всё нормально как и должно без модуля! :)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

... В самом translit.js в document.ready для каждого раздела подключается обработчик.Пример подключения для страницы товаров:

setTranslit("product_description[1][name]", "keyword", false);
первый параметр - имя input с названием товаравторой параметр - имя input с псевдонимом ( куда будем писать )третий параметр - перезаписывать ли псевдоним при изменении имени товара.Если третий параметр false - псевдоним будет заполнен только если ранее это поле было пустым.Обратите внимание, что квадратные скобки в имени поля следует экранировать дважды.
На "первый" взгляд в 1.4.0 работает.Это описание работы или ещё нужно вручную что-то добавлять ???
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Shaman

Скажите только пожалуйста на будущее, что собой являет номер в квадратных кавычках

потому как у меня этот номер - двойка и скрипт пришлось подправить.

Это language_id - код вашего языка.

Banditman

Причем тут таблица oc_product_tags, если

а. модуль вообще в базу ничего не пишет. он заполняет определенное поле и все.

б. то поле, с которым работает модуль, записывается в таблицу oc_url_alias

Видимо дело в чем-то другом.

cashfile

Больше вручную ничего добавлять не нужно.

У скрипта нет мультиязычности, он работает только с одним, указанным ранее языком.

Мне это не нужно было, возможно кто-то и допишет.

P.S. Только что поставил на 1.4.7 - отлично работает.

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня всё теперь нормально, с базой фигня какаето была! :)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем доброго времени суток!

У меня в адресной строке выходит

(http://sitename.ru/811-------------------------/81106---------------------------300----------)

заместо - (дефиса) должны быть русские буквы! кто знает как устранить проблему???!! буду рад слышать =)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я там и смотрел. Опять же моя невнимательность =) благодарствую, нашел ответ

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, уважаемые.

Подскажите пожалуйста новичку как быть, если я установил и Auto SEO и seo.php, но ничего не изменилось с урлами категорий и товаров.

Порывшись в админке движка увидел в "Система-Настройки-Сервер" такой пунктик как "Использование SEO-url" он был в положении "Нет".

Я перевёл его в положение "Да" и при загразке сайта получил ошибку "404 Not found. Not Found. The requested URL /about_us was not found on this server." Хотя главная страница грузится, а все остальные нет, выдаёт на всех остальных ошибку.

Но при этом урлы страниц уже нормальные, какими и хотелось их получить...

Если возвращаю опять в положение "Нет" (как на рисунке) всё снова работает, но урлы ужасные...

Прочёл уже вроде бы все ветки форума, ответа не нашёл для своего случая :( Подскажите, как исправить это?

post-7233-0-64369100-1301867358_thumb.jpg

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, уважаемые.

Подскажите пожалуйста новичку как быть, если я установил и Auto SEO и seo.php, но ничего не изменилось с урлами категорий и товаров.

Порывшись в админке движка увидел в "Система-Настройки-Сервер" такой пунктик как "Использование SEO-url" он был в положении "Нет".

Я перевёл его в положение "Да" и при загразке сайта получил ошибку "404 Not found. Not Found. The requested URL /about_us was not found on this server." Хотя главная страница грузится, а все остальные нет, выдаёт на всех остальных ошибку.

Но при этом урлы страниц уже нормальные, какими и хотелось их получить...

Прочёл уже вроде бы все ветки форума, ответа не нашёл для своего случая :( Подскажите, как исправить это?

для начала переименовать htaccess.txt в .htaccess
1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

т.е. без расширения оставить файл?

Всё заработало! :) Спасибо!

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скрипт супер! Дополнительно перенес поле SEO и картинки на первую страницу, теперь можно сразу контролировать и изменять поле по необходимости. И еще, сделал так, чтобы SEO генерировалось только строчными буквами. Изображение

появился вопрос, кто силен в javascript: как сделать автоматическое копирование поля "название" в поля "title" плюс дописать категорию, чтобы было типа [title]-[category] и в другие поля также

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

я так понял, скрипт использует jquery и var(), дополните этот скрипт автогенератором МЕТА, ключевых слов и т.д. кто разбирается

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

кто нибудь тестировал скрипт на ocstore_v0.1.7 он в этой версии вообще должен работать?

Поставил его а ничего не происходит,его просто нужно в папку с джаваскрипт добавить,и прописать к нему путь в хедере?Или нужно еще сам файл translit как-то настраивать?

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

настраивать не нужно, seo-alias генерируется только если поле seo пустое (при setTranslit("product_description[1][name]", "keyword", false); ) и если поле название товара изменилось (можно добавить пробел в конце и удалить). если оставить true, то должно перезаписывать при каждом изменении поля "название". Скрипт классный, но доработать для полей "описание" и "ключевые слова" никто не хочет почему-то

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скажите, поставила сео транслит и теперь в сео-псевдониме вместо пробела стоит нижнее подчеркивание, хотя системой оно отключено. Как поменять на дефис?

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня проблем небыло, ошибка: # MySQL.e : Duplicate entry '57-необычные подарки-1' for key 1

т.е. уже есть такая строка в базе

Вот пример SQl запроса на запись тегов, в котором решена твоя проблема (обрати внимание на вторую часть запроса)

$this->db->query("INSERT INTO " . DB_PREFIX . "product_tags SET product_id ='" . (int)$product['product_id'] . "', tag = '" . $this->db->escape($ptag_ind) . "', language_id = '" . (int)$product['language_id'] . "' ON DUPLICATE KEY UPDATE tag = VALUES(tag), product_id=VALUES(product_id), language_id=VALUES(language_id)");

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

на 1.5.1.3 работает

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

на 1.5.1.3 работает

А у меня ничего не происходит. Можно для непонятливых, попроще объяснить эту часть установки, пожалуйста.

В самом translit.js в document.ready для каждого раздела подключается обработчик.

Пример подключения для страницы товаров:

setTranslit("product_description[1][name]", "keyword", false);

первый параметр - имя input с названием товара

второй параметр - имя input с псевдонимом ( куда будем писать )

третий параметр - перезаписывать ли псевдоним при изменении имени товара.

Если третий параметр false - псевдоним будет заполнен только если ранее это поле было пустым.

Обратите внимание, что квадратные скобки в имени поля следует экранировать дважды.

Там стоят слеши, их нужно убрать?

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!


Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.


Войти

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.