这是可用钩子的完整列表。如果你不熟悉这一点,请阅读我们的活动指南.
中定义的Piwik /插件/仪表板/仪表板排队205
允许其他插件修改默认仪表板布局。
回调函数签名:
函数(& defaultLayout美元)
默认仪表板布局的JSON编码字符串。包含一个列数组,其中每列都是一个小部件数组。每个小部件都是包含以下元素的关联数组:
** *uniqueId**:小部件的唯一ID。** *parameters**:应该用来获取这个小部件的报告的查询参数数组。
中定义的Piwik /访问/ CapabilitiesProvider排队43
触发以添加新功能。例子
公共函数addCapabilities(&$capabilities) {$capabilities[] = new MyNewCapability();}
回调函数签名:
函数(& $功能)
美元的报告
报告数组用法:
中定义的Piwik /访问/ CapabilitiesProvider排队62
触发过滤/限制能力。例子
公共函数filterCapabilities(&$capabilities) {foreach ($capabilities as $index => $capability) {if ($capability->getId() === 'tagmanager_write') {} unset($capabilities[$index]);//删除给定的能力
回调函数签名:
函数(& $功能)
美元的报告
报告数组加载当前用户的初始访问级别和权限后触发。使用此事件修改当前用户的权限(例如,确保每个用户都具有对特定站点的视图访问权)。例子
函数(&$idsitesByAccess, $login) {if ($login == ' someespecaluser '){返回;} $idsitesByAccess['view'][] = $mySpecialIdSite;}
回调函数签名:
函数(& $ this - > idsitesByAccess, $ this - >登录)
当前用户对各个站点的访问级别。将角色和能力id映射到站点id列表,例如:
“的”(“视图”= >(1、2、3),“写”= >(4、5)的管理 ' => [], ] ```
字符串美元的登录
当前用户的登录。
中定义的Piwik /插件/行动/列/ ActionType排队59
插件可以使用这个事件来添加他们自己的动作类型,所以它们在分段中可用。数组将内部id映射到访问者详细信息中使用的可读的动作类型名称
例子
公共函数addActionTypes(&$availableTypes) {$availableTypes[] = array('id' => 76, 'name' => 'media_play');}
回调函数签名:
函数(& $ availableTypes]
& $ availableTypes
用法:
中定义的Piwik /插件/行动/指标排队90
回调函数签名:
函数(& metricsConfig美元)
用法:
带宽:addActionMetrics,PagePerformance: addActionMetrics
中定义的Piwik / Plugins /动作/ VisitorDetails排队295
回调函数签名:
函数(& $ customFields & customJoins美元)
用法:
带宽:provideActionDimensionFields,内容::provideActionDimensionFields,CustomDimensions: provideActionDimensionFields,CustomVariables: provideActionDimensionFields,电子商务:provideActionDimensionFields,事件:provideActionDimensionFields
中定义的Piwik / API /代理排队225
在分派API请求之前触发。事件发生后直接触发该事件API.Request.dispatch事件触发。它可以用来修改传递给对象的参数单API方法。
注意:这可以通过API.Request.dispatch事件,但是该事件的事件处理程序将不得不做更多的工作。
例子
Piwik:: addAction (API.Actions。getPageUrls', function (&$parameters){//强制使用单个网站。出于某种原因。$parameters['idSite'] = 1;});
回调函数签名:
函数(& finalParameters美元)
中定义的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美元
数组extraInfo美元
一个包含API请求信息的数组。将包含以下数据:
- **className**:正在调用的API实例的命名空间-d类名。- **module**: API请求被发送到的插件的名称。—**action**:执行的API方法名称。- **parameters**:传递给API方法的参数数组。
中定义的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美元)
用法:
中定义的Piwik / API /代理排队645
此事件用于检查Plugin API类或Plugin API方法是否标记为@hideXYZ
应该隐藏在API列表中。
回调函数签名:
函数(& $隐藏)
中定义的Piwik /插件/ API / API排队641
如果你的插件有你想禁用比较功能的页面,你可以通过这个事件添加它们。添加页面为“CategoryId.SubcategoryId”。例子
公共函数getPagesComparisonsDisabledFor(&$pages) {$pages[] = "General_Visitors.MyPlugin_MySubcategory";$pages[] = "MyPlugin.myControllerAction";//如果你的插件定义了一整个页面,你想禁用比较}
回调函数签名:
函数(& $页面)
用法:
生活:getPagesComparisonsDisabledFor,多点:getPagesComparisonsDisabledFor,反向链接::getPagesComparisonsDisabledFor,过渡:getPagesComparisonsDisabledFor,UserCountryMap: getPagesComparisonsDisabledFor
中定义的Piwik /插件/ API / ProcessedReport排队220
收集所有可用报告后触发。此事件可用于修改其他插件中报表的报表元数据。例如,您可以向每个报表添加自定义指标,或者从可用报表列表中删除报表。
回调函数签名:
函数(& $ availableReports,作为$参数)
所有报表元数据的列表。读了API.getReportMetadata查看这个数组包含什么。
数组美元的参数
包含我们要获得报告的站点和期间的值。一些报告依赖于这些数据。例如,Goals报告依赖于被请求的站点id。包含以下信息:
- **idSite**:我们要获取报告的站点ID。- * *期* *:类型,如“天”“,“周”,“月”,“年”,“范围”。—**date**:时间段或日期范围内的字符串日期,例如“2013-01-01”或“2012-01-01,2013-01-01”。
用法:
中定义的Piwik / API /请求排队442
在验证API请求时触发,但仅当token_auth在请求中找到查询参数。提供身份验证功能的插件应该订阅此事件,并确保全局身份验证对象(返回的对象)StaticContainer: get (Piwik \身份验证)
)是要使用的设置token_auth美元
当它authenticate ()
方法执行。
回调函数签名:
函数(tokenAuth美元)
token_auth美元
的值token_auth查询参数。用法:
登录:ApiRequestAuthenticate,LoginLdap: ApiRequestAuthenticate
中定义的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: logStartTimeOfApiCall,CustomAlerts: checkApiPermission
中定义的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: trackApiCall,PagePerformance: enrichApi
中定义的Piwik / API /代理排队240
在分派API请求之前触发。使用此事件拦截API请求并执行您自己的代码。如果你设置returnedValue美元
在此事件的处理程序中,原始的API方法将不会执行,结果将是您在事件处理程序中设置的结果。
回调函数签名:
function(&$返回值,$finalParameters, $pluginName, $methodName, $parametersRequest)
设置此值以设置结果并抢占正常的API调用。
将传递给API方法的参数列表。
字符串pluginName美元
API方法所属插件的名称。
字符串methodName美元
将被调用的API方法的名称。
数组parametersRequest美元
此请求的查询参数。
中定义的Piwik / ArchiveProcessor排队523
触发更改在处理唯一访问者和用户时应该查看的站点id。
回调函数签名:
函数(&$sites, $params->getPeriod(), $params->getSegment())
一个包含一个idSite的数组。这个网站目前正在存档中。若要取消查询,可以将此值更改为空数组。要在查询中包括其他站点,可以向此idSites列表中添加更多idSites。
期美元的时期
请求存档的时间段。
段美元市场
请求存档的段。
中定义的Piwik / ArchiveProcessor排队126
回调函数签名:
函数($ this - >归档)
中定义的Piwik ArchiveProcessor /参数排队165
回调函数签名:
函数(& idSites美元$ this - > getPeriod ())
中定义的Piwik / ArchiveProcessor / PluginsArchiver排队86
触发它来检测存档器是否应该通过使用MySQL查询(当为真时)或通过聚合存档(当为假时)从原始数据进行聚合。通常,数据是从“day”期间的原始数据聚合而来,并从所有其他时期的存档中聚合而来。
回调函数签名:
函数(& $ shouldAggregateFromRawData, $ this - > params)
保龄球& $ shouldAggregateFromRawData
设置为true,表示从原始数据进行聚合,设置为false,表示聚合多个报告。
参数美元的参数
中定义的Piwik ArchiveProcessor /加载程序排队397
回调函数签名:
函数(& idSites美元)
中定义的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被请求作废。
数组美元的日期
包含要使之失效的日期的数组。
字符串美元的时期
包含要使之失效的周期的字符串。
\段美元市场
一个段对象,包含要使之失效的段。
字符串美元的名字
包含要使存档无效的名称的字符串。
中定义的Piwik / ArchiveProcessor / PluginsArchiver排队329
在new之后触发插件存档实例被创建。此事件的订阅者可以配置插件归档器,例如通过调用来阻止插件数据的归档文档- >禁用()
方法。
回调函数签名:
函数($archiver, $pluginName, $this->参数,false)
存储服务器&$archiver新创建的插件存档实例。
字符串pluginName美元
创建存档实例的插件名称。
数组$ this→参数
包含档案参数的数组(站点、周期、日期和段)
bool false此参数已弃用,将被删除。
中定义的Piwik / AssetManager UIAssetMerger / StylesheetUIAssetMerger排队105
在所有less样式表连接到一个长字符串后触发,但在它被缩小并合并到一个文件之前触发。此事件可用于添加较少不在磁盘上的文件中的样式表。
回调函数签名:
函数(& concatenatedContent美元)
& $ concatenatedContent
所有连接的less文件的内容。用法:
中定义的Piwik /插件/ CoreHome /测试/集成/ CoreHomeTest排队25
回调函数签名:
函数(& $内容)
用法:
CoreHome: filterMergedJavaScripts
中定义的Piwik /插件/ CoreHome /测试/集成/ CoreHomeTest排队33
回调函数签名:
函数(& $内容)
用法:
CoreHome: filterMergedJavaScripts
中定义的Piwik / AssetManager UIAssetMerger / JScriptUIAssetMerger排队68
在Matomo(以前的Piwik)使用的所有JavaScript文件被缩小并合并为一个文件之后触发,但在合并后的JavaScript写入磁盘之前触发。插件可以使用这个事件来修改合并的JavaScript或做其他事情。
回调函数签名:
函数(& mergedContent美元)
& $ mergedContent
简化和合并的JavaScript。用法:
CoreHome: filterMergedJavaScripts
中定义的Piwik / AssetManager UIAssetMerger / StylesheetUIAssetMerger排队145
在所有较少的样式表被编译为CSS、缩小并合并到一个文件后触发,但在生成的CSS写入磁盘之前触发。此事件可用于修改已合并的CSS。
回调函数签名:
函数(& mergedContent美元)
& $ mergedContent
合并和精简的CSS。中定义的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,注释:getJsFiles,AnonymousPiwikUsageMeasurement: getJsFiles,内容::getJsFiles,CoreAdminHome: getJsFiles,CoreHome: getJsFiles,CorePluginsAdmin: getJsFiles,CoreVisualizations: getJsFiles,CoreVue: getJsFiles,CustomAlerts: getJavaScriptFiles,CustomDimensions: getJsFiles,仪表板:getJsFiles,反馈:getJsFiles,见解:getJsFiles,生活:getJsFiles,LogViewer: getJsFiles,登录:getJsFiles,LoginLdap: getJsFiles,市场:getJsFiles,覆盖:getJsFiles,PagePerformance: getJsFiles,反向链接::getJsFiles,搜索引擎优化:getJsFiles,ScheduledReports: getJsFiles,SegmentEditor: getJsFiles,TagManager: getJsFiles,旅游:getJsFiles,过渡:getJsFiles,TreemapVisualization: getJsFiles,TwoFactorAuth: getJsFiles,UserCountry: getJsFiles,UserCountryMap: getJsFiles,用户标识:getJavaScriptFiles,Widgetize: getJsFiles
中定义的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,注释:getStylesheetFiles,CoreAdminHome: getStylesheetFiles,CoreHome: getStylesheetFiles,CorePluginsAdmin: getStylesheetFiles,CoreVisualizations: getStylesheetFiles,CustomAlerts: getStylesheetFiles,CustomDimensions: getStylesheetFiles,CustomVariables: getStylesheetFiles,DBStats: getStylesheetFiles,仪表板:getStylesheetFiles,DevicesDetection: getStylesheetFiles,诊断:getStylesheetFiles,事件:getStylesheetFiles,反馈:getStylesheetFiles,目标::getStylesheetFiles,见解:getStylesheetFiles,安装::getStylesheetFiles,生活:getStylesheetFiles,LogViewer: getStylesheetFiles,登录:getStylesheetFiles,LoginLdap: getStylesheetFiles,MarketingCampaignsReporting: getStylesheetFiles,市场:getStylesheetFiles,MobileMessaging: getStylesheetFiles,多点:getStylesheetFiles,PrivacyManager: getStylesheetFiles,ProfessionalServices: getStylesheetFiles,反向链接::getStylesheetFiles,RssWidget: getStylesheetFiles,ScheduledReports: getStylesheetFiles,SecurityInfo: getStylesheetFiles,SegmentEditor: getStylesheetFiles,SitesManager: getStylesheetFiles,TagManager: getStylesheetFiles,旅游:getStylesheetFiles,过渡:getStylesheetFiles,TreemapVisualization: getStylesheetFiles,TwoFactorAuth: getStylesheetFiles,UserCountry: getStylesheetFiles,UserCountryMap: getStylesheetFiles,UsersManager: getStylesheetFiles,VisitsSummary: getStylesheetFiles,Widgetize: getStylesheetFiles
中定义的Piwik /插件/类别排队61
触发添加自定义子类别。例子
公共函数addSubcategories(&$subcategories) {$subcategory = new subcategory ();子类- > setId(“General_Overview”);子类- > setCategoryId(“General_Visits”);子类- > setOrder (5);$subcategories[] = $subcategory;}
回调函数签名:
函数(& $子类)
用法:
CustomDimensions: addSubcategories,仪表板:addSubcategories,目标::addSubcategories
中定义的Piwik /变化/模型排队213
在显示更改前触发的事件可用于过滤不需要的更改
例子
Piwik: addAction('的变化。filterChanges',函数($changes) {foreach ($changes as $k => $c){//隐藏CoreHome插件的更改if (isset($c['plugin_name']) && $c['plugin_name'] == 'CoreHome') {unset($changes[$k]);} } });
回调函数签名:
函数(& $更改)
中定义的Piwik / CliMulti排队303
触发允许插件强制使用异步命令行多执行或禁用它。例子
公共函数supportsAsync(&$supportsAsync) {$supportsAsync = false;//不允许异步climulti执行
回调函数签名:
函数(& supportsAsync美元)
中定义的Piwik / FrontController排队370
当Matomo无法访问数据库数据时触发。此事件可用于启动安装过程或显示自定义错误消息。
回调函数签名:
函数(异常)
美元的例外
试图获取选项值时抛出的异常。用法:
中定义的Piwik / Config / IniFileChain排队549
在将配置写入/保存到本地文件系统之前触发。插件可以监听它并修改将保存在文件系统上的设置。这允许你防止保存插件按需设置的配置值。假设你在插件的配置中按需配置了数据库密码,那么你可以通过这样监听这个事件来防止密码保存在实际的配置文件中:
例子函数doNotSaveDbPassword (&$values) {unset($values['database']['password']);}
回调函数签名:
函数(& $值)
中定义的Piwik /应用程序/内核/ EnvironmentValidator排队110
当无法找到或读取配置文件时触发,这通常意味着尚未安装Matomo。此事件可用于启动安装过程或显示自定义错误消息。
回调函数签名:
函数(异常)
美元的例外
抛出的异常配置:getInstance ()
.用法:
安装::调度,LanguagesManager: initLanguage
中定义的Piwik /控制台排队196
触发以过滤/限制控制台命令。想要限制命令的插件应该订阅此事件并从现有列表中删除命令。例子
公共函数filterConsoleCommands(&$commands) {$key = array_search('Piwik\Plugins\MyPlugin\ commands \MyCommand', $commands);If (false !== $key) {unset($commands[$key]);}}
回调函数签名:
函数(& $命令)
中定义的Piwik / FrontController排队635
在分派控制器动作之前直接触发。事件发生后直接触发该事件Request.dispatch事件触发。
它可以用来做和Request.dispatch事件,但仅针对一个控制器操作。使用此事件将导致代码略少于Request.dispatch.
回调函数签名:
函数(& $参数)
中定义的Piwik / FrontController排队652
成功调用控制器动作后触发。此事件为方便而存在,在事件发生之前立即触发Request.dispatch.end事件触发。
它可以用来做和Request.dispatch.end事件,但仅针对一个控制器操作。使用此事件将导致代码略少于Request.dispatch.end.
回调函数签名:
函数(因此,美元和参数)
控制器动作的结果。
数组美元的参数
传递给控制器动作的参数。
中定义的Piwik /插件/ ControllerAdmin排队400
当呈现一个管理页面和通知任何警告或错误应该被触发。例如,当你有一个插件需要配置才能工作,而插件还没有配置时,你可以使用它。它也可以用来取消/删除其他通知通过呼叫例如通知\经理::取消(notificationId美元)
.
例子
公共函数onTriggerAdminNotifications(Piwik\Widget\WidgetsList $list) {if ($pluginFooIsNotConfigured) {$notification =新通知('插件foo尚未配置');$notification->context = notification::CONTEXT_WARNING;通知\经理::通知(“fooNotConfigured”,通知美元);}}
当磁盘上的INI配置文件被更改时触发。
回调函数签名:
函数($ localPath]
localPath美元
服务器上已更改文件的绝对路径。中定义的Piwik / Config /缓存排队87
回调函数签名:
函数($ this - > getFilename ($ id))
当INI配置文件未正确写入预期内容时触发。
回调函数签名:
函数($ localPath]
localPath美元
服务器上已更改文件的绝对路径。中定义的Piwik /插件/ CoreAdminHome / CustomLogo排队235
当用户上传自定义logo时触发。对于较大的logo、较小的logo-header.png文件和favicon,会触发此事件。
回调函数签名:
函数($ absolutePath]
absolutePath美元
在Matomo服务器上标识文件的绝对路径。中定义的Piwik /更新器排队525
Matomo更新后触发。
用法:
CustomJsTracker: updateTracker,TagManager: onPluginActivateOrInstall
中定义的Piwik / CronArchive / QueueConsumer排队320
此事件在cron归档进程开始为单个站点归档数据后立即触发。注意:多个归档进程可以发布此事件。
回调函数签名:
函数($ this - > idSite, $ this - > pid)
intidSite美元
我们要为之存档数据的站点的ID。
字符串$ pid
此站点的进程处理存档的PID。
中定义的Piwik / CronArchive / QueueConsumer排队168
此事件在cron归档进程开始为单个站点归档数据之前触发。注意:多个归档进程可以发布此事件。
回调函数签名:
函数($ this - > idSite, $ this - > pid)
intidSite美元
我们要为之存档数据的站点的ID。
字符串$ pid
此站点的进程处理存档的PID。
中定义的Piwik / CronArchive排队603
存档后触发此事件。
回调函数签名:
函数(美元)
这个美元
中定义的Piwik / CronArchive排队782
触发核心:存档控制台命令,以便插件可以修改网站的优先级,存档过程将被启动。插件可以使用这个钩子添加网站存档,删除网站存档,或改变网站将存档的顺序。
回调函数签名:
函数(& websiteIds美元)
& $ websiteIds
要启动存档过程的网站id列表。中定义的Piwik ArchiveProcessor /加载程序排队537
当检测到是否有不使用跟踪器的站点时触发此事件。默认情况下,我们只归档一个网站时,实际上有任何访问自从上次存档。然而,一些插件从其他来源导入数据,而不是使用跟踪器,因此永远不会有任何访问这个网站。为了确保我们仍然为这样的网站存档数据时,存档此网站的请求,您可以监听此事件,并将idSite添加到不使用跟踪器的网站列表。
回调函数签名:
函数(& idSitesNotUsingTracker美元)
& $ idSitesNotUsingTracker
宁愿导入数据而不使用跟踪器的idsite列表中定义的Piwik / CronArchive排队339
此事件在CronArchive实例初始化后触发。
回调函数签名:
函数($ this - > allWebsites]
websiteIds美元
这个CronArchive实例正在处理的网站id列表。这将是整个id列表,而不管是否已经处理了一些id。中定义的Piwik / CronArchive排队296
在初始化存档期间触发此事件。
回调函数签名:
函数(美元)
这个美元
中定义的Piwik /插件/ CustomJsTracker / TrackingCode / PiwikJsManipulator排队56
在生成Matomo JavaScript跟踪器之后,在跟踪器文件写入磁盘之前不久触发。你可以监听这个事件,例如自动将一些代码附加到JS跟踪文件中。例子
函数onManipulateJsTracker (&$content) {$content .= "\ npiwiki . dom。onLoad(function () {console.log('loaded');});”;}
回调函数签名:
函数(& $内容)
& $内容
生成的JavaScript跟踪器代码中定义的Piwik /插件/ CustomJsTracker / TrackingCode / PluginTrackerFiles排队85
检测一个自定义跟踪器文件是否应该添加到piwiki .js跟踪器。这是有用的,例如,如果一个插件只想在配置插件时添加它的跟踪文件。
回调函数签名:
函数(& $ shouldAddFile pluginName美元)
决定是否添加属于给定插件的跟踪文件。
字符串pluginName美元
该文件所属插件的名称
用法:
PrivacyManager: shouldAddTrackerFile
中定义的Piwik /插件/ CustomJsTracker / TrackerUpdater排队142
在跟踪器JavaScript内容(piwiki .js文件的内容)被更改后触发。
回调函数签名:
函数($ savedFile]
absolutePath美元
新piwiki .js文件的路径。用法:
TagManager: regenerateReleasedContainers
中定义的Piwik /插件/ CustomJsTracker / TrackerUpdater排队160
回调函数签名:
函数($ savedFile]
用法:
TagManager: regenerateReleasedContainers
中定义的Piwik /插件/ PrivacyManager / API排队236
用法:
CustomJsTracker: updateTracker
中定义的Piwik / FrontController排队347
当Matomo无法连接到数据库时触发。此事件可用于启动安装过程或显示自定义错误消息。
回调函数签名:
函数(异常)
美元的例外
创建和测试数据库连接时抛出的异常。用法:
安装::displayDbConnectionMessage
中定义的Piwik /插件/尺寸/ DimensionMetadataProvider排队91
当检测到要保留哪些log_action条目时触发。任何使用log_action表通过ID引用文本的日志表都应该添加它们的表信息,这样仍然在使用的操作就不会被意外删除。例子
Piwik:: addAction (Db。getActionReferenceColumnsByTable',函数(&$result) {$tableNameUnprefixed = 'log_example';$columnNameThatReferencesIdActionInLogActionTable = 'idaction_example';$result[$tableNameUnprefixed] = array($columnNameThatReferencesIdActionInLogActionTable);});
回调函数签名:
函数(& $结果)
& $结果
中定义的Piwik / Db排队127
在建立数据库连接之前触发。此事件可用于更改用于建立连接的设置。
回调函数签名:
函数(& dbConfig美元)
array *$ dbinfo引用一个包含数据库连接信息的数组,包括:
—**host**: MySQL数据库的主机名或IP地址。—**用户名**:连接数据库时使用的用户名。—“**password**”:连接数据库时使用的密码。—**dbname**: Matomo MySQL数据库名。—**port**: MySQL数据库使用的端口。- **adapter**: PDO\MYSQL' or MYSQLI' - **type**: MYSQL引擎,例如InnoDB
中定义的Piwik / Db /模式/ Mysql排队477
回调函数签名:
函数(& $ allMyTables]
用法:
AnonymousPiwikUsageMeasurement: getTablesInstalled,CustomAlerts: getTablesInstalled,CustomDimensions: getTablesInstalled,仪表板:getTablesInstalled,ExampleLogTables: getTablesInstalled,LanguagesManager: getTablesInstalled,PrivacyManager: getTablesInstalled,QueuedTracking: getTablesInstalled,ScheduledReports: getTablesInstalled,SegmentEditor: getTablesInstalled,TagManager: getTablesInstalled
中定义的Piwik /列/维度排队720
触发以添加平台无法自动拾取的新维度。如果插件允许用户动态创建报告/维度,这是很有用的。例如CustomDimensions或CustomVariables。在这种情况下,维度的数量是可变的,并且不可能为其中一个维度创建报告文件,因为不知道将存在多少自定义维度。
例子
公共函数addDimension(&$dimensions) {$dimensions[] = new MyCustomDimension();}
回调函数签名:
函数(& $实例)
美元的报告
维度数组用法:
CustomDimensions: addDimensions,CustomVariables: addDimensions
中定义的Piwik /列/维度排队744
触发过滤/限制尺寸。例子
公共函数filterDimensions(&$dimensions) {foreach ($dimensions as $index => $dimension) {if ($dimension->getName() === '页面URL') {} unset($dimensions[$index]);//删除该维度
回调函数签名:
函数(& $实例)
美元的维度
维度数组中定义的Piwik /应用程序/环境排队104
中定义的Piwik /插件/反馈/反馈排队133
回调函数签名:
函数(& $ shouldShowQuestionBanner]
中定义的Piwik /文件系统排队55
在所有非内存缓存被清除后触发(例如,通过cache:clear命令)。
中定义的Piwik / ExceptionHandler排队188
在Matomo错误页面显示给用户之前触发。此事件可用于修改捕获异常时显示的错误页面的内容。
回调函数签名:
函数(因此,美元&交货)
错误页面的HTML。
\例外美元的前女友
错误页面中显示的异常。
中定义的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')
中定义的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')
中定义的Piwik /插件/观点/ API排队67
触发收集所有报告,以显示在“洞察”和“推动者和震动者”概述报告中。想要向概览添加新报告的插件应该订阅此事件并将报告添加到传入数组。API参数可选地配置为数组。
例子
公共函数addReportToInsightsOverview(&$reports) {$reports['Actions_getPageUrls'] = array();$reports['Actions_getDownloads'] = array('flat' => 1, 'minGrowthPercent' => 60);}
回调函数签名:
函数(& $报告)
用法:
行动:addReportToInsightsOverview,MarketingCampaignsReporting: addReportToInsightsOverview,反向链接::addReportToInsightsOverview,UserCountry: addReportToInsightsOverview
中定义的Piwik /插件/安装/控制器排队464
在表单初始化时触发,以自定义默认Matomo设置(安装过程结束时)。
回调函数签名:
函数(美元)
美元的形式
用法:
GeoIp2: installationFormInit,PrivacyManager: installationFormInit
中定义的Piwik /插件/安装/控制器排队475
在提交表单以自定义默认Matomo设置时触发(在安装过程结束时)。
回调函数签名:
函数(美元)
美元的形式
用法:
GeoIp2: installationFormSubmit,PrivacyManager: installationFormSubmit
中定义的Piwik /插件/ LanguagesManager / API排队91
加载可用语言文件后调用的钩子。使用这个钩子自定义Matomo中可用的languagesPath列表。
回调函数签名:
函数(& $语言)
中定义的Piwik /插件/生活/ ProfileSummaryProvider排队58
触发添加新的实时概要摘要。例子
公共函数addProfileSummary(&$ profilsummarmary) {$profileSummaries[] = new MyCustomProfileSummary();}
回调函数签名:
函数(& $实例)
profileSummaries美元
概要摘要的数组中定义的Piwik /插件/生活/访客排队70
触发以添加平台无法自动拾取的新访问者详细信息。例子
公共函数addVisitorDetails(&$visitorDetails) {$visitorDetails[] = new CustomVisitorDetails();}
回调函数签名:
函数(& $实例)
visitorDetails美元
visitorDetails数组中定义的Piwik /插件/生活/模型排队449
回调函数签名:
函数(& idSites美元)
中定义的Piwik /插件/生活/ ProfileSummaryProvider排队80
触发过滤/限制概要摘要。例子
公共函数filterProfileSummary(&$profileSummaries) {foreach ($profileSummaries as $index => $profileSummary) {if ($profileSummary->getId() === 'myid') {} unset($profileSummaries[$index]);//删除所有具有此ID的摘要
回调函数签名:
函数(& $实例)
profileSummaries美元
概要摘要的数组中定义的Piwik /插件/生活/访客排队98
触发过滤/限制访客详细信息。例子
公共函数filterVisitorDetails(&$visitorDetails) {foreach ($visitorDetails as $index => $visitorDetail) {if (strpos(get_class($visitorDetail), 'MyPluginName') !== false) {} unset($visitorDetails[$index]);//删除特定插件的所有访问者详细信息
回调函数签名:
函数(& $实例)
visitorDetails美元
visitorDetails数组中定义的Piwik /插件/生活/ VisitorFactory排队39
激活插件中访问过滤时触发。此事件的订阅者可以强制使用从\Piwik\Plugins\Live\VisitorInterface扩展而来的自定义访问者对象。
回调函数签名:
函数(& $访客,visitorRawData美元)
\Piwik\Plugins\Live\VisitorInterface &$visitor初始化为null,但可以设置为一个新的访问者对象。如果没有修改,Matomo将使用默认类。
数组visitorRawData美元
访问者对象构造函数中使用的原始数据。
中定义的Piwik /会议/ SessionInitializer排队58
回调函数签名:
函数(auth - > getLogin ())
中定义的Piwik / Plugins /登录/ SessionInitializer排队128
回调函数签名:
函数(auth - > getLogin ())
中定义的Piwik /会议/ SessionInitializer排队36
回调函数签名:
函数(auth - > getLogin ())
用法:
中定义的Piwik / Plugins /登录/ SessionInitializer排队106
回调函数签名:
函数(auth - > getLogin ())
用法:
中定义的Piwik /会议/ SessionInitializer排队41
回调函数签名:
函数(auth - > getLogin ())
用法:
中定义的Piwik / Plugins /登录/ SessionInitializer排队111
回调函数签名:
函数(auth - > getLogin ())
用法:
中定义的Piwik /插件/登录/控制器排队523
回调函数签名:
函数(Piwik: getCurrentUserLogin ())
中定义的Piwik / Piwik排队306
触发检查是否需要用户的密码确认。此事件可以在自定义登录插件中使用,以跳过某些用户的密码确认检查,例如,没有密码可用。
注意:明智地利用这个事件。禁用密码确认功能会降低安全性。
回调函数签名:
函数(& requiresPasswordConfirmation美元,美元登录)
保龄球& $ requiresPasswordConfirmation
指示是否应该检查密码
字符串美元的登录
用户登录时应确认密码
用法:
LoginLdap: skipPasswordConfirmation
此事件在发送电子邮件之前发布。您可以使用它来定制电子邮件,例如,替换主题/正文,更改from地址等。
回调函数签名:
函数(邮件)
美元的邮件
将要发送的邮件实例。此事件在发送电子邮件之前发布。如果您愿意,您可以使用它来中止发送特定的电子邮件。
回调函数签名:
函数(& shouldSendMail美元,美元的邮件)
bool &$shouldSendMail是否发送此邮件。设置为false则跳过发送。
邮件美元的邮件
将要发送的邮件实例。
中定义的Piwik /设置/测量/ MeasurableSettings排队137
在插件设置更新后触发。例子
Piwik:: addAction (MeasurableSettings。更新的',函数(MeasurableSettings $settings) {$value = $settings-> somesettings ->getValue();//用新的设置值做一些事情});
回调函数签名:
函数($,$ this - > idSite)
美元的设置
插件设置对象。中定义的Piwik /列/ MetricsList排队152
触发添加不能被平台自动拾取的新指标。如果插件允许用户动态创建指标,这是很有用的。例如CustomDimensions或CustomVariables。
例子
公共函数addMetric(&$list) {$list->addMetric(新的MyCustomMetric());}
回调函数签名:
函数(清单,computedFactory美元)
美元的列表
MetricsList的实例。您可以通过这种方式将指标添加到列表中。用法:
CoreHome: addComputedMetrics,电子商务:addComputedMetrics,目标::addComputedMetrics
中定义的Piwik /列/ MetricsList排队128
触发添加不能被平台自动拾取的新指标。如果插件允许用户动态创建指标,这是很有用的。例如CustomDimensions或CustomVariables。
例子
公共函数addMetric(&$list) {$list->addMetric(新的MyCustomMetric());}
回调函数签名:
函数(列表)
美元的列表
MetricsList的实例。您可以通过这种方式将指标添加到列表中。用法:
中定义的Piwik /列/ MetricsList排队166
触发过滤指标。例子
公共函数removeMetrics(Piwik\Columns\MetricsList $list) {$list->remove($category=' general_访问量');//删除该类别的所有度量
回调函数签名:
函数(列表)
美元的列表
MetricsList的实例。您可以通过这种方式更改指标列表。使用此事件注册由插件处理的度量标准文档的翻译。
回调函数签名:
函数(& $翻译)
& $翻译
column_name => Plugin_TranslationForColumnDocumentation的数组映射用法:
行动:addMetricDocumentationTranslations,内容::addMetricDocumentationTranslations,事件:addMetricDocumentationTranslations
使用此事件注册由插件处理的度量标准的翻译。
回调函数签名:
函数(& $翻译)
& $翻译
column_name => Plugin_TranslationForColumn的数组映射用法:
行动:addMetricTranslations,带宽:addMetricTranslations,内容::addMetricTranslations,DevicePlugins: addMetricTranslations,事件:addMetricTranslations,目标::addMetricTranslations,多点:addMetricTranslations,PagePerformance: addMetricTranslations,反向链接::getDefaultMetricTranslations,VisitFrequency: addMetricTranslations
使用此事件可为仅在演进图和行演进中使用的自定义度量定义单位。
回调函数签名:
函数(&$unit, $column, $idSite)
字符串& $单位
应该包含单位(例如%,€,s或空字符串)
字符串美元列
要确定的列的名称
字符串idSite美元
当前站点Id
用法:
使用此事件定义指标的较低值是否更好。
回调函数签名:
函数(& isLowerBetter美元,美元列)
字符串& $ isLowerBetter
是否应该设置为布尔值,以指示是否较低更好
字符串美元列
要确定的列的名称
例子
公共函数checkIsLowerMetricValueBetter(&$isLowerBetter, $metric) {if ($metric === 'position') {$isLowerBetter = true;}}
用法:
PagePerformance: isLowerValueBetter
中定义的Piwik /插件/ MobileMessaging / API排队180
删除电话号码后触发。此事件应用于清除与现在删除的电话号码相关的任何数据。例如,ScheduledReports插件使用此事件从所有报告中删除电话号码,以确保没有短信将被发送到该电话号码。例子
公共函数deletePhoneNumber($phoneNumber) {$this->unsubscribePhoneNumberFromScheduledReport($phoneNumber);}
回调函数签名:
函数(美元phoneNumber)
phoneNumber美元
刚刚被删除的电话号码。用法:
CustomAlerts: removePhoneNumberFromAllAlerts,ScheduledReports: deletePhoneNumber
中定义的Piwik /插件/多站点/ API排队563
触发过滤/限制哪些行应包括在MultiSites(所有网站仪表板)合计计算例子
公共函数filterMultiSitesRows(&$rows) {foreach ($rows as $index => $row) {if ($row->getColumn('label') === 5) {unset($rows[$index]);//从总数中删除idSite 5
回调函数签名:
函数(& $行)
中定义的Piwik /插件/ Widgetize /测试/系统/部件排队63
用法:
插件:detectIsApiRequest,CoreUpdater: updateCheck,LanguagesManager: initLanguage,UsersManager: onPlatformInitialized
中定义的Piwik / FrontController排队459
在平台初始化和用户身份验证之后,但在平台处理请求之前触发。Matomo使用此事件检查Matomo的更新。
用法:
插件:detectIsApiRequest,CoreUpdater: updateCheck,LanguagesManager: initLanguage,UsersManager: onPlatformInitialized
中定义的Piwik /插件/经理排队723
插件被激活后触发的事件。
回调函数签名:
函数(pluginName美元)
pluginName美元
已激活的插件。用法:
CorePluginsAdmin: onPluginActivated,CustomJsTracker: updateTracker,TagManager: onPluginActivateOrInstall
中定义的Piwik /插件/经理排队553
插件被停用后触发的事件。
回调函数签名:
函数(pluginName美元)
pluginName美元
已停用的插件。用法:
CustomJsTracker: updateTracker,TagManager: onPluginActivateOrInstall
中定义的Piwik /插件/经理排队1389
安装新插件后触发的事件。注意:如果配置文件不可写,可能会触发多次
回调函数签名:
函数(pluginName美元)
pluginName美元
已安装的插件。用法:
CorePluginsAdmin: addPluginChanges,CustomJsTracker: updateTracker,TagManager: onPluginActivateOrInstall
中定义的Piwik /插件/经理排队642
卸载插件后触发的事件。
回调函数签名:
函数(pluginName美元)
pluginName美元
已卸载的插件。用法:
CorePluginsAdmin: removePluginChanges,CustomJsTracker: updateTracker,TagManager: onPluginActivateOrInstall
中定义的Piwik /插件/ PrivacyManager /模型/ DataSubjects排队120
允许您删除数据主题,使您的插件符合GDPR。如果你开发了一个可以存储访问数据的插件,但不使用任何核心逻辑来存储这些数据,这可能会很有用。如果使用核心API,例如日志表,那么数据可能会被自动删除。
例子
公共函数deleteDataSubjects(&$result, $visitsToDelete) {$ numdelete = $this-> deletevisitors ($visitsToDelete) $result['myplugin'] = $ numdelete;}
回调函数签名:
函数(& $ results,美元访问)
一个数组,存储删除数据量的结果。
包含多个访问项的数组,每个访问项包含idvisit和idsite。这些访问的数据被要求删除。
中定义的Piwik /插件/ PrivacyManager / LogDataPurger排队104
当插件应该删除超过一定天数的日志/原始数据时触发。例子
公共函数deleteLogsOlderThan($dateUpperLimit, $deleteLogsOlderThan) {Db::query('DELETE FROM mytable WHERE creation_date < ')。dateUpperLimit - > getDateTime ());}
回调函数签名:
函数(dateUpperLimit, deleteLogsOlderThan美元)
日期dateUpperLimit美元
在此之前访问的日期应该删除。
intdeleteLogsOlderThan美元
日志条目过期的天数。年龄大于此数字的访问及相关数据将被清除。
中定义的Piwik /插件/ PrivacyManager /模型/ DataSubjects排队448
允许您丰富一个或多个数据主题的数据导出,使您的插件符合GDPR。如果你开发了一个可以存储访问数据的插件,但不使用任何核心逻辑来存储这些数据,这可能会很有用。如果使用核心API(例如日志表),则可以自动导出数据。
例子
公共函数exportDataSubjects(&export, $visitsToExport) {$export['myplugin'] = array();foreach($visitsToExport as $visit) {$export['myplugin'][] = '导出数据';}}
回调函数签名:
函数(& $ results,美元访问)
array &$results包含导出数据主题的数组。
包含多个访问项的数组,每个访问项包含idvisit和idsite。请求导出这些访问的数据。
中定义的Piwik /插件/ PrivacyManager / DoNotTrackHeaderChecker排队76
回调函数签名:
函数(& shouldIgnore美元)
中定义的Piwik /插件/供应商/供应商排队89
在修饰主机名字符串时触发。此事件可用于自定义提供者报告中显示主机名的方式。
例子
公共函数getCleanHostname(&$cleanHostname, $hostname) {if ('fvae.VARG.ceaga.site.co.jp' == $hostname) {$cleanHostname = 'site.co.jp';}}
回调函数签名:
函数(& cleanHostname美元,美元的主机名)
要显示的主机名字符串。由事件处理程序设置。
字符串美元的主机名
完整主机名。
中定义的Piwik /插件/反向链接/引擎排队64
回调函数签名:
函数(& $ this - > definitionList)
中定义的Piwik /插件/反向链接/社会排队62
回调函数签名:
函数(& $ this - > definitionList)
中定义的Piwik /插件/ ReportsProvider排队142
触发以添加无法由平台自动拾取的新报告。如果插件允许用户动态创建报告/维度,这是很有用的。例如CustomDimensions或CustomVariables。在这种情况下,维度的数量是可变的,并且不可能为其中一个维度创建报告文件,因为不知道将存在多少自定义维度。
例子
公共函数adreport (&$reports) {$reports[] = new MyCustomReport();}
回调函数签名:
函数(& $实例)
美元的报告
报告数组用法:
中定义的Piwik /插件/ ReportsProvider排队164
触发过滤/限制报表。例子
公共函数filterReports(&$reports) {foreach ($reports as $index => $report) {if ($report->getCategoryId() === 'General_Actions') {unset($reports[$index]);//删除所有具有此操作的报告
回调函数签名:
函数(& $实例)
美元的报告
报告数组用法:
MarketingCampaignsReporting: removeOriginalCampaignReport
中定义的Piwik /插件/ ScheduledReports / SubscriptionModel排队91
回调函数签名:
函数(reportfunction美元(' idreport '],美元的电子邮件)
中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队92
回调函数签名:
函数(&$module, &$action, &$params)
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队112
回调函数签名:
函数(&$module, &$action, &$params)
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队132
回调函数签名:
函数(&$module, &$action, &$params)
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队152
回调函数签名:
函数(&$module, &$action, &$params)
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik /插件/ SitesManager /测试/集成/ SitesManagerTest排队173
回调函数签名:
函数(&$module, &$action, &$params)
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik / FrontController排队617
在分派控制器动作之前直接触发。此事件可用于修改传递给一个或多个控制器动作的参数,也可用于更改被分派到的控制器动作。
回调函数签名:
函数(&$module, &$action, &$parameters)
被分派到的插件的名称。
被分派到的控制器方法的名称。
array &$parameters传递给控制器动作的参数。
用法:
CustomAlerts: checkControllerPermission,安装::dispatchIfNotInstalledYet,LanguagesManager: initLanguage,SitesManager: redirectDashboardToWelcomePage
中定义的Piwik /插件/ TwoFactorAuth /测试/系统/ TwoFactorAuthTest排队64
回调函数签名:
Function (&$html, 'module', 'action', Function ())
中定义的Piwik / FrontController排队662
成功调用控制器动作后触发。此事件可用于在返回输出之前修改控制器动作输出(如果有)。
回调函数签名:
函数(&$result, $module, $action, $parameters)
控制器动作结果。
数组美元的参数
传递给控制器动作的参数。
中定义的Piwik / FrontController排队385
在平台初始化和加载插件后触发。此事件可用于早期初始化。
注意:此时用户还没有进行身份验证。
用法:
CoreUpdater:调度,LanguagesManager: initLanguage
中定义的Piwik / API /请求排队173
此事件在请求分派器中发布,可用于覆盖分派的模块和动作。当一些Controller方法或API方法被重命名或移动到另一个插件时,这很有用。
回调函数签名:
函数(和模块,美元和美元的行动)
& $模块
字符串
& $行动
字符串
用法:
反向链接::renameDeprecatedModuleAndAction,RssWidget: renameExampleRssWidgetModule,ScheduledReports: renameDeprecatedModuleAndAction
中定义的Piwik /插件/ API /测试/集成/ APITest排队87
用法:
登录:onInitAuthenticationObject,LoginLdap: initAuthenticationObject
中定义的Piwik /插件/ BulkTracking /追踪/处理程序排队125
用法:
登录:onInitAuthenticationObject,LoginLdap: initAuthenticationObject
中定义的Piwik /追踪/请求排队218
用法:
登录:onInitAuthenticationObject,LoginLdap: initAuthenticationObject
中定义的Piwik /控制台排队302
用法:
登录:onInitAuthenticationObject,LoginLdap: initAuthenticationObject
中定义的Piwik / FrontController排队744
在用户身份验证之前触发,此时应创建全局身份验证对象。提供自己的身份验证实现的插件应该使用此事件来设置全局身份验证对象(必须从身份验证).
例子
Piwik: addAction(“请求。initAuthenticationObject', function() {StaticContainer::getContainer()->set('Piwik\Auth', new MyAuthImplementation());});
用法:
登录:onInitAuthenticationObject,LoginLdap: initAuthenticationObject
中定义的Piwik / API /请求排队696
API方法返回值后,对该值进行后期处理(例如,行根据filter_sort_column
查询参数时,将根据filter_limit
/filter_offset
参数等)。如果您正在创建一个插件,需要完全禁用某些请求的后期处理,请使用此事件。
回调函数签名:
函数(& shouldDisable美元$ this - >请求)
将此值设置为true以禁用请求的数据表后处理。
数组美元的请求
请求参数。
用法:
PrivacyManager: shouldDisablePostProcessing
中定义的Piwik /插件/ ScheduledReports / API排队958
在确定预定报告传输介质是否可以处理在一个预定报告中发送多个Matomo报告时触发。提供自己的传输介质的插件应该使用这个事件来指定他们的后端是否可以一次发送多个Matomo报告。
回调函数签名:
函数(& allowMultipleReports美元,美元reportType]
bool &$allowMultipleReports后端类型是否可以处理多个Matomo报告
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
用法:
MobileMessaging: allowMultipleReports,ScheduledReports: allowMultipleReports
中定义的Piwik /插件/ ScheduledReports / API排队553
在根据预定的报告输出格式获取呈现程序实例时触发。提供新的计划报表输出格式的插件应该使用此事件来处理新的报表格式。
回调函数签名:
function(&$reportRenderer, $reportType, $outputType, $report)
\ReportRenderer &$ ReportRenderer这个变量应该被一个事件订阅者设置为扩展\Piwik\ReportRenderer的实例。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
字符串outputType美元
报告的输出格式,例如:“html”
,“pdf”
等。
数组& $报告
描述正在生成的计划报表的数组。
用法:
MobileMessaging: getRendererInstance,ScheduledReports: getRendererInstance
中定义的Piwik /插件/ ScheduledReports / API排队1005
收集所有可用的计划报表格式时触发。提供自己的计划报告格式的插件应该使用此事件使其格式可用。
回调函数签名:
函数(& reportFormats美元,美元reportType]
一个数组,将每个可用的计划报表格式的字符串id与这些格式的图标路径映射。将新格式的ID添加到该数组中。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
用法:
MobileMessaging: getReportFormats,ScheduledReports: getReportFormats
中定义的Piwik /插件/ ScheduledReports / API排队930
修改此事件,使其返回API方法列表,而不是报告元数据数组。在收集可与特定传输介质一起使用的Matomo报告列表时触发。
提供自己的传输媒介的插件应该使用这个事件来列出他们的后端支持的Matomo报告。
回调函数签名:
function(&$availableReportMetadata, $reportType, $idSite)
包含每个支持报表的报表元数据的数组。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
intidSite美元
我们正在获取可用报告的站点的ID。
用法:
MobileMessaging: getReportMetadata,ScheduledReports: getReportMetadata
中定义的Piwik /插件/ ScheduledReports / API排队760
在收集计划报表类型的可用参数时触发。提供自己预定的报表传输介质的插件应该使用此事件列出其传输介质的可用报表参数。
回调函数签名:
函数(& availableParameters美元,美元reportType]
数组& $ availableParameters
此报表类型的可用参数列表。这是一个将参数id与布尔值映射的数组,布尔值指示参数是否为强制参数。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
用法:
MobileMessaging: getReportParameters,ScheduledReports: getReportParameters
中定义的Piwik /插件/ ScheduledReports / API排队1036
在获取计划报表的收件人列表时触发。提供自己的预定报告传输媒介的插件应该使用此事件来提取其后端特定的预定报告格式的收件人列表。
回调函数签名:
函数(&$接收者,$reportfunction('type'], $report)
一个字符串数组,描述每个计划的报告接收者。例如,可以是电子邮件地址或电话号码的列表或插件使用的其他任何东西。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
数组美元的报告
描述正在生成的计划报表的数组。
用法:
MobileMessaging: getReportRecipients,ScheduledReports: getReportRecipients
中定义的Piwik /插件/ ScheduledReports / API排队981
收集所有可用的传输介质时触发。提供自己传输介质的插件应该使用此事件使其介质可用。
回调函数签名:
函数(& $ reportTypes]
用法:
MobileMessaging: getReportTypes,ScheduledReports: getReportTypes
中定义的Piwik /插件/ ScheduledReports / API排队531
在生成计划报表内容时触发。此事件可用于在计划报表呈现和交付之前,修改计划报表中一个或多个报表的报表数据或报表元数据。
待办事项:在$report中列出可用的数据,或者将其作为一个可以记录的新类(使用$report的所有其他事件都一样)
回调函数签名:
函数(&$ processereports, $reportType, $outputType, $report)
计划报告中已处理报告的列表。条目包括每个报表的报表数据和元数据。
字符串reportType美元
描述如何发送预定报告的字符串ID,例如,“短信”
或“电子邮件”
.
字符串outputType美元
报告的输出格式,例如:“html”
,“pdf”
等。
数组美元的报告
描述正在生成的计划报表的数组。
用法:
PagePerformance: processReports,ScheduledReports: processReports
中定义的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: sendReport,ScheduledReports: sendReport
中定义的Piwik /插件/ ScheduledReports / API排队787
在验证计划报表的参数时触发。提供自己的计划报表后端插件应该使用此事件来验证由ScheduledReports::getReportParameters()定义的自定义参数。
回调函数签名:
函数(参数,美元& reportType]
数组& $参数
计划报表的参数列表。
字符串reportType美元
描述报告如何发送的字符串ID,例如,“短信”
或“电子邮件”
.
用法:
MobileMessaging: validateReportParameters,ScheduledReports: validateReportParameters
中定义的Piwik /调度器/调度器排队305
定时任务执行前直接触发
回调函数签名:
函数(& $任务)
& $任务
即将被执行的任务中定义的Piwik /调度器/调度器排队332
定时任务执行成功后触发。例如,在执行特定任务时,可以使用事件执行另一个任务,或者清理某些资源。
回调函数签名:
函数(& $任务)
& $任务
刚刚执行的任务中定义的Piwik /调度器/调度器排队149
在任务执行前触发。插件可以监听并修改某个特定任务是否应该执行。通过这种方式,您可以强制更频繁地执行某些任务,或者例如永远不执行某些任务。
回调函数签名:
函数(& shouldExecuteTask美元,美元的任务)
决定是否执行该任务。
任务美元的任务
即将被执行的任务。
中定义的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的实例。您可以通过这种方式向列表中添加段。中定义的Piwik /部分/ SegmentsList排队147
触发筛选段定义。例子
公共函数filterSegments(&$segmentList) {$segmentList->remove('Category');}
回调函数签名:
函数(列表)
美元的列表
SegmentsList的实例。中定义的Piwik /插件/ SegmentEditor / API排队217
在删除段或使其不可见之前触发。插件可以使用此事件来抛出异常或执行其他操作。
回调函数签名:
函数(idSegment美元)
idSegment美元
要删除的段ID。用法:
ScheduledReports: segmentDeactivation
中定义的Piwik /插件/ SegmentEditor / API排队271
在修改段之前触发。插件可以使用此事件来抛出异常或执行其他操作。
回调函数签名:
函数(idSegment,绑定美元)
idSegment美元
可见性降低的段的ID。用法:
ScheduledReports: segmentUpdated
中定义的Piwik / SettingsPiwik排队103
在cron存档过程中触发,以收集应该为所有网站预处理的片段。在存档数据时,将为每个段启动存档过程。此事件可用于添加要预处理的段。如果你的插件依赖于特定段的数据,这个事件可以用来提供增强的性能。
注意:如果你只想添加一个由用户管理的段,使用SegmentEditor API。
例子
Piwik: addAction(“段。getKnownSegmentsToArchiveAllSites',函数(&$segments) {$segments[] = '国家=jp;城市=东京';});
回调函数签名:
函数(& segmentsToProcess美元)
段定义列表,例如:
数组('browserCode=ff;resolution=800x600', 'country=jp;city=Tokyo')在事件处理程序中向该数组添加段。
用法:
SegmentEditor: getKnownSegmentsToArchiveAllSites
中定义的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
中定义的Piwik /插件/ SEO /标准/聚合器排队59
使用此事件注册新的SEO指标提供者。
回调函数签名:
函数(& $提供者]
& $提供者
包含Piwik\Plugins\SEO\Metric\MetricsProvider实例数组。中定义的Piwik /插件/ SitesManager / API排队748
添加站点后触发。
回调函数签名:
函数($ idSite]
idSite美元
添加的站点ID。用法:
中定义的Piwik /插件/ SitesManager / API排队861
删除站点后触发。插件可以使用此事件删除网站特定的值或设置,例如删除属于特定网站的所有目标。如果你存储任何与网站相关的数据,你应该在这里清理这些信息。
回调函数签名:
函数($ idSite]
idSite美元
需要删除的站点ID。用法:
CustomAlerts: deleteAlertsForSite,CustomDimensions: deleteCustomDimensionDefinitionsForSite,目标::deleteSiteGoals,ScheduledReports: deleteSiteReport,SegmentEditor: onDeleteSite,SitesManager: onSiteDeleted,TagManager: onSiteDeleted,UsersManager: deleteSite
中定义的Piwik /插件/ SitesManager / API排队222
触发时,生成图像链接跟踪代码服务器端。插件可以使用此事件自定义显示给用户的图像跟踪代码。
回调函数签名:
函数(& $ piwikUrl & $ urlParams]
Matomo安装的域和URL路径,例如:“examplepiwik.com/path/to/piwik”
.
数组中使用的查询参数元素的src URL。更多信息请参阅Matomo的图像跟踪文档。
中定义的Piwik /插件/ SitesManager / SitesManager排队149
在检查之前发布,以显示“尚未记录数据”消息。如果您的measurement不应该有访问,您可以使用此事件确保永远不会显示该消息。
回调函数签名:
函数(& shouldPerformEmptySiteCheck美元,美元siteId]
bool &$ shouldperformemptsitecheck设置该值为true执行检查,否则为false。
intsiteId美元
我们要执行检查的站点的ID。
中定义的Piwik /插件/安装/控制器排队400
回调函数签名:
函数(& showMatomoLinks美元)
中定义的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: addSystemSummaryItems,CorePluginsAdmin: addSystemSummaryItems,目标::addSystemSummaryItems,SegmentEditor: addSystemSummaryItems,SitesManager: addSystemSummaryItems,TagManager: addSystemSummaryItems,UsersManager: addSystemSummaryItems
中定义的Piwik /插件/ CoreHome / widget / GetSystemSummary排队One hundred.
触发以筛选系统摘要小部件中显示的系统摘要项。插件也可能对系统摘要项进行不同的排序。例子
公共函数filterSystemSummaryItems(&$systemSummary) {foreach ($systemSummaryItems as $index => $item) {if ($item && $item->getKey() === 'users') {$systemSummaryItems[$index] = null;}}}
回调函数签名:
函数(& systemSummary美元)
中定义的Piwik /设置/插件/ SystemSettings排队106
系统设置更新后触发。例子
Piwik:: addAction (SystemSettings。updated',函数(SystemSettings $settings) {if ($settings->getPluginName() === 'PluginName') {$value = $settings-> somessetting ->getValue();//使用新的设置值做一些事情}});
回调函数签名:
函数(美元)
美元的设置
插件设置对象。中定义的Piwik /插件/ TagManager /模板/标签/ TagsProvider排队91
事件以添加自定义标记。要过滤标签,请看一下TagManager.filterTags事件。例子
公共函数addTags(&$tags) {$tags[] = new MyCustomTag();}
回调函数签名:
函数(& $标签)
中定义的Piwik /插件/ TagManager /模板/触发/ TriggersProvider排队90
事件添加自定义触发器。要过滤触发器,请查看TagManager.filterTriggers事件。例子
公共函数addTriggers(&$triggers) {$triggers[] = new MyCustomTrigger();}
回调函数签名:
函数(& $触发)
中定义的Piwik /插件/ TagManager /模板/变量/ VariablesProvider排队106
事件添加自定义变量。要过滤变量,请查看TagManager.filterVariables事件。例子
公共函数addVariables(&$variables) {$variables[] = new MyCustomVariable();}
回调函数签名:
函数(& $变量)
中定义的Piwik /插件/ TagManager /背景/存储/文件系统排队33
触发,以便插件可以检测到更改的文件,例如将其同步到其他服务器。
回调函数签名:
函数(名称)
中定义的Piwik /插件/ TagManager /背景/存储/文件系统排队44
触发,以便插件可以检测到已删除的文件,例如将其同步到其他服务器。
回调函数签名:
函数(名称)
中定义的Piwik /插件/ TagManager / API排队1146
回调函数签名:
function('idSite' => $idSite, 'idContainer' => $idContainer))
中定义的Piwik /插件/ TagManager / API排队545
回调函数签名:
函数function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idTag' => $idTag))
中定义的Piwik /插件/ TagManager / API排队700
回调函数签名:
function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idTrigger' => $idTrigger))
中定义的Piwik /插件/ TagManager / API排队936
回调函数签名:
function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion, 'idVariable' => $idVariable))
中定义的Piwik /插件/ TagManager / API排队1101
回调函数签名:
function('idSite' => $idSite, 'idContainer' => $idContainer, 'idContainerVersion' => $idContainerVersion))
中定义的Piwik /插件/ TagManager /模板/标签/ TagsProvider排队124
触发过滤/限制标签。例子
公共函数filterTags(&$tags) {foreach ($tags as $index => $tag) {if ($tag->getId() === 'CustomHtml') {} unset($tags[$index]);//删除这个ID的标签
回调函数签名:
函数(& $标签)
中定义的Piwik /插件/ TagManager /模板/触发/ TriggersProvider排队123
事件来筛选/限制触发器。例子
公共函数filterTriggers(&$触发器){foreach($触发器作为$index => $trigger) {if ($trigger->getId() === 'CustomJs') {} unset($触发器[$index]);//删除该ID的触发器
回调函数签名:
函数(& $触发)
中定义的Piwik /插件/ TagManager /模板/变量/ VariablesProvider排队140
事件来筛选/限制变量。例子
公共函数filterVariables(&$variables) {foreach ($variables as $index => $variable) {if ($variable->getId() === 'CustomVariable') {} unset($variables[$index]);//删除这个ID的变量
回调函数签名:
函数(& $变量)
中定义的Piwik /插件/ TagManager /命令/ RegenerateContainers排队30.
回调函数签名:
函数($ onlyPreview]
用法:
TagManager: regenerateReleasedContainers
中定义的Piwik /插件/ CustomVariables /报告/ GetCustomVariables排队68
回调函数签名:
函数(& $)
用法:
ProfessionalServices: getCustomVariablesPromo
中定义的Piwik /插件/反向链接/报告/ GetReferrerType排队124
回调函数签名:
函数(& $)
用法:
ProfessionalServices: getReferrerTypePromo
中定义的Piwik /插件/目标/控制器排队154
回调函数签名:
函数(& str美元,美元目标]
中定义的Piwik /插件/目标/控制器排队163
回调函数签名:
函数(& $ str]
中定义的Piwik /插件/目标/控制器排队169
回调函数签名:
函数(& $ str]
中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队75
回调函数签名:
函数(& $)
用法:
AnonymousPiwikUsageMeasurement: addMatomoClientTracking,CoreAdminHome: addJsGlobalVariables,LanguagesManager: jsGlobalVariables,生活:addJsGlobalVariables,过渡:addJsGlobalVariables
中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队90
回调函数签名:
函数(& $)
用法:
AnonymousPiwikUsageMeasurement: addMatomoClientTracking,CoreAdminHome: addJsGlobalVariables,LanguagesManager: jsGlobalVariables,生活:addJsGlobalVariables,过渡:addJsGlobalVariables
中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队103
回调函数签名:
函数(& $)
用法:
AnonymousPiwikUsageMeasurement: addMatomoClientTracking,CoreAdminHome: addJsGlobalVariables,LanguagesManager: jsGlobalVariables,生活:addJsGlobalVariables,过渡:addJsGlobalVariables
中定义的Piwik /插件/ AnonymousPiwikUsageMeasurement /测试/集成/ AnonymousPiwikUsageMeasurementTest排队120
回调函数签名:
函数(& $)
用法:
AnonymousPiwikUsageMeasurement: addMatomoClientTracking,CoreAdminHome: addJsGlobalVariables,LanguagesManager: jsGlobalVariables,生活:addJsGlobalVariables,过渡:addJsGlobalVariables
中定义的Piwik /插件/旅游/订婚/挑战排队114
触发为“欢迎来到马托摩之旅”增加新的挑战。例子
公共函数addChallenge(&$challenges) {$challenges[] = new MyChallenge();}
回调函数签名:
函数(&挑战美元)
& $挑战
一系列挑战中定义的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,目标::fetchGoalsFromDb,UsersManager: recordAdminUsersInCache
中定义的Piwik /插件/反向链接/列/基地排队305
当检测到引用URL的搜索引擎时触发。插件可以使用此事件来提供自定义搜索引擎检测逻辑。
回调函数签名:
函数(& searchEngineInformation美元$ this - > referrerUrl]
一个包含以下信息的数组:
—**name**:搜索引擎名称。—**keywords**:搜索关键字。这个参数被初始化为Matomo默认搜索引擎检测逻辑的结果。
跟踪请求的引用URL。
中定义的Piwik /插件/反向链接/列/基地排队356
当检测到一个推荐人URL的社交网络时触发。插件可以使用这个事件来提供自定义的社交网络检测逻辑。
回调函数签名:
函数(& socialNetworkName美元$ this - > referrerUrl]
string &$socialNetworkName社交网络名称,如果没有检测到则为false
该参数被初始化为Matomo默认社交网络检测逻辑的结果。
跟踪请求的引用URL。
中定义的Piwik /插件/ QueuedTracking /命令/过程排队92
中定义的Piwik /跟踪器排队134
中定义的Piwik /追踪/ Db排队262
在跟踪器建立到数据库的连接之前触发。此事件可用于更改跟踪器使用的数据库连接设置。
回调函数签名:
函数(& configDb美元)
数组dbinfo美元
引用一个包含数据库连接信息的数组,包括:
—**host**: MySQL数据库的主机名或IP地址。—**用户名**:连接数据库时使用的用户名。—“**password**”:连接数据库时使用的密码。—**dbname**: Matomo MySQL数据库名。—**port**: MySQL数据库使用的端口。- **adapter**: PDO\MYSQL' or MYSQLI' - **type**: MYSQL引擎,例如InnoDB
中定义的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:生成()
.
中定义的Piwik /追踪/ VisitExcluded排队97
在每次跟踪请求时触发。此事件可用于告诉跟踪器不要记录此特定操作或访问。
回调函数签名:
函数(& $排除在外,$ this - >请求)
bool &$excluded是否排除该请求。初始化为假
.事件订阅者应将其设置为真正的
以排除该请求。
\请求美元的请求
包含所有请求信息的请求对象
用法:
TrackingSpamPrevention: isExcludedVisit
中定义的Piwik /追踪/访问/工厂排队38
在一个新的访问跟踪对象被创建。此事件的订阅者可以强制使用从Piwik\Tracker\VisitInterface扩展而来的自定义访问跟踪对象。
回调函数签名:
函数(& $访问)
中定义的Piwik /追踪/ PageUrl排队103
在Piwik\Tracker\ action中设置操作url之前触发,以便插件可以注册参数以排除跟踪url(例如活动参数)。
回调函数签名:
函数(& parametersToExclude美元)
用法:
MarketingCampaignsReporting: getQueryParametersToExclude,TagManager: getQueryParametersToExclude
中定义的Piwik /追踪/请求排队589
在获取我们正在跟踪访问的站点的ID时触发。此事件可用于更改站点ID,以便跟踪不同网站的数据。
回调函数签名:
函数(& $ idSite, $ this - > params)
的值初始化为idsite查询参数。如果订阅者设置了此变量,则它使用的值必须大于0。
数组美元的参数
当前跟踪请求中的整个请求参数数组。
中定义的Piwik /追踪/缓存排队212
在通用跟踪器缓存保存到磁盘。此事件可用于向缓存中添加额外内容。在跟踪过程中使用但计算/查询成本较高的数据应该被缓存以保持跟踪效率。此类数据的一个例子是存储在选项表中的选项。为每个跟踪请求查询数据意味着对每个访问者操作进行不必要的额外数据库查询。使用缓存可以解决这个问题。
例子
公共函数setTrackerCacheGeneral(&$cacheContent) {$cacheContent['MyPlugin. txt]myCacheKey'] = Option::get('MyPlugin_myOption');}
回调函数签名:
函数(& cacheContent美元)
用法:
CoreHome: setTrackerCacheGeneral,CustomDimensions: setTrackerCacheGeneral,CustomVariables: getCacheGeneral,PrivacyManager: setTrackerCacheGeneral,反向链接::setTrackerCacheGeneral,SitesManager: setTrackerCacheGeneral,TrackingSpamPrevention: setTrackerCacheGeneral,UserCountry: setTrackerCacheGeneral
中定义的Piwik /插件/ TrackingSpamPrevention / BlockedIpRanges排队152
当一个IP被禁止跟踪时,此事件被发布。例如,您可以使用它来通知某人该IP已被禁止。
回调函数签名:
函数(ipRange, ip)美元
字符串ipRange美元
要阻止的IP范围
字符串ip美元
导致该范围被阻止的IP
用法:
TrackingSpamPrevention: onBanIp
中定义的Piwik /翻译/翻译排队178
在生成允许在浏览器中使用i18n字符串的JavaScript代码之前触发。插件应该订阅这个事件,以指定哪些翻译应该可用于JavaScript。
事件处理程序应该添加整个翻译键,即包含插件名称的键。
例子
getClientSideTranslationKeys(&$result) {$result[] = "MyPlugin_MyTranslation";}
回调函数签名:
函数(& $结果)
用法:
插件:getClientSideTranslationKeys,注释:getClientSideTranslationKeys,CoreAdminHome: getClientSideTranslationKeys,CoreHome: getClientSideTranslationKeys,CorePluginsAdmin: getClientSideTranslationKeys,CoreVisualizations: getClientSideTranslationKeys,CustomAlerts: getClientSideTranslationKeys,CustomDimensions: getClientSideTranslationKeys,CustomVariables: getClientSideTranslationKeys,DBStats: getClientSideTranslationKeys,仪表板:getClientSideTranslationKeys,DevicesDetection: getClientSideTranslationKeys,诊断:getClientSideTranslationKeys,电子商务:getClientSideTranslationKeys,反馈:getClientSideTranslationKeys,GeoIp2: getClientSideTranslationKeys,目标::getClientSideTranslationKeys,安装::getClientSideTranslationKeys,Intl: getClientSideTranslationKeys,LanguagesManager: getClientSideTranslationKeys,生活:getClientSideTranslationKeys,LogViewer: getClientSideTranslationKeys,登录:getClientSideTranslationKeys,LoginLdap: getClientSideTranslationKeys,市场:getClientSideTranslationKeys,MobileMessaging: getClientSideTranslationKeys,多点:getClientSideTranslationKeys,覆盖:getClientSideTranslationKeys,PagePerformance: getClientSideTranslationKeys,PrivacyManager: getClientSideTranslationKeys,反向链接::getClientSideTranslationKeys,ScheduledReports: getClientSideTranslationKeys,SecurityInfo: getClientSideTranslationKeys,SegmentEditor: getClientSideTranslationKeys,SitesManager: getClientSideTranslationKeys,TagManager: getClientSideTranslationKeys,TasksTimetable: getClientSideTranslationKeys,过渡:getClientSideTranslationKeys,TwoFactorAuth: getClientSideTranslationKeys,UserCountry: getClientSideTranslationKeys,UserCountryMap: getClientSideTranslationKeys,用户标识:getClientSideTranslationKeys,UsersManager: getClientSideTranslationKeys,VisitorGenerator: getClientSideTranslationKeys,Widgetize: getClientSideTranslationKeys
中定义的Piwik /插件/ TwoFactorAuth / TwoFactorAuthentication排队70
回调函数签名:
函数(登录)
中定义的Piwik /插件/ TwoFactorAuth /控制器排队226
回调函数签名:
函数(登录)
中定义的Piwik /插件/ TwoFactorAuth / TwoFactorAuth排队257
回调函数签名:
函数(&$requiresAuth, $module, $action, $parameters)
用法:
TagManager: requiresTwoFactorAuthentication
中定义的Piwik /更新器排队111
安装新组件后触发的事件。
回调函数签名:
函数(名称)
美元的名字
已安装的组件。中定义的Piwik /更新器排队161
卸载组件后触发的事件。
回调函数签名:
函数(名称)
美元的名字
已卸载的组件。中定义的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: addPluginChanges,CustomJsTracker: updateTracker,TagManager: regenerateReleasedContainers
中定义的Piwik / FrontController排队182
当访问权限不足的用户试图查看某些资源时触发。此事件可用于自定义当用户被拒绝访问时发生的错误(例如,显示错误消息,重定向到登录以外的页面,等等)。
回调函数签名:
函数(异常)
美元的例外
被捕获的异常。用法:
登录:noAccess,LoginLdap: noAccess
中定义的Piwik /设置/插件/ UserSettings排队89
更新用户设置后触发。例子
Piwik:: addAction (UserSettings。updated',函数(UserSettings $settings) {if ($settings->getPluginName() === 'PluginName') {$value = $settings-> somessetting ->getValue();//使用新的设置值做一些事情}});
回调函数签名:
函数(美元)
美元的设置
插件设置对象。中定义的Piwik /插件/ UsersManager / API排队762
创建新用户后触发。
回调函数签名:
function($userLogin, $email, Piwik::getCurrentUserLogin()]
字符串userLogin美元
新用户的登录。
字符串美元的电子邮件
新用户的电子邮件。
字符串inviterLogin美元
创建新用户的用户登录
中定义的Piwik /插件/ UsersManager / UsersManager排队175
在核心密码验证器检查密码之前触发。此事件用于启用选项以创建自定义密码验证规则。它可以用来验证密码(长度,使用字符等),并通知检查密码。
例子
Piwik:: addAction (UsersManager。checkPassword',函数($password) {if (strlen($password) < 10){抛出新的异常('密码太短');}});
回调函数签名:
函数(密码)
美元的密码
在明文检查密码。用法:
中定义的Piwik /插件/ UsersManager /模型排队674
删除用户后触发。此事件应用于清除与现在删除的用户相关的任何数据。的指示板例如,Plugin使用此事件删除用户的仪表板。
回调函数签名:
函数(userLogin美元)
userLogins美元
被删除用户的登录句柄。用法:
CoreAdminHome: cleanupUser,CoreVisualizations: deleteUser,CustomAlerts: deleteAlertsForLogin,仪表板:deleteDashboardLayout,LanguagesManager: deleteUserLanguage,ScheduledReports: deleteUserReport,SegmentEditor: onDeleteUser
中定义的Piwik /插件/ UsersManager /控制器排队197
当请求可用日期列表时触发,例如默认加载用户设置>报告日期。
回调函数签名:
函数(& $日期)
中定义的Piwik /插件/登录/控制器排队634
在用户接受邀请后触发
回调函数签名:
Function ($userfunction('login'), $userfunction('email'), $userfunction('invited_by')]]
字符串userLogin美元
被邀请用户的登录。
字符串美元的电子邮件
被邀请用户的电子邮件。
字符串inviterLogin美元
邀请该用户的用户登录
中定义的Piwik /插件/登录/控制器排队704
在用户接受邀请后触发
回调函数签名:
Function ($userfunction('login'), $userfunction('email'), $userfunction('invited_by')]]
字符串userLogin美元
被邀请用户的登录。
字符串美元的电子邮件
被邀请用户的电子邮件。
字符串inviterLogin美元
邀请该用户的用户登录
中定义的Piwik /插件/ UsersManager / API排队797
新用户被邀请后触发。
回调函数签名:
函数(userLogin美元,美元的电子邮件)
字符串userLogin美元
新用户的登录。
字符串美元的电子邮件
新用户的电子邮件。
中定义的Piwik /插件/ UsersManager / API排队1605
生成一个新的用户邀请令牌后触发。
回调函数签名:
函数(userLogin, userfunction美元('邮件']]
userLogin美元
新用户的登录。中定义的Piwik /插件/ UsersManager / API排队1564
新用户被邀请后触发。
回调函数签名:
函数(userLogin, userfunction美元('邮件']]
userLogin美元
新用户的登录。中定义的Piwik /插件/ ScheduledReports /测试/ ScheduledReportsTest排队95
回调函数签名:
函数('userLogin',函数(1,2))
用法:
ScheduledReports: deleteUserReportForSites
中定义的Piwik /插件/ UsersManager / API排队1133
回调函数签名:
函数(userLogin, idSites美元)
用法:
ScheduledReports: deleteUserReportForSites
中定义的Piwik /插件/ UsersManager / API排队956
更新现有用户后触发。密码更改事件通知。
回调函数签名:
函数($userLogin, $passwordHasBeenUpdated, $email, $password)
字符串userLogin美元
用户的登录句柄。
布尔passwordHasBeenUpdated美元
包含密码修改信息的标志。
中定义的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,事件:configureViewDataTable,PagePerformance: configureViewDataTable
中定义的Piwik /插件/ ViewDataTable排队309
触发后ViewDataTable建设。订阅者应该根据正在显示的报表自定义视图。在所有视图配置值被保存的设置或请求参数覆盖后触发此事件。如果需要使用最终配置值,请使用此选项。
定义自己报表的插件可以订阅此事件,以便指定Matomo UI应该如何显示报表。
例子
//事件处理公共函数configureViewDataTableEnd(ViewDataTable $view) {if ($view->requestConfig->apiMethodToRequestDataTable == 'VisitTime. 'getVisitInformationPerServerTime' && $view->requestConfig->flat == 1) {$view->config->show_header_message = '您正在查看这个扁平报告';}}
回调函数签名:
函数(美元)
美元的观点
要配置的实例。中定义的Piwik ViewDataTable /经理排队117
触发以过滤可用的数据表可视化。想要禁用某些可视化的插件应该订阅此事件并从传入数组中删除可视化。
例子
公共函数filterViewDataTable(&$visualizations) {unset($visualizations[HtmlTable::ID]);}
回调函数签名:
函数(& $结果)
用法:
TreemapVisualization: removeTreemapVisualizationIfFlattenIsUsed
中定义的Piwik /插件/可视化排队818
在呈现视图之前立即发布。插件可以使用此事件根据视图的数据或正在查看的报告执行视图的最后一分钟配置。
回调函数签名:
函数(美元)
美元的观点
要配置的实例。用法:
PrivacyManager: onConfigureVisualisation
中定义的Piwik /插件/ WidgetsProvider排队62
触发以添加自定义小部件配置。要填充小部件,请查看Widget.filterWidgets事件。例子
公共函数addWidgetConfigs(&$configs) {$config =新WidgetConfig();配置- > setModule(“PluginName”);配置- > setAction(“renderDashboard”);配置- > setCategoryId(“Dashboard_Dashboard”);配置- > setSubcategoryId(“dashboardId”);$config [] = $config;}
回调函数签名:
函数(& $配置)
用法:
中定义的Piwik /部件/ WidgetsList排队214
触发筛选小部件。例子
公共函数removeWidgetConfigs(Piwik\Widget\WidgetsList $list) {$list->remove($category=' general_访问量');//删除所有该类别的小部件}
回调函数签名:
函数(列表)
美元的列表
WidgetsList的一个实例。您可以通过这种方式更改小部件列表。用法:
市场:filterWidgets,RssWidget: filterWidgets,搜索引擎优化:filterWidgets
中定义的Piwik /插件/ Widgetize /控制器排队78
触发,以检测小部件化的报告是否应该包装在小部件化的HTML中,或者是否只应该打印控制器/动作的呈现输出。集shouldEmbedEmpty美元
来真正的
如果您的小部件本身呈现完整的HTML。例子
公共函数emdiframeempty (&$shouldEmbedEmpty, $controllerName, $actionName) {if ($controllerName == 'Dashboard' && $actionName == 'index') {$shouldEmbedEmpty = true;}}
回调函数签名:
函数(&$shouldEmbedEmpty, $controllerName, $actionName)
定义iframe是空嵌入还是包装在小部件化的html中。
字符串controllerName美元
将要执行的控制器的名称。
字符串actionName美元
控制器中将要执行的动作的名称。
用法: