Все товары minishop2 по url в папке product
Добрый день!
Интернет магазин на minishop2 v2.5.0 имеет большое кол-во товаров и url адрес товара у меня складывается из domain.ru/категории/под-категории/имя-продукта.html
Как сделать так, что бы у всех товаров был URL domain.ru/product/имя-продукта.html?
modx.pro/help/11344 — этот способ не сработал.
Плагином на событие OnDocFormSave.
Интернет магазин на minishop2 v2.5.0 имеет большое кол-во товаров и url адрес товара у меня складывается из domain.ru/категории/под-категории/имя-продукта.html
Как сделать так, что бы у всех товаров был URL domain.ru/product/имя-продукта.html?
modx.pro/help/11344 — этот способ не сработал.
Плагином на событие OnDocFormSave.
if ( $resource->class_key == 'msProduct' ) {
$uri = 'product/' . $resource->pagetitle . '.html';
$resource->set('uri', $uri);
$resource->save();
}
Заморозка URL тоже не подходит. Комментарии: 4
Заморозка URL — вполне себе вариант.
Можно все товары создавать в категории products и использовать мультикатегории
Можно все товары создавать в категории products и использовать мультикатегории
а как сделать автоматизированную заморозку URL?
в ручную прописывать у каждого товара, как так себе дело.
в ручную прописывать у каждого товара, как так себе дело.
плагин на сохранение. Вон у вас в посте есть кусок кода, добавьте просто uri_override=1
if ( $resource->class_key == 'msProduct' ) {
$uri = 'product/' . $resource->pagetitle . '.html';
$resource->set('uri', $uri);
$resource->set('uri_override', 1);
$resource->save();
}
Можно в консоле выполнить:
Но, можно указать всем категориям, чтобы они не использовали свои алиасы для формирования url:
В этом случае при создании товара вам не нужно ничего делать. А для новой категории убрать соответствующую галочку.
if($products = $modx->getCollection('msProduct')) {
foreach($products as $product) {
$product->set('uri_override', 1);
$product->set('uri', 'product/' . $product->get('alias') . '.html');
$product->save();
}
}
Но, можно указать всем категориям, чтобы они не использовали свои алиасы для формирования url:
$categories = $modx->getCollection('msCategory');
foreach($categories as $category) {
$category->set('alias_visible', 0);
$category->save();
}
При условии, что все категории имеют общего родителя. У этого родителя должен быть алиас product и установлена галочка 'Использовать псевдоним в пути псевдонимов'В этом случае при создании товара вам не нужно ничего делать. А для новой категории убрать соответствующую галочку.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.