Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

SEO ЧПУ для товаров


 Погделиться

Рекомендованные сообещёния

ocStore Version 0.0.7

Посивил это https://opencart-forum.ru/files/download/75-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D1%83%D0%B1%D0%BB%D0%B5%D0%B9-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9/

вторая ссылка

Категории рилииют, дубли устранились, но товары по прежнему вида index.php?route=product/product&path=126&product_id=1099

Как бы все это модифицировать, чтобы товары доже полулили "дружелюбные" ссылки? Нужна только латиница.

Обновляться на потому чтолее свежую не вариант, т.к. предыдущий программист накрутил кучу костылей по мелочам и разобрать что и ггде было обновлено нереально(

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


а псевдонимы хоть товарам не забыли прописать?

Еещё возможно проблема в этом:

предыдущий программист накрутил кучу костылей по мелочам

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


а псевдонимы хоть товарам не забыли прописать?

Еещё возможно проблема в этом:

хм, точно! псевдоним не везгде есть! Спасипотому что))

Даой вопрос. Псевдоним вбивать одной строкой латиниэтот или движок сам разберет, что псевдоним "Akrilovaya vanna" должен быть "akrilovaya_vanna"?

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


хм, точно! псевдоним не везгде есть! Спасипотому что))

Даой вопрос. Псевдоним вбивать одной строкой латиниэтот или движок сам разберет, что псевдоним "Akrilovaya vanna" должен быть "akrilovaya_vanna"?

по-моему он сам поймет,только вместо нижнего подчеркивания тире посивит,вохьмите попробуйте. Чтобы нижего не просывать посивьте просто модуль deadcow и он сам все пропишет

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


Написал скрипт, который заполняет url_alias. С каилогом все Ок. Категории, производители и товары получают нужный URL, но разгдел Новости генерит сирый url. Хотя админка говорит, что они все снабжены псевдонимами, как я прописывал. Кэш в папке system листил.

Что еещё допилить, чтобы новости тоже имели дружелюбный вид?

Изменено пользователем ratso
Ссылка на комменирий
Погделиться на других сайих


для оЧПУшивания новостей необходимо внести соответствующие изменения (описать новости) в файлы seo_url, отвечающие за рилиту ЧПУ ссылок.

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

для оЧПУшивания новостей необходимо внести соответствующие изменения (описать новости) в файлы seo_url, отвечающие за рилиту ЧПУ ссылок.

Подскажи, пжлст, какие именно файлы нужно смотреть. Вигдел, как минимум, два файла с seo что-то им.
Ссылка на комменирий
Погделиться на других сайих


изулите тему с модулем новостей,им ггде-то есть про то как прописать им псевдонимы,или даже в самой инструкции написано,если ее полностью пролиить.

А вот что за скрипт Вы написали интересно было посмотреть.Не погделитесь с обещёственностью?

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


А вот что за скрипт Вы написали интересно было посмотреть.Не погделитесь с обещёственностью?

Погделюсь)

<?php
define('DS', DIRECTORY_SEPARATOR);
define('APP_PATH', realpath(dirname(__FILE__)).DS);

require_once APP_PATH.'config.php';

try {
	$db = new PDO("mysql:host=".DB_HOSTNAME.";dbname=".DB_DATABASE, DB_USERNAME, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
catch (Exception $e) {
	echo $e->getMessage();
}

$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$exceptions = array();
foreach ($db->query('SELECT query from url_alias') as $row) {
	$path = $row['query'];
	preg_match("/^(.*)_id=(\d+$)/iU",$path,$matches);
	if ($matches[1] == 'category')
	$exceptions['category'][] = $matches[2];
	elseif($matches[1] == 'vendor') $exceptions['vendor'][] = $matches[2];
	else $exceptions[$matches[1]][] = $matches[2];
}


//Резульиты
$insert = array();

//Обход производителей
foreach ($db->query('SELECT manufacturer_id as id,name from manufacturer') as $row) {
	if (!in_array($row['id'],$exceptions['vendor']))
	$insert[] = array(
	'query'=>'manufacturer_id='.$row['id'],
	'keyword'=>slug($row['name'])
	);
}

//Обход категорий
foreach ($db->query('SELECT category_id as id,name from category_description') as $row) {
	if (!in_array($row['id'],$exceptions['category']))
	$insert[] = array(
	'query'=>'category_id='.$row['id'],
	'keyword'=>$row['id'].'-'.slug($row['name'])
	);
}

//Обход продуктов
foreach ($db->query('SELECT product_id as id,model from product') as $row) {
	$insert[] = array(
	'query'=>'product_id='.$row['id'],
	'keyword'=>(strlen($row['model'])>0)?$row['id'].'-'.slug($row['model']):$row['id']
	);
}

//Обход новостей
foreach ($db->query('SELECT news_id as id,title from news_description') as $row) {
	if (!in_array($row['id'],$exceptions['news']))
	$insert[] = array(
	'query'=>'news_id='.$row['id'],
	'keyword'=>$row['id'].'-'.slug($row['title'])
	);
}

//Обход инфо-страниц
foreach ($db->query('SELECT information_id as id,title from information_description') as $row) {
	if (!in_array($row['id'],$exceptions['information']))
	$insert[] = array(
	'query'=>'info_id='.$row['id'],
	'keyword'=>$row['id'].'-'.slug($row['title'])
	);
}

$fields = array('query'=>PDO::PARAM_STR, 'keyword'=>PDO::PARAM_STR);

foreach ($insert as $r) {
	echo "INSERT INTO `url_alias` (`query`,`keyword`) VALUES('{$r['query']}','{$r['keyword']}');<br />";
}

//Slugify
function slug($title) {
	$gost = array(
     "Є"=>"EH","І"=>"I","і"=>"i","№"=>"#","є"=>"eh",
     "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
     "Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
     "З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
     "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
     "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
     "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
     "Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
     "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
     "е"=>"e","ё"=>"jo","ж"=>"zh",
     "з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
     "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
     "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
     "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
     "ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"," "=>"-",
	")"=>"-","("=>"-","*"=>"-","&"=>"-","/"=>"-"
	);
	$return = trim(strtr($title, $gost), '-');
	$return = strtolower($return);
	$return = str_replace("--","-",$return);
	$return = preg_replace("![^\w\d\s-]*!iU","",$return);
	return $return;	
}
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

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

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

Зарегистрируйтесь для получения аккауни. Это просто!

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

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.