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

автоматическое создание SEO ссылок


Recommended Posts

Всем привет.

я вот уже вторую неделю штурмую OpenCart

замеил, что не смотря на ее плюсы, в ней есть маленькие недочеты.

и один из наиболее важных недочетов - это создание нормальных ссылок.

не. есть вариант конечно платно, либо ручками все писать, но зачем?

я тут подумал и забабахал маленький хак.

суть такова:

если поле seo url пустое, то оно создается из названия.

одним словом нужно поправить adminmodelcatalogcategory.php (!!это можно и для продуктов сделать!)

в функции public function addCategory($data)

находим

if ($data['keyword']) {

$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");

}

и сразу поле вставляем

else

{

$alex_non_seo_url = $this->db->escape($value['name']);

$tr = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya","."=>"-"," "=>"-","?"=>"-","/"=>"-",""=>"-","*"=>"-",":"=>"-","*"=>"-","""=>"-","<"=>"-",">"=>"-","|"=>"-","'"=>"");

$alex_seo_url = strtr($alex_non_seo_url,$tr);

$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . strtolower($alex_seo_url) . "'");

}

ну вот как-то так =)

жду ваших ФЕ по поводу этого хака

  • +1 2
Надіслати
Поділитися на інших сайтах


смотри. это работает тогда, когда ты создаешь новый товар (или категорию)

if ($data['keyword']) // это идет проверка на то, если в этой переменной что-то есть

если же ты не заполняешь это поле seo url, то сработает другая часть кода...

и когда ты нажимаешь сохранить, то в БД заносится и данные из поля seo url

----------------------------------

получается, что когда ты будешь править товар или категорию, то у тебя поле seo_url уже будет заполнено

=================

и ответ на твой вопрос: ДА

и еще одно дополнение: если при редактировании удалить данные их seo url, то потом придется писать уже ручками тот url

или просто сделать еще проверку. если поле пустое то, вставить в это поле сформированный url

тока нужно помнить, что если обновить движок, то эти изменения нужно так же добавить!!!

Змінено користувачем ilma55
Надіслати
Поділитися на інших сайтах


Простите я приавльно понимаю это решение проблемы топика http://opencartforum...b0%d1%80%d0%b0/ ??

Попробовал в product так как в категориях мне это не надо их не много,

вставил в product.php

else

{

$alex_non_seo_url = $this->db->escape($value['name']);

$tr = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya","."=>"-"," "=>"-","?"=>"-","/"=>"-",""=>"-","*"=>"-",":"=>"-","*"=>"-","""=>"-","<"=>"-",">"=>"-","|"=>"-","'"=>"");

$alex_seo_url = strtr($alex_non_seo_url,$tr);

$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'product_id=" . (int)$product_id . "', keyword = '" . strtolower($alex_seo_url) . "'");

}

но почему то после создания товара он получил ссылку сайт.ру/категория_кольца/категория_кольца.html

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

хотя я ведь четко переименовал category_id в product_id

в чем проблема??

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


и один из наиболее важных недочетов - это создание нормальных ссылок.

не. есть вариант конечно платно, либо ручками все писать, но зачем?

...

посмотрите это решение

https://opencartforum.com/files/file/332-deadcow-seo-v21-automod/

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

Простите я приавльно понимаю это решение проблемы топика http://opencartforum...b0%d1%80%d0%b0/ ??

Попробовал в product так как в категориях мне это не надо их не много,

вставил в product.php

else

{

$alex_non_seo_url = $this->db->escape($value['name']);

$tr = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya","."=>"-"," "=>"-","?"=>"-","/"=>"-",""=>"-","*"=>"-",":"=>"-","*"=>"-","""=>"-","<"=>"-",">"=>"-","|"=>"-","'"=>"");

$alex_seo_url = strtr($alex_non_seo_url,$tr);

$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'product_id=" . (int)$product_id . "', keyword = '" . strtolower($alex_seo_url) . "'");

}

но почему то после создания товара он получил ссылку сайт.ру/категория_кольца/категория_кольца.html

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

хотя я ведь четко переименовал category_id в product_id

в чем проблема??

не заню че за фигня. у меня работает.

я для категории сделал. у меня на сайте их много.

по продуктам аналогигчно. нати то менсто, дополнить его и все.

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


  • 3 years later...

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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