This is an old revision of the document!
1) ТДС интернет магазин, настройки страницы, вставить перед:
$Shop_Controller_Show ->limit($limit) ->parseUrl();
Код:
$newPath = Core::$url['path']; $partsPath = explode('/', $newPath); if(count($partsPath) == 4) { $partsPath = array_reverse($partsPath); $oItems = Core_Entity::factory('shop_item'); $oItems->queryBuilder() ->where('shop_id', '=', 1) ->where('path', '=', $partsPath[1]); $aoItems = $oItems->findAll(); if(count($aoItems) == 1) { $oldPath = $aoItems[0]->Shop->Structure->getPath() . $aoItems[0]->getPath(); Core::$url['path'] = $oldPath; } elseif(count($aoItems) > 1) { $oldPath = $aoItems[0]->Shop->Structure->getPath() . $aoItems[0]->getPath(); Core::$url['path'] = $oldPath; Core_Log::instance() ->clear() ->status(4) ->write("Найдено более одного товара с путём $partsPath[1], выводится первый из них"); } }
После:
$Shop_Controller_Show ->limit($limit) ->parseUrl();
Добавить:
Core::$url['path'] = $newPath;
2. Меняем в нужных XSLT шаблонах в shop_item
ссылки. Вместо {url}
вставить /shop/{path}/
.
3. Для того чтобы на карте сайта (/sitemap/) выводились товары с изменённым url, необходимо в ТДС Google SiteMap в настройках страницы создать новый класс, который наследуется от Core_Sitemap
, и переопределить метод _structure
в котором изменяется часть с url товара.
Страницу создал Константин Сериков 18.10.16 в 17:07