pagemachine/typo3-formlog

TYPO3表单日志

安装次数: 155,089

依赖项: 4

建议者: 0

安全: 0

星标: 21

关注者: 8

分支: 15

开放问题: 13

语言:JavaScript

类型:TYPO3 CMS 扩展

2.2.3 2023-11-23 11:24 UTC

README

TYPO3表单日志

安装

此扩展可以从各种来源安装

  1. 通过Composer

     composer require pagemachine/typo3-formlog
    
  2. TYPO3 扩展仓库

用途

TYO3 表单扩展中缺少一个功能是表单数据的日志记录。如果您曾经使用过现在已停用的Formhandler扩展,您就知道这有多有价值。您可以通过导出到CSV或类似格式来轻松检查表单提交是否按预期工作,查看内部值是否正确生成,并进行一些基本分析。

请参阅我们的关于TYPO3表单日志扩展的博客文章

开始记录

可以通过向其表单定义中添加LogFormData完成器来为任何表单启用日志记录

finishers:
  - ...

  - identifier: LogFormData

  - identifier: Redirect

LogFormData完成器应该是最后一个完成器,或者在使用Redirect完成器之前。重定向之后无法进行日志记录。

还可以通过使用finisherVariables选项记录存储在FinisherVariableProvider中的附加变量

  - identifier: LogFormData
    options:
      finisherVariables:
        MyCustomFinisher:
          - myCustomVariable

finisherVariables中的键是在表单中使用的完成器的标识符,每个条目的值是完成器变量名称的列表。在此示例中,由完成器MyCustomFinisher提供的完成器变量myCustomVariable将被记录。

表单日志模块

默认情况下,表单日志模块显示一些基本字段,如页面、表单标识符、语言和表单提交日期作为列。

可以通过在ext_typoscript_setup.txt中设置list.columns来添加额外的列

module.tx_formlog {
  settings {
    list {
      columns {
        100 {
          property = data.email
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.email.properties.label
        }
      }
    }
  }
}

list.columns中可以添加任意列,其中property选项引用FormLogEntry域模型中的属性路径。简单地说,data.*通过表单元素标识符提供对表单数据的访问,例如data.email用于email表单元素的值。使用label选项检索可翻译的标签。通常,可以简单地使用在表单本身中使用的相同标签。

同样,finisherVariables.*通过利用完成器标识符和变量名称为额外的完成器变量执行相同的操作

module.tx_formlog {
  settings {
    list {
      columns {
        200 {
          property = finisherVariables.MyCustomFinisher.myCustomVariable
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Formlog/locallang.xlf:formlog.entry.finisherVariables.MyCustomFinisher.myCustomVariable
        }
      }
    }
  }
}

在这里,将MyCustomFinishermyCustomVariable添加为列表的列。

表单日志导出

默认情况下,表单日志条目可以导出到CSV和Excel(XLSX)。默认导出表单日志条目的基本字段,可以通过在ext_typoscript_setup.txt中的export.columns设置添加额外的列,该设置与list.columns设置配置相同

module.tx_formlog {
  settings {
    export {
      columns {
        100 {
          property = data.firstname
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.firstname.properties.label
        }
        101 {
          property = data.lastname
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.lastname.properties.label
        }
        102 {
          property = data.email
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.email.properties.label
        }
        200 {
          property = finisherVariables.MyCustomFinisher.myCustomVariable
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Formlog/locallang.xlf:formlog.entry.finisherVariables.MyCustomFinisher.myCustomVariable
        }
      }
    }
  }
}

日志条目清理

可以将表垃圾收集调度任务设置为自动删除旧表单日志条目。选择tx_formlog_entries作为要清理的表,以及删除给定天数之前的老条目的合适值,默认为180天。

测试

所有测试都可以使用随附的Docker Compose定义执行。

docker compose run --rm app composer build

谢谢

本包的开发自豪地得到了TÜV Hessen的支持。