如何从 Shopware 的侦听器更改 return 的核心功能
How to change return of core function from Shopware's listener
问题是关于电子商务平台 Shopware 的。
我需要更改 urls 商店中产品的保存方式。
客户想要短 url 所以只保存第一个类别。没有类别路径。
不是category1/category2/category3/productname
但是这个 category1/productname.
尝试了后端基本设置-> 前端-> SEO 路由设置-> SEO URL 的项目模板。但是无法让它工作。
所以我尝试了 listener。事件:
public static function getSubscribedEvents()
{
return [
'sRewriteTable::sSmartyCategoryPath::before' => 'onTableRewrite'
];
}
和相关函数:
public function onTableRewrite(\Enlight_Hook_HookArgs $args)
{
/** @var \Shopware_Controllers_Backend_Article $subject */
$subject = $args->getSubject();
$paramArgs = $args->getArgs();
//$args->setReturn('asdfasdf');
//$paramArgs = $args->set('categoryID', 1);
if(!empty($paramArgs[0]['articleID'])){
return 'ThisisKeva';
}
return true;
}
我尝试 return 一些东西只是为了看看它是否有效,但它从来没有起作用。就像我的听众对核心功能的工作方式没有影响。但它以 die();
停止
如何改变监听器的核心功能return?
可能吗?我是不是误会了什么?
您不需要插件。您可以将其用作产品 seo 模板:
{assign var='tree' value='/'|explode:{sCategoryPath articleID=$sArticle.id}}{$tree.0}/{$sArticle.name}
说明:
- 将类别树添加到变量中并将其拆分为数组
- 使用数组的第一个条目作为键
问题是关于电子商务平台 Shopware 的。 我需要更改 urls 商店中产品的保存方式。 客户想要短 url 所以只保存第一个类别。没有类别路径。
不是category1/category2/category3/productname
但是这个 category1/productname.
尝试了后端基本设置-> 前端-> SEO 路由设置-> SEO URL 的项目模板。但是无法让它工作。
所以我尝试了 listener。事件:
public static function getSubscribedEvents()
{
return [
'sRewriteTable::sSmartyCategoryPath::before' => 'onTableRewrite'
];
}
和相关函数:
public function onTableRewrite(\Enlight_Hook_HookArgs $args)
{
/** @var \Shopware_Controllers_Backend_Article $subject */
$subject = $args->getSubject();
$paramArgs = $args->getArgs();
//$args->setReturn('asdfasdf');
//$paramArgs = $args->set('categoryID', 1);
if(!empty($paramArgs[0]['articleID'])){
return 'ThisisKeva';
}
return true;
}
我尝试 return 一些东西只是为了看看它是否有效,但它从来没有起作用。就像我的听众对核心功能的工作方式没有影响。但它以 die();
停止如何改变监听器的核心功能return? 可能吗?我是不是误会了什么?
您不需要插件。您可以将其用作产品 seo 模板:
{assign var='tree' value='/'|explode:{sCategoryPath articleID=$sArticle.id}}{$tree.0}/{$sArticle.name}
说明:
- 将类别树添加到变量中并将其拆分为数组
- 使用数组的第一个条目作为键