事件

事件

这是可用钩子的完整列表。如果你不熟悉这一点,请阅读我们的活动指南

“仪表盘

“Dashboard.changeDefaultDashboardLayout”

中定义的Piwik /插件/仪表板/仪表板排队205

允许其他插件修改默认仪表板布局。

回调函数签名:

函数(& defaultLayout美元)
  • 默认仪表板布局的JSON编码字符串。包含一个列数组,其中每列都是一个小部件数组。每个小部件都是包含以下元素的关联数组:

    ** *uniqueId**:小部件的唯一ID。** *parameters**:应该用来获取这个小部件的报告的查询参数数组。

访问

Access.Capability.addCapabilities

中定义的Piwik /访问/ CapabilitiesProvider排队43

触发以添加新功能。例子

公共函数addCapabilities(&$capabilities) {$capabilities[] = new MyNewCapability();}

回调函数签名:

函数(& $功能)
  • \能力美元的报告报告数组

用法:

TagManager: addCapabilities

Access.Capability.filterCapabilities

中定义的Piwik /访问/ CapabilitiesProvider排队62

触发过滤/限制能力。例子

公共函数filterCapabilities(&$capabilities) {foreach ($capabilities as $index => $capability) {if ($capability->getId() === 'tagmanager_write') {} unset($capabilities[$index]);//删除给定的能力

回调函数签名:

函数(& $功能)
  • \能力美元的报告报告数组

Access.modifyUserAccess

中定义的Piwik /访问排队302

加载当前用户的初始访问级别和权限后触发。使用此事件修改当前用户的权限(例如,确保每个用户都具有对特定站点的视图访问权)。例子

函数(&$idsitesByAccess, $login) {if ($login == ' someespecaluser '){返回;} $idsitesByAccess['view'][] = $mySpecialIdSite;}

回调函数签名:

函数(& $ this - > idsitesByAccess, $ this - >登录)
  • 当前用户对各个站点的访问级别。将角色和能力id映射到站点id列表,例如:

    “的”(“视图”= >(1、2、3),“写”= >(4、5)的管理 ' => [], ] ```
  • 字符串美元的登录当前用户的登录。

行动

Actions.addActionTypes

中定义的Piwik /插件/行动/列/ ActionType排队59

插件可以使用这个事件来添加他们自己的动作类型,所以它们在分段中可用。数组将内部id映射到访问者详细信息中使用的可读的动作类型名称

例子

公共函数addActionTypes(&$availableTypes) {$availableTypes[] = array('id' => 76, 'name' => 'media_play');}

回调函数签名:

函数(& $ availableTypes]
  • 数组& $ availableTypes

用法:

行动:addActionTypes

Actions.Archiving.addActionMetrics

中定义的Piwik /插件/行动/指标排队90

回调函数签名:

函数(& metricsConfig美元)

用法:

带宽:addActionMetricsPagePerformance: addActionMetrics

Actions.getCustomActionDimensionFieldsAndJoins

中定义的Piwik / Plugins /动作/ VisitorDetails排队295

回调函数签名:

函数(& $ customFields & customJoins美元)

用法:

带宽:provideActionDimensionFields内容::provideActionDimensionFieldsCustomDimensions: provideActionDimensionFieldsCustomVariables: provideActionDimensionFields电子商务:provideActionDimensionFields事件:provideActionDimensionFields

API

API。pluginName。methodName美元

中定义的Piwik / API /代理排队225

在分派API请求之前触发。事件发生后直接触发该事件API.Request.dispatch事件触发。它可以用来修改传递给对象的参数API方法。

注意:这可以通过API.Request.dispatch事件,但是该事件的事件处理程序将不得不做更多的工作。

例子

Piwik:: addAction (API.Actions。getPageUrls', function (&$parameters){//强制使用单个网站。出于某种原因。$parameters['idSite'] = 1;});

回调函数签名:

函数(& finalParameters美元)
  • 将传递给API方法的参数列表。

API。pluginName。methodName.end美元

中定义的Piwik / API /代理排队300

在API请求被分派后直接触发。此事件为方便而存在,在事件发生之前立即触发API.Request.dispatch.end事件。类的输出API方法。

注意:可以使用API.Request.dispatch.end事件,但是该事件的事件处理程序将不得不做更多的工作。

例子

Piwik::addAction('API.Actions. actions . ')getPageUrls',函数(&$returnValue, $info)) {$returnValue->过滤器('ColumnCallbackReplace', 'label',函数($label, $hits) {if ($hits === 0){返回$label。(0次命中);} else{返回$label;}}, null, array('nb_hits'));}

回调函数签名:

endHookParams美元
  • 返回API方法的返回值。可以是一个对象,例如数据表实例。可能是数据表

  • 数组extraInfo美元一个包含API请求信息的数组。将包含以下数据:

    - **className**:正在调用的API实例的命名空间-d类名。- **module**: API请求被发送到的插件的名称。—**action**:执行的API方法名称。- **parameters**:传递给API方法的参数数组。

API.addGlossaryItems

中定义的Piwik /插件/ API /控制器排队191

触发添加或修改术语表项。您既可以修改现有的核心类别“报告”和“指标”之一,也可以添加自己的类别。例子

公共函数addGlossaryItems(&$glossaryItems) {$glossaryItems['users'] = array('title' => 'users', 'entries' => array(array('name' => 'User1', 'documentation' => 'This user has…'),array('name' => 'User2', 'documentation' => 'This user has…'),));$glossaryItems['reports']['entries'][] = array('name' => 'My Report', 'documentation' => 'This Report has…');}

回调函数签名:

函数(& glossaryItems美元)
  • 包含所有术语表项的数组。

用法:

TagManager: addGlossaryItems

API.DocumentationGenerator。美元令牌

中定义的Piwik / API /代理排队645

此事件用于检查Plugin API类或Plugin API方法是否标记为@hideXYZ应该隐藏在API列表中。

回调函数签名:

函数(& $隐藏)
  • bool &$hide是否显示带有$token标记的api。

API.getPagesComparisonsDisabledFor

中定义的Piwik /插件/ API / API排队641

如果你的插件有你想禁用比较功能的页面,你可以通过这个事件添加它们。添加页面为“CategoryId.SubcategoryId”。例子

公共函数getPagesComparisonsDisabledFor(&$pages) {$pages[] = "General_Visitors.MyPlugin_MySubcategory";$pages[] = "MyPlugin.myControllerAction";//如果你的插件定义了一整个页面,你想禁用比较}

回调函数签名:

函数(& $页面)
  • 字符串& $页面

用法:

生活:getPagesComparisonsDisabledFor多点:getPagesComparisonsDisabledFor反向链接::getPagesComparisonsDisabledFor过渡:getPagesComparisonsDisabledForUserCountryMap: getPagesComparisonsDisabledFor

API.getReportMetadata.end

中定义的Piwik /插件/ API / ProcessedReport排队220

收集所有可用报告后触发。此事件可用于修改其他插件中报表的报表元数据。例如,您可以向每个报表添加自定义指标,或者从可用报表列表中删除报表。

回调函数签名:

函数(& $ availableReports,作为$参数)
  • 所有报表元数据的列表。读了API.getReportMetadata查看这个数组包含什么。

  • 数组美元的参数包含我们要获得报告的站点和期间的值。一些报告依赖于这些数据。例如,Goals报告依赖于被请求的站点id。包含以下信息:

    - **idSite**:我们要获取报告的站点ID。- * *期* *:类型,如“天”“,“周”,“月”,“年”,“范围”。—**date**:时间段或日期范围内的字符串日期,例如“2013-01-01”或“2012-01-01,2013-01-01”。

用法:

目标::getReportMetadataEnd

API.Request.authenticate

中定义的Piwik / API /请求排队442

在验证API请求时触发,但仅当token_auth在请求中找到查询参数。提供身份验证功能的插件应该订阅此事件,并确保全局身份验证对象(返回的对象)StaticContainer: get (Piwik \身份验证))是要使用的设置token_auth美元当它authenticate ()方法执行。

回调函数签名:

函数(tokenAuth美元)
  • 字符串token_auth美元的值token_auth查询参数。

用法:

登录:ApiRequestAuthenticateLoginLdap: ApiRequestAuthenticate

API.Request.dispatch

中定义的Piwik / API /代理排队205

在分派API请求之前触发。此事件可用于修改传递给一个或多个API方法的参数。

例子

Piwik:: addAction (API.Request。function (&$parameters, $pluginName, $methodName) {if ($pluginName == 'Actions') {if ($methodName == 'getPageUrls'){//…做点什么……} else{//…做点别的事情……} } });

回调函数签名:

函数(&$finalParameters, $pluginName, $methodName)
  • 将传递给API方法的参数列表。

  • 字符串pluginName美元API方法所属插件的名称。

  • 字符串methodName美元将被调用的API方法的名称。

用法:

AnonymousPiwikUsageMeasurement: logStartTimeOfApiCallCustomAlerts: checkApiPermission

API.Request.dispatch.end

中定义的Piwik / API /代理排队340

在API请求被分派后直接触发。此事件可用于修改任何API方法的输出。

例子

//对于任何具有'nb_hits'指标的报告,将(0 hits)追加到行标签的末尾,该行标签的点击率为0。end', function (&$returnValue, $info)){//如果(!($returnValue instanceof DataTableInterface) || in_array('nb_hits', $returnValue->getColumns())){返回;} $returnValue->过滤器('ColumnCallbackReplace', 'label',函数($label, $hits) {if ($hits === 0){返回$label。(0次命中);} else{返回$label;}}, null, array('nb_hits'));}

回调函数签名:

endHookParams美元
  • 返回API方法的返回值。可以是一个对象,例如数据表实例。

  • 数组extraInfo美元一个包含API请求信息的数组。将包含以下数据:

    - **className**:正在调用的API实例的命名空间-d类名。- **module**: API请求被发送到的插件的名称。—**action**:执行的API方法名称。- **parameters**:传递给API方法的参数数组。

用法:

AnonymousPiwikUsageMeasurement: trackApiCallPagePerformance: enrichApi

API.Request.intercept

中定义的Piwik / API /代理排队240

在分派API请求之前触发。使用此事件拦截API请求并执行您自己的代码。如果你设置returnedValue美元在此事件的处理程序中,原始的API方法将不会执行,结果将是您在事件处理程序中设置的结果。

回调函数签名:

function(&$返回值,$finalParameters, $pluginName, $methodName, $parametersRequest)
  • 设置此值以设置结果并抢占正常的API调用。

  • 将传递给API方法的参数列表。

  • 字符串pluginName美元API方法所属插件的名称。

  • 字符串methodName美元将被调用的API方法的名称。

  • 数组parametersRequest美元此请求的查询参数。

ArchiveProcessor

ArchiveProcessor.ComputeNbUniques.getIdSites

中定义的Piwik / ArchiveProcessor排队523

触发更改在处理唯一访问者和用户时应该查看的站点id。

回调函数签名:

函数(&$sites, $params->getPeriod(), $params->getSegment())
  • 一个包含一个idSite的数组。这个网站目前正在存档中。若要取消查询,可以将此值更改为空数组。要在查询中包括其他站点,可以向此idSites列表中添加更多idSites。

  • 美元的时期请求存档的时间段。

  • 美元市场请求存档的段。

ArchiveProcessor.getArchive

中定义的Piwik / ArchiveProcessor排队126

回调函数签名:

函数($ this - >归档)

ArchiveProcessor.Parameters.getIdSites

中定义的Piwik ArchiveProcessor /参数排队165

回调函数签名:

函数(& idSites美元$ this - > getPeriod ())

ArchiveProcessor.shouldAggregateFromRawData

中定义的Piwik / ArchiveProcessor / PluginsArchiver排队86

触发它来检测存档器是否应该通过使用MySQL查询(当为真时)或通过聚合存档(当为假时)从原始数据进行聚合。通常,数据是从“day”期间的原始数据聚合而来,并从所有其他时期的存档中聚合而来。

回调函数签名:

函数(& $ shouldAggregateFromRawData, $ this - > params)
  • 保龄球& $ shouldAggregateFromRawData设置为true,表示从原始数据进行聚合,设置为false,表示聚合多个报告。

  • 参数美元的参数

存档

Archiving.getIdSitesToArchiveWhenNoVisits

中定义的Piwik ArchiveProcessor /加载程序排队397

回调函数签名:

函数(& idSites美元)

Archiving.getIdSitesToMarkArchivesAsInvalidated

中定义的Piwik /归档/ ArchiveInvalidator排队317

当Matomo用户请求使某些报告存档无效时触发。使用此事件,插件开发人员可以在站点失效时自动使另一个站点失效。插件甚至可以从应该失效的站点列表中删除一个idSite,以防止它被失效。例子

公共函数getIdSitesToMarkArchivesAsInvalidates(&$idSites) {if (in_array(1, $idSites)) {$idSites[] = 5;//当idSite 1失效时,也会使idSite 5失效

回调函数签名:

函数(&$idSites, $date, $period, $segment, $name)
  • array &$idSites一个包含站点id列表的数组,这些站点id被请求作废。

  • 数组美元的日期包含要使之失效的日期的数组。

  • 字符串美元的时期包含要使之失效的周期的字符串。

  • \段美元市场一个段对象,包含要使之失效的段。

  • 字符串美元的名字包含要使存档无效的名称的字符串。

Archiving.makeNewArchiverObject

中定义的Piwik / ArchiveProcessor / PluginsArchiver排队329

在new之后触发插件存档实例被创建。此事件的订阅者可以配置插件归档器,例如通过调用来阻止插件数据的归档文档- >禁用()方法。

回调函数签名:

函数($archiver, $pluginName, $this->参数,false)
  • 存储服务器&$archiver新创建的插件存档实例。

  • 字符串pluginName美元创建存档实例的插件名称。

  • 数组$ this→参数包含档案参数的数组(站点、周期、日期和段)

  • bool false此参数已弃用,将被删除。

AssetManager

AssetManager.addStylesheets

中定义的Piwik / AssetManager UIAssetMerger / StylesheetUIAssetMerger排队105

在所有less样式表连接到一个长字符串后触发,但在它被缩小并合并到一个文件之前触发。此事件可用于添加较少不在磁盘上的文件中的样式表。

回调函数签名:

函数(& concatenatedContent美元)
  • 字符串& $ concatenatedContent所有连接的less文件的内容。

用法:

CoreHome: addStylesheets

AssetManager.filterMergedJavaScripts

中定义的Piwik /插件/ CoreHome /测试/集成/ CoreHomeTest排队25

回调函数签名:

函数(& $内容)

用法:

CoreHome: filterMergedJavaScripts

AssetManager.filterMergedJavaScripts

中定义的Piwik /插件/ CoreHome /测试/集成/ CoreHomeTest排队33

回调函数签名:

函数(& $内容)

用法:

CoreHome: filterMergedJavaScripts

AssetManager.filterMergedJavaScripts

中定义的Piwik / AssetManager UIAssetMerger / JScriptUIAssetMerger排队68

在Matomo(以前的Piwik)使用的所有JavaScript文件被缩小并合并为一个文件之后触发,但在合并后的JavaScript写入磁盘之前触发。插件可以使用这个事件来修改合并的JavaScript或做其他事情。

回调函数签名:

函数(& mergedContent美元)
  • 字符串& $ mergedContent简化和合并的JavaScript。

用法:

CoreHome: filterMergedJavaScripts

AssetManager.filterMergedStylesheets

中定义的Piwik / AssetManager UIAssetMerger / StylesheetUIAssetMerger排队145

在所有较少的样式表被编译为CSS、缩小并合并到一个文件后触发,但在生成的CSS写入磁盘之前触发。此事件可用于修改已合并的CSS。

回调函数签名:

函数(& mergedContent美元)
  • 字符串& $ mergedContent合并和精简的CSS。

AssetManager.getJavaScriptFiles

中定义的Piwik / AssetManager UIAssetFetcher / JScriptUIAssetFetcher排队44

收集Matomo及其插件所需的所有JavaScript文件列表时触发。拥有自己JavaScript的插件应该使用此事件使这些文件加载到浏览器中。

JavaScript文件应该放在javascript插件根目录下的子目录。

注意:当你在开发插件时,你应该启用配置设置[开发]disable_merged_assets因此JavaScript文件将在每次更改后立即重新加载。

例子

公共函数getJsFiles(&$jsFiles) {$jsFiles[] = "plugins/MyPlugin/javascripts/myfile.js";$jsFiles[] = "plugins/MyPlugin/javascripts/anotherone.js";}

回调函数签名:

函数(& $ this - > fileLocations)
  • 字符串jsFiles美元加载的JavaScript文件。

用法:

行动:getJsFiles注释:getJsFilesAnonymousPiwikUsageMeasurement: getJsFiles内容::getJsFilesCoreAdminHome: getJsFilesCoreHome: getJsFilesCorePluginsAdmin: getJsFilesCoreVisualizations: getJsFilesCoreVue: getJsFilesCustomAlerts: getJavaScriptFilesCustomDimensions: getJsFiles仪表板:getJsFiles反馈:getJsFiles见解:getJsFiles生活:getJsFilesLogViewer: getJsFiles登录:getJsFilesLoginLdap: getJsFiles市场:getJsFiles覆盖:getJsFilesPagePerformance: getJsFiles反向链接::getJsFiles搜索引擎优化:getJsFilesScheduledReports: getJsFilesSegmentEditor: getJsFilesTagManager: getJsFiles旅游:getJsFiles过渡:getJsFilesTreemapVisualization: getJsFilesTwoFactorAuth: getJsFilesUserCountry: getJsFilesUserCountryMap: getJsFiles用户标识:getJavaScriptFilesWidgetize: getJsFiles

AssetManager.getStylesheetFiles

中定义的Piwik / AssetManager UIAssetFetcher / StylesheetUIAssetFetcher排队69

当收集Matomo及其插件所需的所有样式表(CSS和LESS)列表时触发。具有样式表的插件应该使用此事件来加载这些样式表。

样式表应该放在样式表插件根目录下的子目录。

例子

公共函数getStylesheetFiles(&$stylesheets) {$stylesheets[] = "plugins/MyPlugin/stylesheets/myfile.less";$stylesheets[] = "plugins/MyPlugin/stylesheets/myotherfile.css";}

回调函数签名:

函数(& $ this - > fileLocations)
  • 样式表路径列表。

用法:

插件:getStylesheetFiles注释:getStylesheetFilesCoreAdminHome: getStylesheetFilesCoreHome: getStylesheetFilesCorePluginsAdmin: getStylesheetFilesCoreVisualizations: getStylesheetFilesCustomAlerts: getStylesheetFilesCustomDimensions: getStylesheetFilesCustomVariables: getStylesheetFilesDBStats: getStylesheetFiles仪表板:getStylesheetFilesDevicesDetection: getStylesheetFiles诊断:getStylesheetFiles事件:getStylesheetFiles反馈:getStylesheetFiles目标::getStylesheetFiles见解:getStylesheetFiles安装::getStylesheetFiles生活:getStylesheetFilesLogViewer: getStylesheetFiles登录:getStylesheetFilesLoginLdap: getStylesheetFilesMarketingCampaignsReporting: getStylesheetFiles市场:getStylesheetFilesMobileMessaging: getStylesheetFiles多点:getStylesheetFilesPrivacyManager: getStylesheetFilesProfessionalServices: getStylesheetFiles反向链接::getStylesheetFilesRssWidget: getStylesheetFilesScheduledReports: getStylesheetFilesSecurityInfo: getStylesheetFilesSegmentEditor: getStylesheetFilesSitesManager: getStylesheetFilesTagManager: getStylesheetFiles旅游:getStylesheetFiles过渡:getStylesheetFilesTreemapVisualization: getStylesheetFilesTwoFactorAuth: getStylesheetFilesUserCountry: getStylesheetFilesUserCountryMap: getStylesheetFilesUsersManager: getStylesheetFilesVisitsSummary: getStylesheetFilesWidgetize: getStylesheetFiles

类别

Category.addSubcategories

中定义的Piwik /插件/类别排队61

触发添加自定义子类别。例子

公共函数addSubcategories(&$subcategories) {$subcategory = new subcategory ();子类- > setId(“General_Overview”);子类- > setCategoryId(“General_Visits”);子类- > setOrder (5);$subcategories[] = $subcategory;}

回调函数签名:

函数(& $子类)
  • 包含子类别列表的数组。

用法:

CustomDimensions: addSubcategories仪表板:addSubcategories目标::addSubcategories

变化

Changes.filterChanges

中定义的Piwik /变化/模型排队213

在显示更改前触发的事件可用于过滤不需要的更改

例子

Piwik: addAction('的变化。filterChanges',函数($changes) {foreach ($changes as $k => $c){//隐藏CoreHome插件的更改if (isset($c['plugin_name']) && $c['plugin_name'] == 'CoreHome') {unset($changes[$k]);} } });

回调函数签名:

函数(& $更改)
  • 数组和美元的变化

CliMulti

CliMulti.supportsAsync

中定义的Piwik / CliMulti排队303

触发允许插件强制使用异步命令行多执行或禁用它。例子

公共函数supportsAsync(&$supportsAsync) {$supportsAsync = false;//不允许异步climulti执行

回调函数签名:

函数(& supportsAsync美元)
  • bool &$supportsAsync是否支持async。

配置

Config.badConfigurationFile

中定义的Piwik / FrontController排队370

当Matomo无法访问数据库数据时触发。此事件可用于启动安装过程或显示自定义错误消息。

回调函数签名:

函数(异常)
  • \例外美元的例外试图获取选项值时抛出的异常。

用法:

安装::调度

Config.beforeSave

中定义的Piwik / Config / IniFileChain排队549

在将配置写入/保存到本地文件系统之前触发。插件可以监听它并修改将保存在文件系统上的设置。这允许你防止保存插件按需设置的配置值。假设你在插件的配置中按需配置了数据库密码,那么你可以通过这样监听这个事件来防止密码保存在实际的配置文件中:

例子函数doNotSaveDbPassword (&$values) {unset($values['database']['password']);}

回调函数签名:

函数(& $值)
  • array &$values将保存的配置值

配置。NoConfigurationFile

中定义的Piwik /应用程序/内核/ EnvironmentValidator排队110

当无法找到或读取配置文件时触发,这通常意味着尚未安装Matomo。此事件可用于启动安装过程或显示自定义错误消息。

回调函数签名:

函数(异常)
  • \例外美元的例外抛出的异常配置:getInstance ()

用法:

安装::调度LanguagesManager: initLanguage

控制台

Console.filterCommands

中定义的Piwik /控制台排队196

触发以过滤/限制控制台命令。想要限制命令的插件应该订阅此事件并从现有列表中删除命令。例子

公共函数filterConsoleCommands(&$commands) {$key = array_search('Piwik\Plugins\MyPlugin\ commands \MyCommand', $commands);If (false !== $key) {unset($commands[$key]);}}

回调函数签名:

函数(& $命令)
  • array &$commands包含命令类名称列表的数组。

控制器

控制器。模块。美元的行动

中定义的Piwik / FrontController排队635

在分派控制器动作之前直接触发。事件发生后直接触发该事件Request.dispatch事件触发。

它可以用来做和Request.dispatch事件,但仅针对一个控制器操作。使用此事件将导致代码略少于Request.dispatch

回调函数签名:

函数(& $参数)
  • array &$parameters传递给控制器动作的参数。

控制器。模块。action.end美元

中定义的Piwik / FrontController排队652

成功调用控制器动作后触发。此事件为方便而存在,在事件发生之前立即触发Request.dispatch.end事件触发。

它可以用来做和Request.dispatch.end事件,但仅针对一个控制器操作。使用此事件将导致代码略少于Request.dispatch.end

回调函数签名:

函数(因此,美元和参数)
  • 控制器动作的结果。

  • 数组美元的参数传递给控制器动作的参数。

Controller.triggerAdminNotifications

中定义的Piwik /插件/ ControllerAdmin排队400

当呈现一个管理页面和通知任何警告或错误应该被触发。例如,当你有一个插件需要配置才能工作,而插件还没有配置时,你可以使用它。它也可以用来取消/删除其他通知通过呼叫例如通知\经理::取消(notificationId美元)

例子

公共函数onTriggerAdminNotifications(Piwik\Widget\WidgetsList $list) {if ($pluginFooIsNotConfigured) {$notification =新通知('插件foo尚未配置');$notification->context = notification::CONTEXT_WARNING;通知\经理::通知(“fooNotConfigured”,通知美元);}}

核心

Core.configFileChanged

中定义的Piwik /配置排队427

当磁盘上的INI配置文件被更改时触发。

回调函数签名:

函数($ localPath]
  • 字符串localPath美元服务器上已更改文件的绝对路径。

Core.configFileDeleted

中定义的Piwik / Config /缓存排队87

回调函数签名:

函数($ this - > getFilename ($ id))

Core.configFileSanityCheckFailed

中定义的Piwik /配置排队491

当INI配置文件未正确写入预期内容时触发。

回调函数签名:

函数($ localPath]
  • 字符串localPath美元服务器上已更改文件的绝对路径。

CoreAdminHome

CoreAdminHome.customLogoChanged

中定义的Piwik /插件/ CoreAdminHome / CustomLogo排队235

当用户上传自定义logo时触发。对于较大的logo、较小的logo-header.png文件和favicon,会触发此事件。

回调函数签名:

函数($ absolutePath]
  • 字符串absolutePath美元在Matomo服务器上标识文件的绝对路径。

CoreUpdater

CoreUpdater.update.end

中定义的Piwik /更新器排队525

Matomo更新后触发。

用法:

CustomJsTracker: updateTrackerTagManager: onPluginActivateOrInstall

CronArchive

CronArchive.archiveSingleSite.finish

中定义的Piwik / CronArchive / QueueConsumer排队320

此事件在cron归档进程开始为单个站点归档数据后立即触发。注意:多个归档进程可以发布此事件。

回调函数签名:

函数($ this - > idSite, $ this - > pid)
  • intidSite美元我们要为之存档数据的站点的ID。

  • 字符串$ pid此站点的进程处理存档的PID。

CronArchive.archiveSingleSite.start

中定义的Piwik / CronArchive / QueueConsumer排队168

此事件在cron归档进程开始为单个站点归档数据之前触发。注意:多个归档进程可以发布此事件。

回调函数签名:

函数($ this - > idSite, $ this - > pid)
  • intidSite美元我们要为之存档数据的站点的ID。

  • 字符串$ pid此站点的进程处理存档的PID。

CronArchive.end

中定义的Piwik / CronArchive排队603

存档后触发此事件。

回调函数签名:

函数(美元)
  • \ CronArchive这个美元

CronArchive.filterWebsiteIds

中定义的Piwik / CronArchive排队782

触发核心:存档控制台命令,以便插件可以修改网站的优先级,存档过程将被启动。插件可以使用这个钩子添加网站存档,删除网站存档,或改变网站将存档的顺序。

回调函数签名:

函数(& websiteIds美元)
  • 数组& $ websiteIds要启动存档过程的网站id列表。

CronArchive.getIdSitesNotUsingTracker

中定义的Piwik ArchiveProcessor /加载程序排队537

当检测到是否有不使用跟踪器的站点时触发此事件。默认情况下,我们只归档一个网站时,实际上有任何访问自从上次存档。然而,一些插件从其他来源导入数据,而不是使用跟踪器,因此永远不会有任何访问这个网站。为了确保我们仍然为这样的网站存档数据时,存档此网站的请求,您可以监听此事件,并将idSite添加到不使用跟踪器的网站列表。

回调函数签名:

函数(& idSitesNotUsingTracker美元)
  • 保龄球& $ idSitesNotUsingTracker宁愿导入数据而不使用跟踪器的idsite列表

CronArchive.init.finish

中定义的Piwik / CronArchive排队339

此事件在CronArchive实例初始化后触发。

回调函数签名:

函数($ this - > allWebsites]
  • 数组websiteIds美元这个CronArchive实例正在处理的网站id列表。这将是整个id列表,而不管是否已经处理了一些id。

CronArchive.init.start

中定义的Piwik / CronArchive排队296

在初始化存档期间触发此事件。

回调函数签名:

函数(美元)
  • \ CronArchive这个美元

CustomJsTracker

CustomJsTracker.manipulateJsTracker

中定义的Piwik /插件/ CustomJsTracker / TrackingCode / PiwikJsManipulator排队56

在生成Matomo JavaScript跟踪器之后,在跟踪器文件写入磁盘之前不久触发。你可以监听这个事件,例如自动将一些代码附加到JS跟踪文件中。例子

函数onManipulateJsTracker (&$content) {$content .= "\ npiwiki . dom。onLoad(function () {console.log('loaded');});”;}

回调函数签名:

函数(& $内容)
  • 字符串& $内容生成的JavaScript跟踪器代码

CustomJsTracker.shouldAddTrackerFile

中定义的Piwik /插件/ CustomJsTracker / TrackingCode / PluginTrackerFiles排队85

检测一个自定义跟踪器文件是否应该添加到piwiki .js跟踪器。这是有用的,例如,如果一个插件只想在配置插件时添加它的跟踪文件。

回调函数签名:

函数(& $ shouldAddFile pluginName美元)
  • 决定是否添加属于给定插件的跟踪文件。

  • 字符串pluginName美元该文件所属插件的名称

用法:

PrivacyManager: shouldAddTrackerFile

CustomJsTracker.trackerJsChanged

中定义的Piwik /插件/ CustomJsTracker / TrackerUpdater排队142

在跟踪器JavaScript内容(piwiki .js文件的内容)被更改后触发。

回调函数签名:

函数($ savedFile]
  • 字符串absolutePath美元新piwiki .js文件的路径。

用法:

TagManager: regenerateReleasedContainers

CustomJsTracker.trackerJsChanged

中定义的Piwik /插件/ CustomJsTracker / TrackerUpdater排队160

回调函数签名:

函数($ savedFile]

用法:

TagManager: regenerateReleasedContainers

CustomJsTracker.updateTracker

中定义的Piwik /插件/ PrivacyManager / API排队236

用法:

CustomJsTracker: updateTracker

Db

Db.cannotConnectToDb

中定义的Piwik / FrontController排队347

当Matomo无法连接到数据库时触发。此事件可用于启动安装过程或显示自定义错误消息。

回调函数签名:

函数(异常)
  • \例外美元的例外创建和测试数据库连接时抛出的异常。

用法:

安装::displayDbConnectionMessage

Db.getActionReferenceColumnsByTable

中定义的Piwik /插件/尺寸/ DimensionMetadataProvider排队91

当检测到要保留哪些log_action条目时触发。任何使用log_action表通过ID引用文本的日志表都应该添加它们的表信息,这样仍然在使用的操作就不会被意外删除。例子

Piwik:: addAction (Db。getActionReferenceColumnsByTable',函数(&$result) {$tableNameUnprefixed = 'log_example';$columnNameThatReferencesIdActionInLogActionTable = 'idaction_example';$result[$tableNameUnprefixed] = array($columnNameThatReferencesIdActionInLogActionTable);});

回调函数签名:

函数(& $结果)
  • 数组& $结果

Db.getDatabaseConfig

中定义的Piwik / Db排队127

在建立数据库连接之前触发。此事件可用于更改用于建立连接的设置。

回调函数签名:

函数(& dbConfig美元)
  • array *$ dbinfo引用一个包含数据库连接信息的数组,包括:

    —**host**: MySQL数据库的主机名或IP地址。—**用户名**:连接数据库时使用的用户名。—“**password**”:连接数据库时使用的密码。—**dbname**: Matomo MySQL数据库名。—**port**: MySQL数据库使用的端口。- **adapter**: PDO\MYSQL' or MYSQLI' - **type**: MYSQL引擎,例如InnoDB

Db.getTablesInstalled

中定义的Piwik / Db /模式/ Mysql排队477

回调函数签名:

函数(& $ allMyTables]

用法:

AnonymousPiwikUsageMeasurement: getTablesInstalledCustomAlerts: getTablesInstalledCustomDimensions: getTablesInstalled仪表板:getTablesInstalledExampleLogTables: getTablesInstalledLanguagesManager: getTablesInstalledPrivacyManager: getTablesInstalledQueuedTracking: getTablesInstalledScheduledReports: getTablesInstalledSegmentEditor: getTablesInstalledTagManager: getTablesInstalled

Dimension.addDimensions

中定义的Piwik /列/维度排队720

触发以添加平台无法自动拾取的新维度。如果插件允许用户动态创建报告/维度,这是很有用的。例如CustomDimensions或CustomVariables。在这种情况下,维度的数量是可变的,并且不可能为其中一个维度创建报告文件,因为不知道将存在多少自定义维度。

例子

公共函数addDimension(&$dimensions) {$dimensions[] = new MyCustomDimension();}

回调函数签名:

函数(& $实例)
  • 美元的报告维度数组

用法:

CustomDimensions: addDimensionsCustomVariables: addDimensions

Dimension.filterDimensions

中定义的Piwik /列/维度排队744

触发过滤/限制尺寸。例子

公共函数filterDimensions(&$dimensions) {foreach ($dimensions as $index => $dimension) {if ($dimension->getName() === '页面URL') {} unset($dimensions[$index]);//删除该维度

回调函数签名:

函数(& $实例)
  • 美元的维度维度数组

环境

Environment.bootstrapped

中定义的Piwik /应用程序/环境排队104

反馈

Feedback.showQuestionBanner

中定义的Piwik /插件/反馈/反馈排队133

回调函数签名:

函数(& $ shouldShowQuestionBanner]

文件系统

Filesystem.allCachesCleared

中定义的Piwik /文件系统排队55

在所有非内存缓存被清除后触发(例如,通过cache:clear命令)。

FrontController

FrontController.modifyErrorPage

中定义的Piwik / ExceptionHandler排队188

在Matomo错误页面显示给用户之前触发。此事件可用于修改捕获异常时显示的错误页面的内容。

回调函数签名:

函数(因此,美元&交货)
  • 错误页面的HTML。

  • \例外美元的前女友错误页面中显示的异常。

Http

Http.sendHttpRequest

中定义的Piwik / Http排队318

触发发送HTTP请求。允许插件自行解析HTTP请求,或者发现HTTP请求何时触发,例如将此信息记录到监控工具。

回调函数签名:

函数($aUrl, $httpEventParams, &$response, &$status, &$headers)
  • 字符串$ url需要被请求的URL

  • 数组美元的参数HTTP参数,如- 'httpMethod'(例如GET, POST,…),- 'body'请求体,如果需要发送HTTP方法- 'userAgent' - 'timeout'请求超时后的秒数- 'headers'头字符串数组,如array('Accept-Language: en', '…')- 'verifySsl'是否验证SSL证书布尔值- 'destinationPath'如果设置了,HTTP请求的响应应该保存到这个文件中

  • 监听此事件的插件应该将接收到的HTTP响应赋值给这个变量,例如"{value: true}"

  • 监听此事件的插件应该将接收到的HTTP状态码赋值给该变量,例如"200"

  • 监听此事件的插件应该将它接收到的HTTP报头分配给这个变量,例如array('Content-Length' => '5')

Http.sendHttpRequest.end

中定义的Piwik / Http排队804

HTTP请求完成时触发。例如,插件可以监听这些信息并改变响应、状态代码,或者在插件测量执行请求所需时间的情况下完成计时器

回调函数签名:

函数($aUrl, $httpEventParams, &$response, &$status, &$headers)
  • 字符串$ url需要被请求的URL

  • 数组美元的参数HTTP参数,如- 'httpMethod'(例如GET, POST,…),- 'body'请求体,如果需要发送HTTP方法- 'userAgent' - 'timeout'请求超时后的秒数- 'headers'头字符串数组,如array('Accept-Language: en', '…')- 'verifySsl'是否验证SSL证书布尔值- 'destinationPath'如果设置了,HTTP请求的响应应该保存到这个文件中

  • HTTP请求的响应,例如"{value: true}"

  • 返回的HTTP状态码,例如"200"

  • 返回的头信息,例如array('Content-Length' => '5')

的见解

Insights.addReportToOverview

中定义的Piwik /插件/观点/ API排队67

触发收集所有报告,以显示在“洞察”和“推动者和震动者”概述报告中。想要向概览添加新报告的插件应该订阅此事件并将报告添加到传入数组。API参数可选地配置为数组。

例子

公共函数addReportToInsightsOverview(&$reports) {$reports['Actions_getPageUrls'] = array();$reports['Actions_getDownloads'] = array('flat' => 1, 'minGrowthPercent' => 60);}

回调函数签名:

函数(& $报告)
  • 一个数组,它包含一个报告唯一id作为键,一个API参数数组作为值。

用法:

行动:addReportToInsightsOverviewMarketingCampaignsReporting: addReportToInsightsOverview反向链接::addReportToInsightsOverviewUserCountry: addReportToInsightsOverview

安装

Installation.defaultSettingsForm.init

中定义的Piwik /插件/安装/控制器排队464

在表单初始化时触发,以自定义默认Matomo设置(安装过程结束时)。

回调函数签名:

函数(美元)
  • \ Piwik \ Plugins \安装\ FormDefaultSettings美元的形式

用法:

GeoIp2: installationFormInitPrivacyManager: installationFormInit

Installation.defaultSettingsForm.submit

中定义的Piwik /插件/安装/控制器排队475

在提交表单以自定义默认Matomo设置时触发(在安装过程结束时)。

回调函数签名:

函数(美元)
  • \ Piwik \ Plugins \安装\ FormDefaultSettings美元的形式

用法:

GeoIp2: installationFormSubmitPrivacyManager: installationFormSubmit

LanguagesManager

LanguagesManager.getAvailableLanguages

中定义的Piwik /插件/ LanguagesManager / API排队91

加载可用语言文件后调用的钩子。使用这个钩子自定义Matomo中可用的languagesPath列表。

回调函数签名:

函数(& $语言)
  • 数组

生活

Live.addProfileSummaries

中定义的Piwik /插件/生活/ ProfileSummaryProvider排队58

触发添加新的实时概要摘要。例子

公共函数addProfileSummary(&$ profilsummarmary) {$profileSummaries[] = new MyCustomProfileSummary();}

回调函数签名:

函数(& $实例)
  • \ ProfileSummaryAbstractprofileSummaries美元概要摘要的数组

Live.addVisitorDetails

中定义的Piwik /插件/生活/访客排队70

触发以添加平台无法自动拾取的新访问者详细信息。例子

公共函数addVisitorDetails(&$visitorDetails) {$visitorDetails[] = new CustomVisitorDetails();}

回调函数签名:

函数(& $实例)

Live.API.getIdSitesString

中定义的Piwik /插件/生活/模型排队449

回调函数签名:

函数(& idSites美元)

Live.filterProfileSummaries

中定义的Piwik /插件/生活/ ProfileSummaryProvider排队80

触发过滤/限制概要摘要。例子

公共函数filterProfileSummary(&$profileSummaries) {foreach ($profileSummaries as $index => $profileSummary) {if ($profileSummary->getId() === 'myid') {} unset($profileSummaries[$index]);//删除所有具有此ID的摘要

回调函数签名:

函数(& $实例)
  • \ ProfileSummaryAbstractprofileSummaries美元概要摘要的数组

Live.filterVisitorDetails

中定义的Piwik /插件/生活/访客排队98

触发过滤/限制访客详细信息。例子

公共函数filterVisitorDetails(&$visitorDetails) {foreach ($visitorDetails as $index => $visitorDetail) {if (strpos(get_class($visitorDetail), 'MyPluginName') !== false) {} unset($visitorDetails[$index]);//删除特定插件的所有访问者详细信息

回调函数签名:

函数(& $实例)

Live.makeNewVisitorObject

中定义的Piwik /插件/生活/ VisitorFactory排队39

激活插件中访问过滤时触发。此事件的订阅者可以强制使用从\Piwik\Plugins\Live\VisitorInterface扩展而来的自定义访问者对象。

回调函数签名:

函数(& $访客,visitorRawData美元)
  • \Piwik\Plugins\Live\VisitorInterface &$visitor初始化为null,但可以设置为一个新的访问者对象。如果没有修改,Matomo将使用默认类。

  • 数组visitorRawData美元访问者对象构造函数中使用的原始数据。

登录

Login.authenticate

中定义的Piwik /会议/ SessionInitializer排队58

回调函数签名:

函数(auth - > getLogin ())

Login.authenticate

中定义的Piwik / Plugins /登录/ SessionInitializer排队128

回调函数签名:

函数(auth - > getLogin ())

Login.authenticate.failed

中定义的Piwik /会议/ SessionInitializer排队36

回调函数签名:

函数(auth - > getLogin ())

用法:

登录:onFailedLoginRecordAttempt

Login.authenticate.failed

中定义的Piwik / Plugins /登录/ SessionInitializer排队106

回调函数签名:

函数(auth - > getLogin ())

用法:

登录:onFailedLoginRecordAttempt

Login.authenticate.successful

中定义的Piwik /会议/ SessionInitializer排队41

回调函数签名:

函数(auth - > getLogin ())

用法:

登录:beforeLoginCheckBruteForce

Login.authenticate.successful

中定义的Piwik / Plugins /登录/ SessionInitializer排队111

回调函数签名:

函数(auth - > getLogin ())

用法:

登录:beforeLoginCheckBruteForce

Login.logout

中定义的Piwik /插件/登录/控制器排队523

回调函数签名:

函数(Piwik: getCurrentUserLogin ())

Login.userRequiresPasswordConfirmation

中定义的Piwik / Piwik排队306

触发检查是否需要用户的密码确认。此事件可以在自定义登录插件中使用,以跳过某些用户的密码确认检查,例如,没有密码可用。

注意:明智地利用这个事件。禁用密码确认功能会降低安全性。

回调函数签名:

函数(& requiresPasswordConfirmation美元,美元登录)
  • 保龄球& $ requiresPasswordConfirmation指示是否应该检查密码

  • 字符串美元的登录用户登录时应确认密码

用法:

LoginLdap: skipPasswordConfirmation

邮件

Mail.send

中定义的Piwik /邮件排队290

此事件在发送电子邮件之前发布。您可以使用它来定制电子邮件,例如,替换主题/正文,更改from地址等。

回调函数签名:

函数(邮件)
  • 邮件美元的邮件将要发送的邮件实例。

Mail.shouldSend

中定义的Piwik /邮件排队402

此事件在发送电子邮件之前发布。如果您愿意,您可以使用它来中止发送特定的电子邮件。

回调函数签名:

函数(& shouldSendMail美元,美元的邮件)
  • bool &$shouldSendMail是否发送此邮件。设置为false则跳过发送。

  • 邮件美元的邮件将要发送的邮件实例。

MeasurableSettings

MeasurableSettings.updated

中定义的Piwik /设置/测量/ MeasurableSettings排队137

在插件设置更新后触发。例子

Piwik:: addAction (MeasurableSettings。更新的',函数(MeasurableSettings $settings) {$value = $settings-> somesettings ->getValue();//用新的设置值做一些事情});

回调函数签名:

函数($,$ this - > idSite)
  • \设置美元的设置插件设置对象。

度规

Metric.addComputedMetrics

中定义的Piwik /列/ MetricsList排队152

触发添加不能被平台自动拾取的新指标。如果插件允许用户动态创建指标,这是很有用的。例如CustomDimensions或CustomVariables。

例子

公共函数addMetric(&$list) {$list->addMetric(新的MyCustomMetric());}

回调函数签名:

函数(清单,computedFactory美元)
  • MetricsList美元的列表MetricsList的实例。您可以通过这种方式将指标添加到列表中。

用法:

CoreHome: addComputedMetrics电子商务:addComputedMetrics目标::addComputedMetrics

Metric.addMetrics

中定义的Piwik /列/ MetricsList排队128

触发添加不能被平台自动拾取的新指标。如果插件允许用户动态创建指标,这是很有用的。例如CustomDimensions或CustomVariables。

例子

公共函数addMetric(&$list) {$list->addMetric(新的MyCustomMetric());}

回调函数签名:

函数(列表)
  • MetricsList美元的列表MetricsList的实例。您可以通过这种方式将指标添加到列表中。

用法:

目标::addMetrics

Metric.filterMetrics

中定义的Piwik /列/ MetricsList排队166

触发过滤指标。例子

公共函数removeMetrics(Piwik\Columns\MetricsList $list) {$list->remove($category=' general_访问量');//删除该类别的所有度量

回调函数签名:

函数(列表)
  • MetricsList美元的列表MetricsList的实例。您可以通过这种方式更改指标列表。

指标

Metrics.getDefaultMetricDocumentationTranslations

中定义的Piwik /指标排队502

使用此事件注册由插件处理的度量标准文档的翻译。

回调函数签名:

函数(& $翻译)
  • 字符串& $翻译column_name => Plugin_TranslationForColumnDocumentation的数组映射

用法:

行动:addMetricDocumentationTranslations内容::addMetricDocumentationTranslations事件:addMetricDocumentationTranslations

Metrics.getDefaultMetricTranslations

中定义的Piwik /指标排队390

使用此事件注册由插件处理的度量标准的翻译。

回调函数签名:

函数(& $翻译)
  • 字符串& $翻译column_name => Plugin_TranslationForColumn的数组映射

用法:

行动:addMetricTranslations带宽:addMetricTranslations内容::addMetricTranslationsDevicePlugins: addMetricTranslations事件:addMetricTranslations目标::addMetricTranslations多点:addMetricTranslationsPagePerformance: addMetricTranslations反向链接::getDefaultMetricTranslationsVisitFrequency: addMetricTranslations

Metrics.getEvolutionUnit

中定义的Piwik /指标排队324

使用此事件可为仅在演进图和行演进中使用的自定义度量定义单位。

回调函数签名:

函数(&$unit, $column, $idSite)
  • 字符串& $单位应该包含单位(例如%,€,s或空字符串)

  • 字符串美元列要确定的列的名称

  • 字符串idSite美元当前站点Id

用法:

带宽:getEvolutionUnit

Metrics.isLowerValueBetter

中定义的Piwik /指标排队281

使用此事件定义指标的较低值是否更好。

回调函数签名:

函数(& isLowerBetter美元,美元列)
  • 字符串& $ isLowerBetter是否应该设置为布尔值,以指示是否较低更好

  • 字符串美元列要确定的列的名称

例子

公共函数checkIsLowerMetricValueBetter(&$isLowerBetter, $metric) {if ($metric === 'position') {$isLowerBetter = true;}}

用法:

PagePerformance: isLowerValueBetter

MobileMessaging

MobileMessaging.deletePhoneNumber

中定义的Piwik /插件/ MobileMessaging / API排队180

删除电话号码后触发。此事件应用于清除与现在删除的电话号码相关的任何数据。例如,ScheduledReports插件使用此事件从所有报告中删除电话号码,以确保没有短信将被发送到该电话号码。例子

公共函数deletePhoneNumber($phoneNumber) {$this->unsubscribePhoneNumberFromScheduledReport($phoneNumber);}

回调函数签名:

函数(美元phoneNumber)
  • 字符串phoneNumber美元刚刚被删除的电话号码。

用法:

CustomAlerts: removePhoneNumberFromAllAlertsScheduledReports: deletePhoneNumber

多点

MultiSites.filterRowsForTotalsCalculation

中定义的Piwik /插件/多站点/ API排队563

触发过滤/限制哪些行应包括在MultiSites(所有网站仪表板)合计计算例子

公共函数filterMultiSitesRows(&$rows) {foreach ($rows as $index => $row) {if ($row->getColumn('label') === 5) {unset($rows[$index]);//从总数中删除idSite 5

回调函数签名:

函数(& $行)
  • \Row &$rows一个包含行的数组,每个站点一行。标签列等于idSite。

平台

Platform.initialized

中定义的Piwik /插件/ Widgetize /测试/系统/部件排队63

用法:

插件:detectIsApiRequestCoreUpdater: updateCheckLanguagesManager: initLanguageUsersManager: onPlatformInitialized

Platform.initialized

中定义的Piwik / FrontController排队459

在平台初始化和用户身份验证之后,但在平台处理请求之前触发。Matomo使用此事件检查Matomo的更新。

用法:

插件:detectIsApiRequestCoreUpdater: updateCheckLanguagesManager: initLanguageUsersManager: onPlatformInitialized

PluginManager

PluginManager.pluginActivated

中定义的Piwik /插件/经理排队723

插件被激活后触发的事件。

回调函数签名:

函数(pluginName美元)
  • 字符串pluginName美元已激活的插件。

用法:

CorePluginsAdmin: onPluginActivatedCustomJsTracker: updateTrackerTagManager: onPluginActivateOrInstall

PluginManager.pluginDeactivated

中定义的Piwik /插件/经理排队553

插件被停用后触发的事件。

回调函数签名:

函数(pluginName美元)
  • 字符串pluginName美元已停用的插件。

用法:

CustomJsTracker: updateTrackerTagManager: onPluginActivateOrInstall

PluginManager.pluginInstalled

中定义的Piwik /插件/经理排队1389

安装新插件后触发的事件。注意:如果配置文件不可写,可能会触发多次

回调函数签名:

函数(pluginName美元)
  • 字符串pluginName美元已安装的插件。

用法:

CorePluginsAdmin: addPluginChangesCustomJsTracker: updateTrackerTagManager: onPluginActivateOrInstall

PluginManager.pluginUninstalled

中定义的Piwik /插件/经理排队642

卸载插件后触发的事件。

回调函数签名:

函数(pluginName美元)
  • 字符串pluginName美元已卸载的插件。

用法:

CorePluginsAdmin: removePluginChangesCustomJsTracker: updateTrackerTagManager: onPluginActivateOrInstall

PrivacyManager

PrivacyManager.deleteDataSubjects

中定义的Piwik /插件/ PrivacyManager /模型/ DataSubjects排队120

允许您删除数据主题,使您的插件符合GDPR。如果你开发了一个可以存储访问数据的插件,但不使用任何核心逻辑来存储这些数据,这可能会很有用。如果使用核心API,例如日志表,那么数据可能会被自动删除。

例子

公共函数deleteDataSubjects(&$result, $visitsToDelete) {$ numdelete = $this-> deletevisitors ($visitsToDelete) $result['myplugin'] = $ numdelete;}

回调函数签名:

函数(& $ results,美元访问)
  • 一个数组,存储删除数据量的结果。

  • 包含多个访问项的数组,每个访问项包含idvisit和idsite。这些访问的数据被要求删除。

PrivacyManager.deleteLogsOlderThan

中定义的Piwik /插件/ PrivacyManager / LogDataPurger排队104

当插件应该删除超过一定天数的日志/原始数据时触发。例子

公共函数deleteLogsOlderThan($dateUpperLimit, $deleteLogsOlderThan) {Db::query('DELETE FROM mytable WHERE creation_date < ')。dateUpperLimit - > getDateTime ());}

回调函数签名:

函数(dateUpperLimit, deleteLogsOlderThan美元)
  • 日期dateUpperLimit美元在此之前访问的日期应该删除。

  • intdeleteLogsOlderThan美元日志条目过期的天数。年龄大于此数字的访问及相关数据将被清除。

PrivacyManager.exportDataSubjects

中定义的Piwik /插件/ PrivacyManager /模型/ DataSubjects排队448

允许您丰富一个或多个数据主题的数据导出,使您的插件符合GDPR。如果你开发了一个可以存储访问数据的插件,但不使用任何核心逻辑来存储这些数据,这可能会很有用。如果使用核心API(例如日志表),则可以自动导出数据。

例子

公共函数exportDataSubjects(&export, $visitsToExport) {$export['myplugin'] = array();foreach($visitsToExport as $visit) {$export['myplugin'][] = '导出数据';}}

回调函数签名:

函数(& $ results,美元访问)
  • array &$results包含导出数据主题的数组。

  • 包含多个访问项的数组,每个访问项包含idvisit和idsite。请求导出这些访问的数据。

PrivacyManager.shouldIgnoreDnt

中定义的Piwik /插件/ PrivacyManager / DoNotTrackHeaderChecker排队76

回调函数签名:

函数(& shouldIgnore美元)

提供者

Provider.getCleanHostname

中定义的Piwik /插件/供应商/供应商排队89

在修饰主机名字符串时触发。此事件可用于自定义提供者报告中显示主机名的方式。

例子

公共函数getCleanHostname(&$cleanHostname, $hostname) {if ('fvae.VARG.ceaga.site.co.jp' == $hostname) {$cleanHostname = 'site.co.jp';}}

回调函数签名:

函数(& cleanHostname美元,美元的主机名)
  • 要显示的主机名字符串。由事件处理程序设置。

  • 字符串美元的主机名完整主机名。

介绍人

Referrer.addSearchEngineUrls

中定义的Piwik /插件/反向链接/引擎排队64

回调函数签名:

函数(& $ this - > definitionList)

Referrer.addSocialUrls

中定义的Piwik /插件/反向链接/社会排队62

回调函数签名:

函数(& $ this - > definitionList)

报告

Report.addReports

中定义的Piwik /插件/ ReportsProvider排队142

触发以添加无法由平台自动拾取的新报告。如果插件允许用户动态创建报告/维度,这是很有用的。例如CustomDimensions或CustomVariables。在这种情况下,维度的数量是可变的,并且不可能为其中一个维度创建报告文件,因为不知道将存在多少自定义维度。

例子

公共函数adreport (&$reports) {$reports[] = new MyCustomReport();}

回调函数签名:

函数(& $实例)
  • 报告美元的报告报告数组

用法:

CustomDimensions: addReports

Report.filterReports

中定义的Piwik /插件/ ReportsProvider排队164

触发过滤/限制报表。例子

公共函数filterReports(&$reports) {foreach ($reports as $index => $report) {if ($report->getCategoryId() === 'General_Actions') {unset($reports[$index]);//删除所有具有此操作的报告

回调函数签名:

函数(& $实例)
  • 报告美元的报告报告数组

用法:

MarketingCampaignsReporting: removeOriginalCampaignReport

Report.unsubscribe

中定义的Piwik /插件/ ScheduledReports / SubscriptionModel排队91

回调函数签名:

函数(reportfunction美元(' idreport '],美元的电子邮件)

请求

Request.dispatch

中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队92

回调函数签名:

函数(&$module, &$action, &$params)

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch

中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队112

回调函数签名:

函数(&$module, &$action, &$params)

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch

中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队132

回调函数签名:

函数(&$module, &$action, &$params)

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch

中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队152

回调函数签名:

函数(&$module, &$action, &$params)

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch

中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队173

回调函数签名:

函数(&$module, &$action, &$params)

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch

中定义的Piwik / FrontController排队617

在分派控制器动作之前直接触发。此事件可用于修改传递给一个或多个控制器动作的参数,也可用于更改被分派到的控制器动作。

回调函数签名:

函数(&$module, &$action, &$parameters)
  • 被分派到的插件的名称。

  • 被分派到的控制器方法的名称。

  • array &$parameters传递给控制器动作的参数。

用法:

CustomAlerts: checkControllerPermission安装::dispatchIfNotInstalledYetLanguagesManager: initLanguageSitesManager: redirectDashboardToWelcomePage

Request.dispatch.end

中定义的Piwik /插件/ TwoFactorAuth /测试/系统/ TwoFactorAuthTest排队64

回调函数签名:

Function (&$html, 'module', 'action', Function ())

Request.dispatch.end

中定义的Piwik / FrontController排队662

成功调用控制器动作后触发。此事件可用于在返回输出之前修改控制器动作输出(如果有)。

回调函数签名:

函数(&$result, $module, $action, $parameters)
  • 控制器动作结果。

  • 数组美元的参数传递给控制器动作的参数。

Request.dispatchCoreAndPluginUpdatesScreen

中定义的Piwik / FrontController排队385

在平台初始化和加载插件后触发。此事件可用于早期初始化。

注意:此时用户还没有进行身份验证。

用法:

CoreUpdater:调度LanguagesManager: initLanguage

Request.getRenamedModuleAndAction

中定义的Piwik / API /请求排队173

此事件在请求分派器中发布,可用于覆盖分派的模块和动作。当一些Controller方法或API方法被重命名或移动到另一个插件时,这很有用。

回调函数签名:

函数(和模块,美元和美元的行动)
  • & $模块字符串

  • & $行动字符串

用法:

反向链接::renameDeprecatedModuleAndActionRssWidget: renameExampleRssWidgetModuleScheduledReports: renameDeprecatedModuleAndAction

Request.initAuthenticationObject

中定义的Piwik /插件/ API /测试/集成/ APITest排队87

用法:

登录:onInitAuthenticationObjectLoginLdap: initAuthenticationObject

Request.initAuthenticationObject

中定义的Piwik /插件/ BulkTracking /追踪/处理程序排队125

用法:

登录:onInitAuthenticationObjectLoginLdap: initAuthenticationObject

Request.initAuthenticationObject

中定义的Piwik /追踪/请求排队218

用法:

登录:onInitAuthenticationObjectLoginLdap: initAuthenticationObject

Request.initAuthenticationObject

中定义的Piwik /控制台排队302

用法:

登录:onInitAuthenticationObjectLoginLdap: initAuthenticationObject

Request.initAuthenticationObject

中定义的Piwik / FrontController排队744

在用户身份验证之前触发,此时应创建全局身份验证对象。提供自己的身份验证实现的插件应该使用此事件来设置全局身份验证对象(必须从身份验证).

例子

Piwik: addAction(“请求。initAuthenticationObject', function() {StaticContainer::getContainer()->set('Piwik\Auth', new MyAuthImplementation());});

用法:

登录:onInitAuthenticationObjectLoginLdap: initAuthenticationObject

Request.shouldDisablePostProcessing

中定义的Piwik / API /请求排队696

API方法返回值后,对该值进行后期处理(例如,行根据filter_sort_column查询参数时,将根据filter_limit/filter_offset参数等)。如果您正在创建一个插件,需要完全禁用某些请求的后期处理,请使用此事件。

回调函数签名:

函数(& shouldDisable美元$ this - >请求)
  • 将此值设置为true以禁用请求的数据表后处理。

  • 数组美元的请求请求参数。

用法:

PrivacyManager: shouldDisablePostProcessing

ScheduledReports

ScheduledReports.allowMultipleReports

中定义的Piwik /插件/ ScheduledReports / API排队958

在确定预定报告传输介质是否可以处理在一个预定报告中发送多个Matomo报告时触发。提供自己的传输介质的插件应该使用这个事件来指定他们的后端是否可以一次发送多个Matomo报告。

回调函数签名:

函数(& allowMultipleReports美元,美元reportType]
  • bool &$allowMultipleReports后端类型是否可以处理多个Matomo报告

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

用法:

MobileMessaging: allowMultipleReportsScheduledReports: allowMultipleReports

ScheduledReports.getRendererInstance

中定义的Piwik /插件/ ScheduledReports / API排队553

在根据预定的报告输出格式获取呈现程序实例时触发。提供新的计划报表输出格式的插件应该使用此事件来处理新的报表格式。

回调函数签名:

function(&$reportRenderer, $reportType, $outputType, $report)
  • \ReportRenderer &$ ReportRenderer这个变量应该被一个事件订阅者设置为扩展\Piwik\ReportRenderer的实例。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

  • 字符串outputType美元报告的输出格式,例如:“html”“pdf”等。

  • 数组& $报告描述正在生成的计划报表的数组。

用法:

MobileMessaging: getRendererInstanceScheduledReports: getRendererInstance

ScheduledReports.getReportFormats

中定义的Piwik /插件/ ScheduledReports / API排队1005

收集所有可用的计划报表格式时触发。提供自己的计划报告格式的插件应该使用此事件使其格式可用。

回调函数签名:

函数(& reportFormats美元,美元reportType]
  • 一个数组,将每个可用的计划报表格式的字符串id与这些格式的图标路径映射。将新格式的ID添加到该数组中。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

用法:

MobileMessaging: getReportFormatsScheduledReports: getReportFormats

ScheduledReports.getReportMetadata

中定义的Piwik /插件/ ScheduledReports / API排队930

修改此事件,使其返回API方法列表,而不是报告元数据数组。在收集可与特定传输介质一起使用的Matomo报告列表时触发。

提供自己的传输媒介的插件应该使用这个事件来列出他们的后端支持的Matomo报告。

回调函数签名:

function(&$availableReportMetadata, $reportType, $idSite)
  • 包含每个支持报表的报表元数据的数组。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

  • intidSite美元我们正在获取可用报告的站点的ID。

用法:

MobileMessaging: getReportMetadataScheduledReports: getReportMetadata

ScheduledReports.getReportParameters

中定义的Piwik /插件/ ScheduledReports / API排队760

在收集计划报表类型的可用参数时触发。提供自己预定的报表传输介质的插件应该使用此事件列出其传输介质的可用报表参数。

回调函数签名:

函数(& availableParameters美元,美元reportType]
  • 数组& $ availableParameters此报表类型的可用参数列表。这是一个将参数id与布尔值映射的数组,布尔值指示参数是否为强制参数。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

用法:

MobileMessaging: getReportParametersScheduledReports: getReportParameters

ScheduledReports.getReportRecipients

中定义的Piwik /插件/ ScheduledReports / API排队1036

在获取计划报表的收件人列表时触发。提供自己的预定报告传输媒介的插件应该使用此事件来提取其后端特定的预定报告格式的收件人列表。

回调函数签名:

函数(&$接收者,$reportfunction('type'], $report)
  • 一个字符串数组,描述每个计划的报告接收者。例如,可以是电子邮件地址或电话号码的列表或插件使用的其他任何东西。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

  • 数组美元的报告描述正在生成的计划报表的数组。

用法:

MobileMessaging: getReportRecipientsScheduledReports: getReportRecipients

ScheduledReports.getReportTypes

中定义的Piwik /插件/ ScheduledReports / API排队981

收集所有可用的传输介质时触发。提供自己传输介质的插件应该使用此事件使其介质可用。

回调函数签名:

函数(& $ reportTypes]
  • 一个将传输介质id与这些介质图标的路径映射的数组。将新后端ID添加到该数组中。

用法:

MobileMessaging: getReportTypesScheduledReports: getReportTypes

ScheduledReports.processReports

中定义的Piwik /插件/ ScheduledReports / API排队531

在生成计划报表内容时触发。此事件可用于在计划报表呈现和交付之前,修改计划报表中一个或多个报表的报表数据或报表元数据。

待办事项:在$report中列出可用的数据,或者将其作为一个可以记录的新类(使用$report的所有其他事件都一样)

回调函数签名:

函数(&$ processereports, $reportType, $outputType, $report)
  • 计划报告中已处理报告的列表。条目包括每个报表的报表数据和元数据。

  • 字符串reportType美元描述如何发送预定报告的字符串ID,例如,“短信”“电子邮件”

  • 字符串outputType美元报告的输出格式,例如:“html”“pdf”等。

  • 数组美元的报告描述正在生成的计划报表的数组。

用法:

PagePerformance: processReportsScheduledReports: processReports

ScheduledReports.sendReport

中定义的Piwik /插件/ ScheduledReports / API排队695

发送预定报表时触发。提供新的预定报表传输媒介的插件应该使用此事件来发送预定报表。

回调函数签名:

function(&$reportType, $report, $contents, $filename = basename($outputFilename), $prettyDate, $reportSubject, $reportTitle, $additionalFiles, \Piwik\Period\Factory::build($reportfunction('period_param'], $date), $force]
  • 字符串& $ reportType描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

  • 数组& $报告描述正在生成的计划报表的数组。

  • 字符串美元的内容现在应该发送已生成的计划报告的内容。

  • 字符串美元的文件名已保存计划报表的文件的路径。

  • 字符串prettyDate美元计划报表中数据的美化日期字符串。

  • 字符串reportSubject美元描述计划报告中的内容的字符串。

  • 字符串reportTitle美元计划报告的给定标题(由Matomo用户提供)。

  • 数组additionalFiles美元应随此报告一起发送的其他文件列表。

  • 美元的时期生成报告的时间段。

  • 布尔美元的力量一个报表每个周期只能发送一次。将此设置为true将强制发送报告,即使报告已经发送。

用法:

MobileMessaging: sendReportScheduledReports: sendReport

ScheduledReports.validateReportParameters

中定义的Piwik /插件/ ScheduledReports / API排队787

在验证计划报表的参数时触发。提供自己的计划报表后端插件应该使用此事件来验证由ScheduledReports::getReportParameters()定义的自定义参数。

回调函数签名:

函数(参数,美元& reportType]
  • 数组& $参数计划报表的参数列表。

  • 字符串reportType美元描述报告如何发送的字符串ID,例如,“短信”“电子邮件”

用法:

MobileMessaging: validateReportParametersScheduledReports: validateReportParameters

ScheduledTasks

ScheduledTasks.execute

中定义的Piwik /调度器/调度器排队305

定时任务执行前直接触发

回调函数签名:

函数(& $任务)
  • 任务& $任务即将被执行的任务

ScheduledTasks.execute.end

中定义的Piwik /调度器/调度器排队332

定时任务执行成功后触发。例如,在执行特定任务时,可以使用事件执行另一个任务,或者清理某些资源。

回调函数签名:

函数(& $任务)
  • 任务& $任务刚刚执行的任务

ScheduledTasks.shouldExecuteTask

中定义的Piwik /调度器/调度器排队149

在任务执行前触发。插件可以监听并修改某个特定任务是否应该执行。通过这种方式,您可以强制更频繁地执行某些任务,或者例如永远不执行某些任务。

回调函数签名:

函数(& shouldExecuteTask美元,美元的任务)
  • 决定是否执行该任务。

  • 任务美元的任务即将被执行的任务。

Segment.addSegments

中定义的Piwik /部分/ SegmentsList排队129

触发添加自定义段定义。例子

公共函数addSegments(&$segments) {$segment = new segment ();段- > setSegment(“my_segment_name”);段- > setType(段::TYPE_DIMENSION);$segment->setName('我的段名');段- > setSqlSegment(“log_table.my_segment_name”);$segment [] = $segment;}

回调函数签名:

函数(列表)
  • SegmentsList美元的列表SegmentsList的实例。您可以通过这种方式向列表中添加段。

Segment.filterSegments

中定义的Piwik /部分/ SegmentsList排队147

触发筛选段定义。例子

公共函数filterSegments(&$segmentList) {$segmentList->remove('Category');}

回调函数签名:

函数(列表)

SegmentEditor

SegmentEditor.deactivate

中定义的Piwik /插件/ SegmentEditor / API排队217

在删除段或使其不可见之前触发。插件可以使用此事件来抛出异常或执行其他操作。

回调函数签名:

函数(idSegment美元)
  • intidSegment美元要删除的段ID。

用法:

ScheduledReports: segmentDeactivation

SegmentEditor.update

中定义的Piwik /插件/ SegmentEditor / API排队271

在修改段之前触发。插件可以使用此事件来抛出异常或执行其他操作。

回调函数签名:

函数(idSegment,绑定美元)
  • intidSegment美元可见性降低的段的ID。

用法:

ScheduledReports: segmentUpdated

Segments.getKnownSegmentsToArchiveAllSites

中定义的Piwik / SettingsPiwik排队103

在cron存档过程中触发,以收集应该为所有网站预处理的片段。在存档数据时,将为每个段启动存档过程。此事件可用于添加要预处理的段。如果你的插件依赖于特定段的数据,这个事件可以用来提供增强的性能。

注意:如果你只想添加一个由用户管理的段,使用SegmentEditor API。

例子

Piwik: addAction(“段。getKnownSegmentsToArchiveAllSites',函数(&$segments) {$segments[] = '国家=jp;城市=东京';});

回调函数签名:

函数(& segmentsToProcess美元)
  • 段定义列表,例如:

    数组('browserCode=ff;resolution=800x600', 'country=jp;city=Tokyo')在事件处理程序中向该数组添加段。

用法:

SegmentEditor: getKnownSegmentsToArchiveAllSites

Segments.getKnownSegmentsToArchiveForSite

中定义的Piwik / SettingsPiwik排队153

在cron存档过程中触发,以收集应该为特定站点预处理的段。在为一个站点归档数据时,将为每个段启动存档过程。此事件可用于为一个站点添加要预处理的段。

注意:如果你只想添加一个由用户管理的段,你应该使用SegmentEditor API。

例子

Piwik: addAction(“段。getKnownSegmentsToArchiveForSite',函数(&$segment, $idSite) {$segments[] = '国家=jp;城市=东京';});

回调函数签名:

函数(& $段,idSite美元)
  • 段定义列表,例如:

    数组('browserCode=ff;resolution=800x600', 'country=JP;city=Tokyo')在事件处理程序中向该数组添加段。
  • intidSite美元要获取段的站点的ID。

用法:

SegmentEditor: getKnownSegmentsToArchiveForSite

搜索引擎优化

SEO.getMetricsProviders

中定义的Piwik /插件/ SEO /标准/聚合器排队59

使用此事件注册新的SEO指标提供者。

回调函数签名:

函数(& $提供者]
  • 数组& $提供者包含Piwik\Plugins\SEO\Metric\MetricsProvider实例数组。

SitesManager

SitesManager.addSite.end

中定义的Piwik /插件/ SitesManager / API排队748

添加站点后触发。

回调函数签名:

函数($ idSite]
  • intidSite美元添加的站点ID。

用法:

TagManager: onSiteAdded

SitesManager.deleteSite.end

中定义的Piwik /插件/ SitesManager / API排队861

删除站点后触发。插件可以使用此事件删除网站特定的值或设置,例如删除属于特定网站的所有目标。如果你存储任何与网站相关的数据,你应该在这里清理这些信息。

回调函数签名:

函数($ idSite]
  • intidSite美元需要删除的站点ID。

用法:

CustomAlerts: deleteAlertsForSiteCustomDimensions: deleteCustomDimensionDefinitionsForSite目标::deleteSiteGoalsScheduledReports: deleteSiteReportSegmentEditor: onDeleteSiteSitesManager: onSiteDeletedTagManager: onSiteDeletedUsersManager: deleteSite

SitesManager.getImageTrackingCode

中定义的Piwik /插件/ SitesManager / API排队222

触发时,生成图像链接跟踪代码服务器端。插件可以使用此事件自定义显示给用户的图像跟踪代码。

回调函数签名:

函数(& $ piwikUrl & $ urlParams]
  • Matomo安装的域和URL路径,例如:“examplepiwik.com/path/to/piwik”

  • 数组中使用的查询参数元素的src URL。更多信息请参阅Matomo的图像跟踪文档。

SitesManager.shouldPerformEmptySiteCheck

中定义的Piwik /插件/ SitesManager / SitesManager排队149

在检查之前发布,以显示“尚未记录数据”消息。如果您的measurement不应该有访问,您可以使用此事件确保永远不会显示该消息。

回调函数签名:

函数(& shouldPerformEmptySiteCheck美元,美元siteId]
  • bool &$ shouldperformemptsitecheck设置该值为true执行检查,否则为false。

  • intsiteId美元我们要执行检查的站点的ID。

SitesManager.showMatomoLinksInTrackingCodeEmail

中定义的Piwik /插件/安装/控制器排队400

回调函数签名:

函数(& showMatomoLinks美元)

系统

System.addSystemSummaryItems

中定义的Piwik /插件/ CoreHome / widget / GetSystemSummary排队66

触发以添加系统摘要小部件中显示的系统摘要项。例子

公共函数addSystemSummaryItem(&$systemSummary) {$numUsers = 5;$systemSummary[] = new systemSummary \Item($key = 'users', Piwik::translate('General_NUsers', $numUsers), $value = null, array('module' => 'UsersManager', 'action' => 'index'), $icon = 'icon-user');}

回调函数签名:

函数(& systemSummary美元)
  • 包含系统摘要项的数组。

用法:

CoreAdminHome: addSystemSummaryItemsCorePluginsAdmin: addSystemSummaryItems目标::addSystemSummaryItemsSegmentEditor: addSystemSummaryItemsSitesManager: addSystemSummaryItemsTagManager: addSystemSummaryItemsUsersManager: addSystemSummaryItems

System.filterSystemSummaryItems

中定义的Piwik /插件/ CoreHome / widget / GetSystemSummary排队One hundred.

触发以筛选系统摘要小部件中显示的系统摘要项。插件也可能对系统摘要项进行不同的排序。例子

公共函数filterSystemSummaryItems(&$systemSummary) {foreach ($systemSummaryItems as $index => $item) {if ($item && $item->getKey() === 'users') {$systemSummaryItems[$index] = null;}}}

回调函数签名:

函数(& systemSummary美元)
  • 包含系统摘要项的数组。

SystemSettings

SystemSettings.updated

中定义的Piwik /设置/插件/ SystemSettings排队106

系统设置更新后触发。例子

Piwik:: addAction (SystemSettings。updated',函数(SystemSettings $settings) {if ($settings->getPluginName() === 'PluginName') {$value = $settings-> somessetting ->getValue();//使用新的设置值做一些事情}});

回调函数签名:

函数(美元)
  • \设置美元的设置插件设置对象。

TagManager

TagManager.addTags

中定义的Piwik /插件/ TagManager /模板/标签/ TagsProvider排队91

事件以添加自定义标记。要过滤标签,请看一下TagManager.filterTags事件。例子

公共函数addTags(&$tags) {$tags[] = new MyCustomTag();}

回调函数签名:

函数(& $标签)
  • BaseTag包含标签列表的数组。

TagManager.addTriggers

中定义的Piwik /插件/ TagManager /模板/触发/ TriggersProvider排队90

事件添加自定义触发器。要过滤触发器,请查看TagManager.filterTriggers事件。例子

公共函数addTriggers(&$triggers) {$triggers[] = new MyCustomTrigger();}

回调函数签名:

函数(& $触发)

TagManager.addVariables

中定义的Piwik /插件/ TagManager /模板/变量/ VariablesProvider排队106

事件添加自定义变量。要过滤变量,请查看TagManager.filterVariables事件。例子

公共函数addVariables(&$variables) {$variables[] = new MyCustomVariable();}

回调函数签名:

函数(& $变量)

TagManager.containerFileChanged

中定义的Piwik /插件/ TagManager /背景/存储/文件系统排队33

触发,以便插件可以检测到更改的文件,例如将其同步到其他服务器。

回调函数签名:

函数(名称)

TagManager.containerFileDeleted

中定义的Piwik /插件/ TagManager /背景/存储/文件系统排队44

触发,以便插件可以检测到已删除的文件,例如将其同步到其他服务器。

回调函数签名:

函数(名称)

TagManager.deleteContainer.end

中定义的Piwik /插件/ TagManager / API排队1146

回调函数签名:

function('idSite' => $idSite, 'idContainer' => $idContainer))

TagManager.deleteContainerTag.end

中定义的Piwik /插件/ TagManager / API排队545

回调函数签名:

函数function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idTag' => $idTag))

TagManager.deleteContainerTrigger.end

中定义的Piwik /插件/ TagManager / API排队700

回调函数签名:

function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idTrigger' => $idTrigger))

TagManager.deleteContainerVariable.end

中定义的Piwik /插件/ TagManager / API排队936

回调函数签名:

function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idVariable' => $idVariable))

TagManager.deleteContainerVersion.end

中定义的Piwik /插件/ TagManager / API排队1101

回调函数签名:

function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion))

TagManager.filterTags

中定义的Piwik /插件/ TagManager /模板/标签/ TagsProvider排队124

触发过滤/限制标签。例子

公共函数filterTags(&$tags) {foreach ($tags as $index => $tag) {if ($tag->getId() === 'CustomHtml') {} unset($tags[$index]);//删除这个ID的标签

回调函数签名:

函数(& $标签)
  • BaseTag包含标签列表的数组。

TagManager.filterTriggers

中定义的Piwik /插件/ TagManager /模板/触发/ TriggersProvider排队123

事件来筛选/限制触发器。例子

公共函数filterTriggers(&$触发器){foreach($触发器作为$index => $trigger) {if ($trigger->getId() === 'CustomJs') {} unset($触发器[$index]);//删除该ID的触发器

回调函数签名:

函数(& $触发)

TagManager.filterVariables

中定义的Piwik /插件/ TagManager /模板/变量/ VariablesProvider排队140

事件来筛选/限制变量。例子

公共函数filterVariables(&$variables) {foreach ($variables as $index => $variable) {if ($variable->getId() === 'CustomVariable') {} unset($variables[$index]);//删除这个ID的变量

回调函数签名:

函数(& $变量)

TagManager.regenerateContainerReleases

中定义的Piwik /插件/ TagManager /命令/ RegenerateContainers排队30.

回调函数签名:

函数($ onlyPreview]

用法:

TagManager: regenerateReleasedContainers

模板

Template.afterCustomVariablesReport

中定义的Piwik /插件/ CustomVariables /报告/ GetCustomVariables排队68

回调函数签名:

函数(& $)

用法:

ProfessionalServices: getCustomVariablesPromo

Template.afterReferrerTypeReport

中定义的Piwik /插件/反向链接/报告/ GetReferrerType排队124

回调函数签名:

函数(& $)

用法:

ProfessionalServices: getReferrerTypePromo

Template.beforeGoalListActionsBody

中定义的Piwik /插件/目标/控制器排队154

回调函数签名:

函数(& str美元,美元目标]

Template.beforeGoalListActionsHead

中定义的Piwik /插件/目标/控制器排队163

回调函数签名:

函数(& $ str]

Template.endGoalEditTable

中定义的Piwik /插件/目标/控制器排队169

回调函数签名:

函数(& $ str]

Template.jsGlobalVariables

中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队75

回调函数签名:

函数(& $)

用法:

AnonymousPiwikUsageMeasurement: addMatomoClientTrackingCoreAdminHome: addJsGlobalVariablesLanguagesManager: jsGlobalVariables生活:addJsGlobalVariables过渡:addJsGlobalVariables

Template.jsGlobalVariables

中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队90

回调函数签名:

函数(& $)

用法:

AnonymousPiwikUsageMeasurement: addMatomoClientTrackingCoreAdminHome: addJsGlobalVariablesLanguagesManager: jsGlobalVariables生活:addJsGlobalVariables过渡:addJsGlobalVariables

Template.jsGlobalVariables

中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队103

回调函数签名:

函数(& $)

用法:

AnonymousPiwikUsageMeasurement: addMatomoClientTrackingCoreAdminHome: addJsGlobalVariablesLanguagesManager: jsGlobalVariables生活:addJsGlobalVariables过渡:addJsGlobalVariables

Template.jsGlobalVariables

中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队120

回调函数签名:

函数(& $)

用法:

AnonymousPiwikUsageMeasurement: addMatomoClientTrackingCoreAdminHome: addJsGlobalVariablesLanguagesManager: jsGlobalVariables生活:addJsGlobalVariables过渡:addJsGlobalVariables

之旅

Tour.filterChallenges

中定义的Piwik /插件/旅游/订婚/挑战排队114

触发为“欢迎来到马托摩之旅”增加新的挑战。例子

公共函数addChallenge(&$challenges) {$challenges[] = new MyChallenge();}

回调函数签名:

函数(&挑战美元)
  • 挑战& $挑战一系列挑战

跟踪器

Tracker.Cache.getSiteAttributes

中定义的Piwik /追踪/缓存排队131

触发以获取可能由跟踪器使用的站点实体的属性。插件添加新的站点属性用于其他跟踪事件,必须使用此事件将这些属性放在跟踪器缓存中。

例子

公共函数getSiteAttributes($content, $idSite) {$sql = "SELECT info FROM "Common::prefixTable('myplugin_extra_site_info')。"WHERE idsite = ?";$content['myplugin_site_data'] = Db::fetchOne($sql, array($idSite));}

回调函数签名:

函数(& $内容,idSite美元)
  • 站点属性名称与值的数组映射。

  • intidSite美元要获取属性的站点ID。

用法:

CustomDimensions: addCustomDimensionsAttributes目标::fetchGoalsFromDbUsersManager: recordAdminUsersInCache

Tracker.detectReferrerSearchEngine

中定义的Piwik /插件/反向链接/列/基地排队305

当检测到引用URL的搜索引擎时触发。插件可以使用此事件来提供自定义搜索引擎检测逻辑。

回调函数签名:

函数(& searchEngineInformation美元$ this - > referrerUrl]
  • 一个包含以下信息的数组:

    —**name**:搜索引擎名称。—**keywords**:搜索关键字。这个参数被初始化为Matomo默认搜索引擎检测逻辑的结果。
  • 跟踪请求的引用URL。

Tracker.detectReferrerSocialNetwork

中定义的Piwik /插件/反向链接/列/基地排队356

当检测到一个推荐人URL的社交网络时触发。插件可以使用这个事件来提供自定义的社交网络检测逻辑。

回调函数签名:

函数(& socialNetworkName美元$ this - > referrerUrl]
  • string &$socialNetworkName社交网络名称,如果没有检测到则为false

    该参数被初始化为Matomo默认社交网络检测逻辑的结果。
  • 跟踪请求的引用URL。

Tracker.end

中定义的Piwik /插件/ QueuedTracking /命令/过程排队92

Tracker.end

中定义的Piwik /跟踪器排队134

Tracker.getDatabaseConfig

中定义的Piwik /追踪/ Db排队262

在跟踪器建立到数据库的连接之前触发。此事件可用于更改跟踪器使用的数据库连接设置。

回调函数签名:

函数(& configDb美元)
  • 数组dbinfo美元引用一个包含数据库连接信息的数组,包括:

    —**host**: MySQL数据库的主机名或IP地址。—**用户名**:连接数据库时使用的用户名。—“**password**”:连接数据库时使用的密码。—**dbname**: Matomo MySQL数据库名。—**port**: MySQL数据库使用的端口。- **adapter**: PDO\MYSQL' or MYSQLI' - **type**: MYSQL引擎,例如InnoDB

Tracker.getJavascriptCode

中定义的Piwik /追踪/ TrackerCodeGenerator排队211

在服务器端生成JavaScript跟踪代码时触发。插件可以使用这个事件来定制显示给用户的JavaScript跟踪代码。

回调函数签名:

函数(& codeImpl美元,美元参数)
  • 包含事件处理程序可以修改的代码片段的数组。将包含以下元素:

    —**idSite**:需要跟踪的站点ID。- **piwikUrl**:要使用的跟踪器URL。- **options**:一串自定义JavaScript跟踪器的JavaScript代码。**optionsBeforeTrackerUrl**:一串Javascript代码,在将setTrackerUrl添加到paq之前自定义匿名函数内部的Javascript跟踪器。—**protocol**: Matomo url协议。—**loadAsync**: boolean piwik.js是否同步或异步加载如果HTTPS域与正常域不同,可以设置**httpsPiwikUrl**元素。
  • 数组美元的参数提供给的参数TrackerCodeGenerator:生成()

Tracker.isExcludedVisit

中定义的Piwik /追踪/ VisitExcluded排队97

在每次跟踪请求时触发。此事件可用于告诉跟踪器不要记录此特定操作或访问。

回调函数签名:

函数(& $排除在外,$ this - >请求)
  • bool &$excluded是否排除该请求。初始化为.事件订阅者应将其设置为真正的以排除该请求。

  • \请求美元的请求包含所有请求信息的请求对象

用法:

TrackingSpamPrevention: isExcludedVisit

Tracker.makeNewVisitObject

中定义的Piwik /追踪/访问/工厂排队38

在一个新的访问跟踪对象被创建。此事件的订阅者可以强制使用从Piwik\Tracker\VisitInterface扩展而来的自定义访问跟踪对象。

回调函数签名:

函数(& $访问)
  • \Piwik\Tracker\VisitInterface &$visit初始化为null,但可以设置为一个新的visit对象。如果没有修改,Matomo将使用默认类。

Tracker.PageUrl.getQueryParametersToExclude

中定义的Piwik /追踪/ PageUrl排队103

在Piwik\Tracker\ action中设置操作url之前触发,以便插件可以注册参数以排除跟踪url(例如活动参数)。

回调函数签名:

函数(& parametersToExclude美元)
  • 一个要从跟踪url中排除的参数数组。

用法:

MarketingCampaignsReporting: getQueryParametersToExcludeTagManager: getQueryParametersToExclude

Tracker.Request.getIdSite

中定义的Piwik /追踪/请求排队589

在获取我们正在跟踪访问的站点的ID时触发。此事件可用于更改站点ID,以便跟踪不同网站的数据。

回调函数签名:

函数(& $ idSite, $ this - > params)
  • 的值初始化为idsite查询参数。如果订阅者设置了此变量,则它使用的值必须大于0。

  • 数组美元的参数当前跟踪请求中的整个请求参数数组。

Tracker.setTrackerCacheGeneral

中定义的Piwik /追踪/缓存排队212

通用跟踪器缓存保存到磁盘。此事件可用于向缓存中添加额外内容。在跟踪过程中使用但计算/查询成本较高的数据应该被缓存以保持跟踪效率。此类数据的一个例子是存储在选项表中的选项。为每个跟踪请求查询数据意味着对每个访问者操作进行不必要的额外数据库查询。使用缓存可以解决这个问题。

例子

公共函数setTrackerCacheGeneral(&$cacheContent) {$cacheContent['MyPlugin. txt]myCacheKey'] = Option::get('MyPlugin_myOption');}

回调函数签名:

函数(& cacheContent美元)
  • 缓存数据的数组。每个数据必须按名称映射。

用法:

CoreHome: setTrackerCacheGeneralCustomDimensions: setTrackerCacheGeneralCustomVariables: getCacheGeneralPrivacyManager: setTrackerCacheGeneral反向链接::setTrackerCacheGeneralSitesManager: setTrackerCacheGeneralTrackingSpamPrevention: setTrackerCacheGeneralUserCountry: setTrackerCacheGeneral

TrackingSpamPrevention

TrackingSpamPrevention.banIp

中定义的Piwik /插件/ TrackingSpamPrevention / BlockedIpRanges排队152

当一个IP被禁止跟踪时,此事件被发布。例如,您可以使用它来通知某人该IP已被禁止。

回调函数签名:

函数(ipRange, ip)美元
  • 字符串ipRange美元要阻止的IP范围

  • 字符串ip美元导致该范围被阻止的IP

用法:

TrackingSpamPrevention: onBanIp

翻译

Translate.getClientSideTranslationKeys

中定义的Piwik /翻译/翻译排队178

在生成允许在浏览器中使用i18n字符串的JavaScript代码之前触发。插件应该订阅这个事件,以指定哪些翻译应该可用于JavaScript。

事件处理程序应该添加整个翻译键,即包含插件名称的键。

例子

getClientSideTranslationKeys(&$result) {$result[] = "MyPlugin_MyTranslation";}

回调函数签名:

函数(& $结果)
  • 客户端翻译键的整个列表。

用法:

插件:getClientSideTranslationKeys注释:getClientSideTranslationKeysCoreAdminHome: getClientSideTranslationKeysCoreHome: getClientSideTranslationKeysCorePluginsAdmin: getClientSideTranslationKeysCoreVisualizations: getClientSideTranslationKeysCustomAlerts: getClientSideTranslationKeysCustomDimensions: getClientSideTranslationKeysCustomVariables: getClientSideTranslationKeysDBStats: getClientSideTranslationKeys仪表板:getClientSideTranslationKeysDevicesDetection: getClientSideTranslationKeys诊断:getClientSideTranslationKeys电子商务:getClientSideTranslationKeys反馈:getClientSideTranslationKeysGeoIp2: getClientSideTranslationKeys目标::getClientSideTranslationKeys安装::getClientSideTranslationKeysIntl: getClientSideTranslationKeysLanguagesManager: getClientSideTranslationKeys生活:getClientSideTranslationKeysLogViewer: getClientSideTranslationKeys登录:getClientSideTranslationKeysLoginLdap: getClientSideTranslationKeys市场:getClientSideTranslationKeysMobileMessaging: getClientSideTranslationKeys多点:getClientSideTranslationKeys覆盖:getClientSideTranslationKeysPagePerformance: getClientSideTranslationKeysPrivacyManager: getClientSideTranslationKeys反向链接::getClientSideTranslationKeysScheduledReports: getClientSideTranslationKeysSecurityInfo: getClientSideTranslationKeysSegmentEditor: getClientSideTranslationKeysSitesManager: getClientSideTranslationKeysTagManager: getClientSideTranslationKeysTasksTimetable: getClientSideTranslationKeys过渡:getClientSideTranslationKeysTwoFactorAuth: getClientSideTranslationKeysUserCountry: getClientSideTranslationKeysUserCountryMap: getClientSideTranslationKeys用户标识:getClientSideTranslationKeysUsersManager: getClientSideTranslationKeysVisitorGenerator: getClientSideTranslationKeysWidgetize: getClientSideTranslationKeys

TwoFactorAuth

TwoFactorAuth.disabled

中定义的Piwik /插件/ TwoFactorAuth / TwoFactorAuthentication排队70

回调函数签名:

函数(登录)

TwoFactorAuth.enabled

中定义的Piwik /插件/ TwoFactorAuth /控制器排队226

回调函数签名:

函数(登录)

TwoFactorAuth.requiresTwoFactorAuthentication

中定义的Piwik /插件/ TwoFactorAuth / TwoFactorAuth排队257

回调函数签名:

函数(&$requiresAuth, $module, $action, $parameters)

用法:

TagManager: requiresTwoFactorAuthentication

更新器

Updater.componentInstalled

中定义的Piwik /更新器排队111

安装新组件后触发的事件。

回调函数签名:

函数(名称)
  • 字符串美元的名字已安装的组件。

Updater.componentUninstalled

中定义的Piwik /更新器排队161

卸载组件后触发的事件。

回调函数签名:

函数(名称)
  • 字符串美元的名字已卸载的组件。

Updater.componentUpdated

中定义的Piwik /更新器排队139

组件更新后触发的事件。可以用来处理应该在组件更新后完成的逻辑

例子

Piwik::addAction('Updater.componentUpdated', function ($componentName, $updatedVersion) {$mail = new mail ();邮件- > setDefaultFromPiwik ();邮件- >遭受美元(“test@example.org”);$mail->setSubject('组件已更新);$message = sprintf('组件%1$s已更新到版本%2$s', $componentName, $updatedVersion);邮件- > setBodyText(消息);邮件- >发送();});

回调函数签名:

函数(名称、版本)美元
  • 字符串componentName美元'core',插件名或维度名

  • 字符串updatedVersion美元版本更新至

用法:

CorePluginsAdmin: addPluginChangesCustomJsTracker: updateTrackerTagManager: regenerateReleasedContainers

用户

User.isNotAuthorized

中定义的Piwik / FrontController排队182

当访问权限不足的用户试图查看某些资源时触发。此事件可用于自定义当用户被拒绝访问时发生的错误(例如,显示错误消息,重定向到登录以外的页面,等等)。

回调函数签名:

函数(异常)

用法:

登录:noAccessLoginLdap: noAccess

UserSettings

UserSettings.updated

中定义的Piwik /设置/插件/ UserSettings排队89

更新用户设置后触发。例子

Piwik:: addAction (UserSettings。updated',函数(UserSettings $settings) {if ($settings->getPluginName() === 'PluginName') {$value = $settings-> somessetting ->getValue();//使用新的设置值做一些事情}});

回调函数签名:

函数(美元)
  • \设置美元的设置插件设置对象。

UsersManager

UsersManager.addUser.end

中定义的Piwik /插件/ UsersManager / API排队762

创建新用户后触发。

回调函数签名:

function($userLogin, $email, Piwik::getCurrentUserLogin()]
  • 字符串userLogin美元新用户的登录。

  • 字符串美元的电子邮件新用户的电子邮件。

  • 字符串inviterLogin美元创建新用户的用户登录

UsersManager.checkPassword

中定义的Piwik /插件/ UsersManager / UsersManager排队175

在核心密码验证器检查密码之前触发。此事件用于启用选项以创建自定义密码验证规则。它可以用来验证密码(长度,使用字符等),并通知检查密码。

例子

Piwik:: addAction (UsersManager。checkPassword',函数($password) {if (strlen($password) < 10){抛出新的异常('密码太短');}});

回调函数签名:

函数(密码)
  • 字符串美元的密码在明文检查密码。

用法:

LoginLdap: checkPassword

UsersManager.deleteUser

中定义的Piwik /插件/ UsersManager /模型排队674

删除用户后触发。此事件应用于清除与现在删除的用户相关的任何数据。的指示板例如,Plugin使用此事件删除用户的仪表板。

回调函数签名:

函数(userLogin美元)
  • 字符串userLogins美元被删除用户的登录句柄。

用法:

CoreAdminHome: cleanupUserCoreVisualizations: deleteUserCustomAlerts: deleteAlertsForLogin仪表板:deleteDashboardLayoutLanguagesManager: deleteUserLanguageScheduledReports: deleteUserReportSegmentEditor: onDeleteUser

UsersManager.getDefaultDates

中定义的Piwik /插件/ UsersManager /控制器排队197

当请求可用日期列表时触发,例如默认加载用户设置>报告日期。

回调函数签名:

函数(& $日期)
  • 数组(date =>翻译)

UsersManager.inviteUser.accepted

中定义的Piwik /插件/登录/控制器排队634

在用户接受邀请后触发

回调函数签名:

Function ($userfunction('login'), $userfunction('email'), $userfunction('invited_by')]]
  • 字符串userLogin美元被邀请用户的登录。

  • 字符串美元的电子邮件被邀请用户的电子邮件。

  • 字符串inviterLogin美元邀请该用户的用户登录

UsersManager.inviteUser.declined

中定义的Piwik /插件/登录/控制器排队704

在用户接受邀请后触发

回调函数签名:

Function ($userfunction('login'), $userfunction('email'), $userfunction('invited_by')]]
  • 字符串userLogin美元被邀请用户的登录。

  • 字符串美元的电子邮件被邀请用户的电子邮件。

  • 字符串inviterLogin美元邀请该用户的用户登录

UsersManager.inviteUser.end

中定义的Piwik /插件/ UsersManager / API排队797

新用户被邀请后触发。

回调函数签名:

函数(userLogin美元,美元的电子邮件)
  • 字符串userLogin美元新用户的登录。

  • 字符串美元的电子邮件新用户的电子邮件。

UsersManager.inviteUser.generateInviteLinkToken

中定义的Piwik /插件/ UsersManager / API排队1605

生成一个新的用户邀请令牌后触发。

回调函数签名:

函数(userLogin, userfunction美元('邮件']]
  • 字符串userLogin美元新用户的登录。

UsersManager.inviteUser.resendInvite

中定义的Piwik /插件/ UsersManager / API排队1564

新用户被邀请后触发。

回调函数签名:

函数(userLogin, userfunction美元('邮件']]
  • 字符串userLogin美元新用户的登录。

UsersManager.removeSiteAccess

中定义的Piwik /插件/ ScheduledReports /测试/ ScheduledReportsTest排队95

回调函数签名:

函数('userLogin',函数(1,2))

用法:

ScheduledReports: deleteUserReportForSites

UsersManager.removeSiteAccess

中定义的Piwik /插件/ UsersManager / API排队1133

回调函数签名:

函数(userLogin, idSites美元)

用法:

ScheduledReports: deleteUserReportForSites

UsersManager.updateUser.end

中定义的Piwik /插件/ UsersManager / API排队956

更新现有用户后触发。密码更改事件通知。

回调函数签名:

函数($userLogin, $passwordHasBeenUpdated, $email, $password)
  • 字符串userLogin美元用户的登录句柄。

  • 布尔passwordHasBeenUpdated美元包含密码修改信息的标志。

ViewDataTable

ViewDataTable.configure

中定义的Piwik /插件/ ViewDataTable排队267

在触发ViewDataTable建设。订阅者应该根据正在显示的报表自定义视图。在视图配置属性被保存的设置或请求参数覆盖之前触发此事件。使用它来定义默认值。

定义自己报表的插件必须订阅此事件,以便指定Matomo UI应该如何显示报表。

例子

//事件处理程序公共函数configureViewDataTable(ViewDataTable $view) {switch ($view->requestConfig->apiMethodToRequestDataTable) {case 'VisitTime. view ($view->requestConfig->apiMethodToRequestDataTable)}getVisitInformationPerServerTime': $view->config->enable_sort = true;$view->requestConfig->filter_limit = 10;打破;}}

回调函数签名:

函数(美元)

用法:

行动:configureViewDataTable带宽:configureViewDataTable事件:configureViewDataTablePagePerformance: configureViewDataTable

ViewDataTable.configure.end

中定义的Piwik /插件/ ViewDataTable排队309

触发后ViewDataTable建设。订阅者应该根据正在显示的报表自定义视图。在所有视图配置值被保存的设置或请求参数覆盖后触发此事件。如果需要使用最终配置值,请使用此选项。

定义自己报表的插件可以订阅此事件,以便指定Matomo UI应该如何显示报表。

例子

//事件处理公共函数configureViewDataTableEnd(ViewDataTable $view) {if ($view->requestConfig->apiMethodToRequestDataTable == 'VisitTime. 'getVisitInformationPerServerTime' && $view->requestConfig->flat == 1) {$view->config->show_header_message = '您正在查看这个扁平报告';}}

回调函数签名:

函数(美元)

ViewDataTable.filterViewDataTable

中定义的Piwik ViewDataTable /经理排队117

触发以过滤可用的数据表可视化。想要禁用某些可视化的插件应该订阅此事件并从传入数组中删除可视化。

例子

公共函数filterViewDataTable(&$visualizations) {unset($visualizations[HtmlTable::ID]);}

回调函数签名:

函数(& $结果)
  • 所有可用可视化的数组,以可视化ID为索引。

用法:

TreemapVisualization: removeTreemapVisualizationIfFlattenIsUsed

可视化

Visualization.beforeRender

中定义的Piwik /插件/可视化排队818

在呈现视图之前立即发布。插件可以使用此事件根据视图的数据或正在查看的报告执行视图的最后一分钟配置。

回调函数签名:

函数(美元)
  • 可视化美元的观点要配置的实例。

用法:

PrivacyManager: onConfigureVisualisation

小部件

Widget.addWidgetConfigs

中定义的Piwik /插件/ WidgetsProvider排队62

触发以添加自定义小部件配置。要填充小部件,请查看Widget.filterWidgets事件。例子

公共函数addWidgetConfigs(&$configs) {$config =新WidgetConfig();配置- > setModule(“PluginName”);配置- > setAction(“renderDashboard”);配置- > setCategoryId(“Dashboard_Dashboard”);配置- > setSubcategoryId(“dashboardId”);$config [] = $config;}

回调函数签名:

函数(& $配置)
  • 包含小部件配置项列表的数组。

用法:

仪表板:addWidgetConfigs

Widget.filterWidgets

中定义的Piwik /部件/ WidgetsList排队214

触发筛选小部件。例子

公共函数removeWidgetConfigs(Piwik\Widget\WidgetsList $list) {$list->remove($category=' general_访问量');//删除所有该类别的小部件}

回调函数签名:

函数(列表)
  • WidgetsList美元的列表WidgetsList的一个实例。您可以通过这种方式更改小部件列表。

用法:

市场:filterWidgetsRssWidget: filterWidgets搜索引擎优化:filterWidgets

Widgetize

Widgetize.shouldEmbedIframeEmpty

中定义的Piwik /插件/ Widgetize /控制器排队78

触发,以检测小部件化的报告是否应该包装在小部件化的HTML中,或者是否只应该打印控制器/动作的呈现输出。集shouldEmbedEmpty美元真正的如果您的小部件本身呈现完整的HTML。例子

公共函数emdiframeempty (&$shouldEmbedEmpty, $controllerName, $actionName) {if ($controllerName == 'Dashboard' && $actionName == 'index') {$shouldEmbedEmpty = true;}}

回调函数签名:

函数(&$shouldEmbedEmpty, $controllerName, $actionName)
  • 定义iframe是空嵌入还是包装在小部件化的html中。

  • 字符串controllerName美元将要执行的控制器的名称。

  • 字符串actionName美元控制器中将要执行的动作的名称。

用法:

仪表板:shouldEmbedIframeEmpty

Baidu