Mc14 писал(а): ↑09 фев 2025, 16:54
Здравствуйте.
SeoPro не работает с категориями с установленным шаблоном Простор.
Подробнее, ставлю чистый 3.0.3.9, включаю ЧПУ, SeoPro, htaccess есть, кэш весь чищу.
Проверяю на дефолтном шаблоне, все норм, категории и товары отображаются в чпу. Создаю новую тестовую категорию, все ок.
Ставлю опять чистый 3.0.3.9, накатываю шаблон Простор, включаю ЧПУ, SeoPro и т.д., делаю тест. категорию. Проверяю, товары отображаются с чпу, а категории нет, в виде "index.php?route=product/category&path=". Отключаю SeoPro, оставляю только ЧПУ, категории и товары нормально отображаются в чпу.
Проверял в 3.0.3.9 и на PHP 8.1 и на 7.4, проблема повторяется.
Попробовал на прошлой 3.0.3.7 с php 7.4, всё сразу SeoPro работает и на дефолтном и с шаблоном, категории и товары в чпу.
Столкнулся с данной проблемой на шаблоне Простор и ocStore 3.0.3.9 (liveopencart)
Сравнил файлы seopro.php версий 3.0.3.7 и 3.0.3.9
Отличия в том, что в версии 3.0.3.9 добавлены пустые строки, соответственно если в модификаторе используется "offset", то в некоторых случаях будет различное кол-во строк, и модификация будет уже неправильная, что и получается в итоге.
Вот проблемный блок кода:
seopro 3.0.3.7
Код: Выделить всё
case 'path':
$categories = explode('_', $value);
foreach ($categories as $category_id) {
$queries[] = 'category_id=' . (int)$category_id;
}
unset($data[$key]);
break;
default:
break;
seopro 3.0.3.9
Код: Выделить всё
case 'path':
$categories = explode('_', $value);
foreach ($categories as $category_id) {
$queries[] = 'category_id=' . (int)$category_id;
}
unset($data[$key]);
break;
default:
break;
Модификатор Простор:
Код: Выделить всё
<operation error="skip">
<search><![CDATA[
$queries[] = 'category_id=' . (int)$category_id;
]]></search>
<add position="after" offset="3"><![CDATA[
//prostore start
// тут вырезанный код
//prostore end
]]></add>
</operation>
Соответственно, что бы он сработал правильно, надо ставить offset="5"
Предположу, что подобная проблема может возникнуть и с другими шаблонами или модулями, которые будут модифицировать seopro.php