Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Opencart SEO url в базе данных для категорий и товаров

Практика



для того чтобы это сделать нужно транлитерировать и запустить запросы которые сформируют соотвествующие клбчи для уникальные ЧПУ ссылок для каждого товара и категории

 

 

формирование ссылок для категорий с учетом существующих 

 

 

  DELETE FROM oc_seo_url WHERE is_auto=1;

 

 

INSERT INTO oc_seo_url ( store_id , language_id , query , keyword, is_auto)
SELECT 0, 2, CONCAT('category_id=',category_id) ,

replace( replace( LOWER(translit(name)),'---','-'),'--','-')

,1 FROM oc_category_description
LEFT JOIN oc_seo_url_copy osu ON osu.query=CONCAT('category_id=',category_id)
WHERE osu.query IS NULL

 

 

 

 предварительно нужно создать копию таблицы oc_seo_url_copy  из oc_seo_url со значениями  и специальное поле для удобного удаления is_auto

 

 

 

функция транслита на MYSQL

 

 

CREATE DEFINER = 'вашпользователь'@'%'
FUNCTION translit(`_txt` VARCHAR(250))
RETURNS text CHARSET utf8
BEGIN
DECLARE _f varchar(5);
DECLARE _t varchar(15);
DECLARE done INT DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT f,t from translit;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

open cur;
the_loop: LOOP

 
FETCH cur INTO _f,_t;
IF done THEN
LEAVE the_loop;
END IF;
set _txt=replace(_txt,_f,_t);
END LOOP the_loop;

CLOSE cur;
return _txt;
END

 

 

 

таблица соотвествия тренслитерации символов  translit

 
CREATE TABLE IF NOT EXISTS `translit` (
`f` varchar(3) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`t` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`f`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

 

 


INSERT INTO translit(t, f) VALUES
('-', '%');
INSERT INTO translit(t, f) VALUES
('-', '?');
INSERT INTO translit(t, f) VALUES
('-', '/');
INSERT INTO translit(t, f) VALUES
('-', '"');
INSERT INTO translit(t, f) VALUES
('a', 'а');
INSERT INTO translit(t, f) VALUES
('b', 'б');
INSERT INTO translit(t, f) VALUES
('v', 'в');
INSERT INTO translit(t, f) VALUES
('g', 'г');
INSERT INTO translit(t, f) VALUES
('d', 'д');
INSERT INTO translit(t, f) VALUES
('e', 'е');
INSERT INTO translit(t, f) VALUES
('e', 'е');
INSERT INTO translit(t, f) VALUES
('zh', 'ж');
INSERT INTO translit(t, f) VALUES
('z', 'з');
INSERT INTO translit(t, f) VALUES
('i', 'и');
INSERT INTO translit(t, f) VALUES
('y', 'й');
INSERT INTO translit(t, f) VALUES
('k', 'к');
INSERT INTO translit(t, f) VALUES
('l', 'л');
INSERT INTO translit(t, f) VALUES
('m', 'м');
INSERT INTO translit(t, f) VALUES
('n', 'н');
INSERT INTO translit(t, f) VALUES
('o', 'о');
INSERT INTO translit(t, f) VALUES
('r', 'р');
INSERT INTO translit(t, f) VALUES
('s', 'с');
INSERT INTO translit(t, f) VALUES
('t', 'т');
INSERT INTO translit(t, f) VALUES
('u', 'у');
INSERT INTO translit(t, f) VALUES
('f', 'ф');
INSERT INTO translit(t, f) VALUES
('h', 'х');
INSERT INTO translit(t, f) VALUES
('c', 'ц');
INSERT INTO translit(t, f) VALUES
('ch', 'ч');
INSERT INTO translit(t, f) VALUES
('sh', 'ш');
INSERT INTO translit(t, f) VALUES
('shc', 'щ');
INSERT INTO translit(t, f) VALUES
('y', 'ы');
INSERT INTO translit(t, f) VALUES
('e', 'э');
INSERT INTO translit(t, f) VALUES
('yu', 'ю');
INSERT INTO translit(t, f) VALUES
('ya', 'я');
INSERT INTO translit(t, f) VALUES
('A', 'А');
INSERT INTO translit(t, f) VALUES
('B', 'Б');
INSERT INTO translit(t, f) VALUES
('V', 'В');
INSERT INTO translit(t, f) VALUES
('G', 'Г');
INSERT INTO translit(t, f) VALUES
('D', 'Д');
INSERT INTO translit(t, f) VALUES
('E', 'Е');
INSERT INTO translit(t, f) VALUES
('Yo', 'Ё');
INSERT INTO translit(t, f) VALUES
('Zh', 'Ж');
INSERT INTO translit(t, f) VALUES
('Z', 'З');
INSERT INTO translit(t, f) VALUES
('I', 'И');
INSERT INTO translit(t, f) VALUES
('y', 'Й');
INSERT INTO translit(t, f) VALUES
('K', 'К');
INSERT INTO translit(t, f) VALUES
('L', 'Л');
INSERT INTO translit(t, f) VALUES
('M', 'М');
INSERT INTO translit(t, f) VALUES
('N', 'Н');
INSERT INTO translit(t, f) VALUES
('O', 'О');
INSERT INTO translit(t, f) VALUES
('P', 'П');
INSERT INTO translit(t, f) VALUES
('R', 'Р');
INSERT INTO translit(t, f) VALUES
('S', 'С');
INSERT INTO translit(t, f) VALUES
('T', 'Т');
INSERT INTO translit(t, f) VALUES
('U', 'У');
INSERT INTO translit(t, f) VALUES
('F', 'Ф');
INSERT INTO translit(t, f) VALUES
('H', 'Х');
INSERT INTO translit(t, f) VALUES
('C', 'Ц');
INSERT INTO translit(t, f) VALUES
('Ch', 'Ч');
INSERT INTO translit(t, f) VALUES
('Sh', 'Ш');
INSERT INTO translit(t, f) VALUES
('Shc', 'Щ');
INSERT INTO translit(t, f) VALUES
('Y', 'Ы');
INSERT INTO translit(t, f) VALUES
('E', 'Э');
INSERT INTO translit(t, f) VALUES
('Yu', 'Ю');
INSERT INTO translit(t, f) VALUES
('Ya', 'Я');
INSERT INTO translit(t, f) VALUES
('-', 'Ь');
INSERT INTO translit(t, f) VALUES
('-', 'ь');
INSERT INTO translit(t, f) VALUES
('-', 'Ъ');
INSERT INTO translit(t, f) VALUES
('-', 'ъ');
INSERT INTO translit(t, f) VALUES
('-', ' ');
INSERT INTO translit(t, f) VALUES
('p', 'п');
INSERT INTO translit(t, f) VALUES
('-', '(');
INSERT INTO translit(t, f) VALUES
('-', ')');
INSERT INTO translit(t, f) VALUES
('-', ',');
INSERT INTO translit(t, f) VALUES
('-', '.');
INSERT INTO translit(t, f) VALUES
('-', ';');
INSERT INTO translit(t, f) VALUES
('-', ':');

создано: 2018-05-02
обновлено: 2021-03-13
525



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)