rkw/rkw-outcome

处理结果调查的扩展

安装: 69

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:typo3-cms-extension

v10.4.1-stable 2024-09-11 12:50 UTC

README

特性

处理结果调查的扩展。

结构和流程

如果一个活动预订或订单被确认,触发的信号最终将启动与相应预订或订单相关联的调查请求的创建过程。

只有当活动预订或订单符合后端设置的现有调查配置时,才会创建调查请求。以下参数必须匹配

  • 目标组
  • 产品或事件

如果这些参数匹配,调查请求将立即创建。一个计划任务将负责处理这些挂起的调查请求。因此,需要在调度器中设置相应的任务 SurveyRequestCommandController->processSurveyRequestsCommand()。它接受以下参数

  • checkPeriod(可能可处理的事件预订或订单的时间范围 - 以秒为单位)
  • maxSurveysPerPeriodAndFrontendUser(在checkPeriod内发送给用户的最大请求通知数量)
  • surveyWaitingTime(仅选择至少在指定时间内发货的调查请求)

如果有挂起的调查请求,它们将被处理。如果有多个请求挂起,即至少有两个与调查配置关联的产品或事件,流程将随机选择其中一个并将其存储在包含的调查请求中。每个匹配的调查请求将获得一个时间戳,以标记它们已通知。

同时,将向相应的前端用户发送通知,提供所选调查的链接。此链接将带他们到包含常规调查插件的页面,但结合所选调查的uid和增强的实况url配置,前端用户将获得相应的调查并可以继续。

设置

您应该创建一个后端文件夹来存储结果记录。此文件夹的uid应设置为常量 storagePid

此扩展依赖于扩展rkw_events和rkw_shop。这两个扩展都提供了额外的常量 targetGroupsPid。应使用此常量将目标组的选择限制在订单或预订表单中为所选父sys_category的uid。

此外,您应将常量 surveyShowPid 设置为包含您的调查插件的页面uid。这将在渲染通知邮件中的相应调查链接时使用。

实况url配置的必要增强

                //===============================================
                // Survey
                'tx-rkw-survey' => array (
                    array(
                        'GETvar' => 'tx_rkwsurvey_survey[controller]',
                        'valueMap' => array(
                            'survey' => 'Survey',
                        ),
                    ),
                    array(
                        'GETvar' => 'tx_rkwsurvey_survey[action]' ,
                    ),
                    // look-up table - param has to be set in cHash-ignore in Install-Tool!
                    array(
                        'GETvar' => 'tx_rkwsurvey_survey[survey]' ,
                        'lookUpTable' => [
                            'table' => 'tx_rkwsurvey_domain_model_survey',
                            'id_field' => 'uid',
                            'alias_field' => 'CONCAT(name, "-", uid)',
                            'addWhereClause' => ' AND NOT deleted AND NOT hidden',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => [
                                'strtolower' => 1,
                                'spaceCharacter' => '-',
                            ],
                        ],
                    ),
                    array(
                        'GETvar' => 'tx_rkwsurvey_survey[surveyResult]',
                    ),
                ),

测试

一些测试依赖于将环境时间设置为对应不同基于时间的情况。因此,请确保通过以下命令在根目录中安装以下包:

composer require nesbot/carbon --dev

编辑状态:2023-04-20