问题描述
我正在迁移一个捆绑包,在产品页面上添加一个链接按钮,从 akeneo 2.3 到 akeneo 3.2。在 2.3 中,我们在 parameters.yml 上定义了一个参数
#CUSTOM
magento_base_url: http://mymagento.com/
然后在 form_extensions 中
extensions:
pim-product-edit-form-magento-link-frontend:
module: pim/product-edit-form/magento-link
parent: pim-product-edit-form
targetZone: buttons
position: 90
magentoBaseUrl: "%magento_base_url%" <-- MY CUSTOM ATTR
type: frontend
然后在 js 中我会有
define(
[
'underscore','oro/translator','pim/form','pim/template/product/magento-link'
],function (_,__,BaseForm,template) {
return BaseForm.extend({
template: _.template(template),render: function () {
let linkPath,linkLabel,sku = this.getFormModel().get('identifier'),baseUrl = this.options.magentoBaseUrl; <-- THIS
其中 baseUrl 包含 http://mymagento.com/
升级到 3.2 后,baseUrl 上的值正好是 %magento_base_url%
我应该怎么做才能将此参数传递给 js 堆栈?
解决方法
似乎从 3.2 版本开始,akeneo 使用节点引擎来解析 form_extensions yaml,并且您无法再访问这些参数。作为解决方法,我编写了一个控制器并通过 ajax 检索值