Столкнулся с проблемой когда подкатегории имеют одинаковое название. Получаются ссылки вида phones/samsung и tv/samsung - в этом случае seo pro ищет нужную категорию используя только последнее название в данном случае samsung. Из-за этого открывается либо одна и таже категория или вообще страница не найдена это в зависимости от версии файла seo_pro.php.
Решил написать сам и делюсь с Вами ))
Все что я дописал это вот эти строчки в файле catalog\controller\common\seo_pro.php
//Одинаковые seo url чпу
if (isset($a) && $a[0]=="category_id") {
$query = $this->db->query("SELECT a.* FROM " . DB_PREFIX . "url_alias a, " . DB_PREFIX . "category c WHERE a.keyword = '" . $this->db->escape($keyword) . "' AND a.query=CONCAT('category_id=', c.category_id) AND c.parent_id='".$a[1]."'");
if ($query->num_rows) {
$rows[] = array('keyword' => $keyword, 'query' => $query->row['query']);
$a = explode("=",$query->row['query']);
} else {
if (isset($this->cache_data['keywords'][$keyword])) {
$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
}
}
} else {
if (isset($this->cache_data['keywords'][$keyword])) {
$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
$a=explode("=",$this->cache_data['keywords'][$keyword]);
}
}
//End Одинаковые seo url чпу
Решил написать сам и делюсь с Вами ))
Все что я дописал это вот эти строчки в файле catalog\controller\common\seo_pro.php
//Одинаковые seo url чпу
if (isset($a) && $a[0]=="category_id") {
$query = $this->db->query("SELECT a.* FROM " . DB_PREFIX . "url_alias a, " . DB_PREFIX . "category c WHERE a.keyword = '" . $this->db->escape($keyword) . "' AND a.query=CONCAT('category_id=', c.category_id) AND c.parent_id='".$a[1]."'");
if ($query->num_rows) {
$rows[] = array('keyword' => $keyword, 'query' => $query->row['query']);
$a = explode("=",$query->row['query']);
} else {
if (isset($this->cache_data['keywords'][$keyword])) {
$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
}
}
} else {
if (isset($this->cache_data['keywords'][$keyword])) {
$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
$a=explode("=",$this->cache_data['keywords'][$keyword]);
}
}
//End Одинаковые seo url чпу
в Opencart нет SeoPro, этот модуль появился в ocStore.
ОтветитьУдалитьпо коду видно что это модицикация "кешируемый SeoPro"
после того как внес изменения на странице с товарами пишет "Запрашиваемая страница не найдена"!
ОтветитьУдалитьСегодня как раз столкнулся с такой же проблемой, поэтому решил разобраться и поправил код, обновил
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьСпасибо за полезную правку!
ОтветитьУдалитьЕще бы данный кусок кода в кэш отправлять, чтобы при повторных переходах по данной ссылке не дергать базу. Это еще и скорости прибавит! Или я ошибаюсь?
Добрый день.
ОтветитьУдалитьПрописал в seo_pro.php данные строчки - категории работают, а вот товар не выводит. Пишет Страница не найдена. Что можно сделать?
Здравствуйте часто сталкиваюсь с подобной проблемой, так как приходиться вести интернет магазин. При загрузке новых наименований часто происходит вышеописанная путаница, но в моем случае всегда "страница не найдена". Сайт сделан на платформе joomla 3, друг нашел готовый рабочий шаблон https://www.templatemonster.com/ru/opencart-templates-type/. Но как я уже упомянул, случаются косяки. Применил ваш код и конфликт исчез, большое спасибо.
ОтветитьУдалить