Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Гість

Recommended Posts

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

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

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

Установка:

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

Змінено користувачем Гість
edit -> save
Надіслати
Поділитися на інших сайтах

  • 1 month later...

А не у кого не было-ли проблемы с базами данных, после добавления товара :) :) 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, то всё пропадает!

Надіслати
Поділитися на інших сайтах


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

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

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


А не у кого не было-ли проблемы с базами данных, после добавления товара :) :) :) У меня что то вылазит подобное # 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т.е. уже есть такая строка в базе
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

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


  • 3 weeks later...

Shaman

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

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

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

Banditman

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

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

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

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

cashfile

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

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

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

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

Надіслати
Поділитися на інших сайтах

  • 8 months later...

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

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

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

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

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

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

Подскажите пожалуйста новичку как быть, если я установил и 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

Надіслати
Поділитися на інших сайтах


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

Подскажите пожалуйста новичку как быть, если я установил и 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 1
Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


  • 4 months later...

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

Надіслати
Поділитися на інших сайтах


у меня проблем небыло, ошибка: # 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)");

Надіслати
Поділитися на інших сайтах


  • 4 months later...

на 1.5.1.3 работает

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

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

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

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

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

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

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

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

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.