我们为 Enterprise 创建了一个具有 2 个控制器操作的模块,一个是索引,另一个是从批量操作中保存。我们使用以下 logging.xml 记录到管理操作日志:
<?xml version="1.0" encoding="UTF-8"?>
<logging>
<acme_productlabels translate="label">
<label>Acme Product Labels</label>
<actions>
<productlabels_productlabels_print>
<action>save</action>
<post_dispatch>postDispatchGeneric</post_dispatch>
</productlabels_productlabels_print>
<productlabels_productlabels_index>
<action>view</action>
<post_dispatch>postDispatchSimpleSave</post_dispatch>
</productlabels_productlabels_index>
</actions>
</acme_productlabels>
</logging>
这使用了自定义路由,因此我们在 config.xml 中添加了一个观察者来完成此操作:
<config>
<adminhtml>
<events>
<controller_action_postdispatch_productlabels>
<observers>
<enterprise_logging>
<class>enterprise_logging/observer</class>
<method>controllerPostdispatch</method>
</enterprise_logging>
</observers>
</controller_action_postdispatch_productlabels>
</events>
</adminhtml>
</config>
这适用于索引,但对于保存操作,它会失败。当我们将 postDispatchSimpleSave 用于保存操作时,它会记录该操作但没有完整的详细信息。
我们需要保存操作,在记录时,还包括提交给保存操作的参数。目前这包括选择的产品、数量和布尔值,作为网格中的批量提交。
所以我们的基本问题是,我们如何在 Magento 的管理操作日志中记录保存操作的完整细节?