Powermail导出任务如何将列名从字段标签替换为字段标记(自定义变量)
Powermail导出任务如何将列名从字段标签替换为字段标记(自定义变量)
我特别理解你想把Powermail导出文件的列名从字段标签换成自定义标记(也就是你说的字段marker)的需求,之前改了XSL模板里的Getter方法却没生效,确实挺闹心的,我来给你梳理几个靠谱的解决方向:
首先,先排查最容易踩坑的模板路径和缓存问题:
- 你得确认把修改后的
ExportXsl.html放到了正确位置,并且在TypoScript里指定系统使用这个自定义模板。比如在站点模板的TypoScript里加这么一行:
(路径换成你实际存放模板的位置),确保调度任务用的是你修改后的模板,而非Powermail默认的那个。plugin.tx_powermail.settings.scheduler.export.template = fileadmin/templates/powermail/ExportXsl.html - 还有TYPO3的缓存一定要清空!改完模板后,必须清空所有缓存(包括页面缓存、配置缓存、模板缓存),不然系统大概率还在加载旧的模板内容,你的修改自然不会生效。
然后说说你修改的ViewHelper问题:
你之前把GetFieldLabelFromUid换成GetFieldMarkerFromUid没效果,有可能是这个ViewHelper在你的Powermail版本里并不存在,或者调用逻辑不对。其实有个更直接的方法——在导出的XSL上下文里,每个字段对象本身就带有marker属性,你可以直接调用它,不用通过Getter方法绕一圈。
把你模板里的这段代码:
<vh:String.RemoveQuote><vh:Getter.GetFieldLabelFromUid uid="{fieldUid}" /></vh:String.RemoveQuote>
直接替换成:
<vh:String.RemoveQuote>{field.marker}</vh:String.RemoveQuote>
这样应该就能直接输出字段的自定义标记作为列名了。
最后再确认下调度任务的配置:
去TYPO3的调度任务里找到你的Powermail导出任务,检查“Export Template”选项是不是选了你自定义的模板文件,而非默认的“Default”选项。
按这个步骤试一遍,应该就能解决问题啦!
备注:内容来源于stack exchange,提问作者user3759978
相关产品推荐
相关产品推荐

