Piwik \ \插件\维度

ActionDimension

从Matomo 2.5.0开始

定义一个新的操作维度,用于记录跟踪每个操作期间的任何信息。

您可以通过实现以下事件之一来记录任何操作信息:onLookupAction ()而且getActionId ()onNewAction ().通过定义columnName美元而且columnType美元将在数据库(表)中创建一个新列log_link_visit_action),并且您在前面提到的事件中返回的值将保存在此列中。

您可以使用console命令创建一个新维度。/控制台生成:维度

属性

这个抽象类定义了以下属性:

columnName美元

如果指定了$columnType,这将是数据库表中列的名称。

签名

  • 这是一个字符串价值。

columnType美元

如果定义了columnType,我们将在MySQL表中创建一个具有此类型的列。请确保MySQL理解这个类型。一旦您更改了列类型,Matomo(以前是Piwik)平台将通知用户执行更新,这有时会花费很长时间,所以在选择正确的列类型时要小心。

签名

  • 这是一个字符串价值。

美元的类型

定义此维所持有的数据类型。默认情况下,类型是基于自动检测的columnType美元但有时可能需要纠正这个值。例如,根据这种类型,维度的格式将有所不同。

签名

  • 这是一个字符串价值。

namePlural美元

名称复数的翻译键

签名

  • 这是一个字符串价值。

segmentName美元

通过定义段名,用户将能够通过该列筛选他们的访问者。如果不想为这个维度定义段,只需将名称保留为空。

签名

  • 未指定类型。

suggestedValuesCallback美元

设置当用户调用段的建议值时执行的回调。

签名

  • 这是一个可调用的价值。

acceptValues美元

在这里,你应该解释哪些值对你的细分市场是被接受的/有用的,例如:“1,2,3,等等”或“comcast.net, proxad.net,等等”。如果值需要任何特殊编码,也应该提到这一点。例如“任何包含协议的URL。URL必须是URL编码。”

签名

  • 这是一个字符串价值。

sqlSegment美元

定义该段属于MySQL数据库中的哪一列(如果已配置)。默认为这一美元。dbTableName。“。”。this.columnName美元但你可以自定义它,如小时(log_visit.visit_last_action_time)

签名

  • 未指定类型。

sqlFilter美元

在指定段时很有趣。有时,您希望用户设置的段值与实际存储的段值不同。例如,如果你想允许通过任何URL进行过滤,那么你可能必须将这个URL解析为一个动作id。或者国家名称可能必须映射到2个字母的国家代码。您可以通过指定一个可调用对象,例如阵列(“名称”、“methodName”)或者通过传递一个闭包。

将有四个值传递给给定的闭包或可调用对象:字符串valueToMatch美元字符串部分美元(见setSegment ()),字符串matchType美元(例如SegmentExpression::MATCH_EQUAL或该类的任何其他匹配常量)和segmentName美元

如果闭包返回NULL,则Matomo假定段子字符串不匹配任何访问者。

签名

  • 它可以是以下类型之一:

sqlFilterValue美元

类似于sqlFilter美元您可以将给定的段值映射到另一个值。例如,您可以将“new”映射为0,将“returning”映射为1,将任何其他值映射为“2”。您可以定义一个可调用对象或一个闭包。将只有一个值传递给闭包或可调用对象,该值包含用户为这个段设置的值。

签名

  • 它可以是以下类型之一:
    • 字符串
    • 数组

allowAnonymous美元

定义匿名用户是否可以使用该维度(以及基于该维度的段)。

签名

  • 这是一个保龄球价值。

dbTableName美元

此维引用的数据库表的名称

签名

  • 这是一个字符串价值。

metricId美元

缺省情况下,metricId是根据维度id自动生成的。这有时可能不那么可读,而且很长。如果你想要更有表现力的指标名称,比如nb_visits相比nb_corehomevisitid,你可以设置一个metricId访问

签名

  • 这是一个字符串价值。

方法

抽象类定义了以下方法:

getDbColumnJoin ()

当一个列引用另一个列时实现

签名

  • 返回:加入|- - - - - -

getDbDiscriminator ()

签名

getEnumColumnValues ()

当列表示枚举时实现。

签名

  • 它返回一个数组价值。

getMetricId ()

获取metricId,它用于基于此维度生成指标名称。

签名

  • 它返回一个字符串价值。

安装()

安装操作维度(以防尚未安装)。的基础上已经实现了安装columnName美元而且columnType美元.如果您希望执行除向数据库添加列之外的其他操作(例如添加索引),则可以覆盖此方法。我们建议调用这个父方法来获得所需的最小操作,然后添加进一步的自定义操作,因为这样可以确保正确安装列。我们还建议仅在确实需要时才更改默认安装行为。供您参考:这里我们不直接执行这些alter table语句,因为我们将它们与其他几个alter table语句组合在一起,在一个步骤中执行这些更改,从而加快安装速度。列将被添加到log_link_visit_actionMySQL表。

例子:

公共函数install() {$changes = parent::install();$changes['log_link_visit_action'][] = "ADD INDEX index_idsite_servertime (idsite, server_time)";返回$变化;}

签名

  • 返回:数组-一个包含表名作为键的数组和一个应该在给定表上执行的MySQL alter table语句数组。例子:
array('log_link_visit_action' => array("ADD COLUMN ' $this->columnName ' $this->columnType", "ADD INDEX…"));

卸载()

如果a,则卸载维度columnName美元,设置“columnType”。以防您在期间执行任何自定义操作安装()—例如添加索引—您应该确保通过重写此方法来撤销这些操作。请确保调用这个父方法,以确保将完成列的卸载。

签名

  • 它不返回任何东西,也不返回混合结果。
  • 它会抛出以下异常之一:

getCategoryId ()

返回类别的ID(通常是一个转换键)。

签名

  • 它返回一个字符串价值。

getName ()

返回此维度的翻译名称,通常为单数。

签名

  • 它返回一个字符串价值。

getNamePlural ()

返回此维度的复数形式的翻译名称。

签名

  • 它返回一个字符串价值。

isAnonymousAllowed ()

定义是否允许匿名用户查看此维度

签名

  • 它返回一个保龄球价值。

setSqlSegment ()

设置(覆盖)SQL段

签名

  • 它接受以下参数:

    • 美元市场
  • 它不返回任何东西,也不返回混合结果。

setType ()

设置(覆盖维度类型)

签名

  • 它接受以下参数:

    • 美元的类型
  • 它不返回任何东西,也不返回混合结果。

groupValue ()

维度应该使用此方法对值进行分组。否则,同一行可能出现多次。

签名

  • 它接受以下参数:

    • 美元的价值混合) - - -

    • idSite美元int) - - -

  • 它返回一个混合价值。

formatValue ()

格式化维度值。默认情况下,维度基于设置的维度类型进行格式化。

签名

  • 它接受以下参数:

    • 美元的价值混合) - - -

    • idSite美元int) - - -

    • 美元格式化程序格式化程序) - - -

  • 它返回一个混合价值。

configureSegments ()

重写此方法以配置段。为此,只需创建一个实例类,配置它并调用addSegment()方法。您可以为这个维度添加一个或多个段。例子:

$segment = new segment ();段- > setSegment(“exitPageUrl”);段- > setName(“Actions_ColumnExitPageURL”);段- > setCategory(“General_Visit”);segmentsList - > addSegment(段);

签名

  • 它接受以下参数:

  • 它不返回任何东西,也不返回混合结果。

  • 它会抛出以下异常之一:

configureMetrics ()

配置此维度的度量。

对于某些维度类型,将自动添加一些指标。

签名

  • 它接受以下参数:

  • 它不返回任何东西,也不返回混合结果。

getSegmentName ()

返回此维度定义的段的名称

签名

  • 它返回一个字符串价值。

getSqlSegment ()

返回此维度的sql段表达式。

签名

  • 它返回一个字符串价值。

getDbTableName ()

返回此维所属的数据库表的名称。

签名

  • 它返回一个字符串价值。

getId ()

返回此维度的唯一字符串ID。ID是使用维度的命名空间类名构建的,但经过了修改,使其更便于人类阅读。

签名

  • 返回:字符串,例如,“反向链接。关键字”
  • 它会抛出以下异常之一:
    • 异常-如果无法确定该实例的插件名和简单类名。只有维位于错误的目录中才会发生这种情况。

getAllDimensions ()

获取所有可用访问、操作和转换维度的实例。

签名

getDimensions ()

签名

  • 它接受以下参数:

    • 美元的插件插件) - - -
  • 它不返回任何东西,也不返回混合结果。

getRemovedDimensions ()

返回随着时间的推移从核心中删除的维类名称的列表

签名

  • 它返回一个string []价值。

getModule ()

返回包含此维度的插件的名称。

签名

  • 它返回一个字符串价值。
  • 它会抛出以下异常之一:
    • 异常-如果Dimension不在Plugin模块中。

方法()

返回维度的类型,该类型定义了该维度存储的值的类型。

签名

  • 它返回一个字符串价值。

onLookupAction ()

如果希望为维度保存的值是页面标题或页面url之类的东西,通常不希望为了在数据库中节省字节而反复保存原始值。相反,您希望在log_action表中保存每个值一次,并通过log_link_visit_action表中的ID引用该值。您可以通过在“getActionId()”中返回一个操作id并在这里返回一个值来实现这一点。如果一个值应该被忽略或不被持久化,则返回布尔值false。请注意,如果你在这里返回一个值,并且你实现了事件“onNewAction”,这个值可能会被其他事件覆盖。所以确保只实现其中的一个。

签名

  • 它接受以下参数:

    • 美元的请求Piwik \追踪\请求) - - -

    • 美元的行动Piwik \追踪\行动) - - -

  • 返回:|混合- - - - - -

getActionId ()

操作id。查找操作返回的值将与log_action表中的这个id相关联。

签名

  • 它返回一个int价值。
  • 它会抛出以下异常之一:

onNewAction ()

在将新操作记录到数据库之前触发此事件log_link_visit_action表格它会覆盖任何查找操作,因此实现两个方法通常没有意义,但有时会实现。您可以将任何值赋给该列,或者在不想保存任何值的情况下返回boolean false。

签名

  • 它接受以下参数:

    • 美元的请求Piwik \追踪\请求) - - -

    • 美元的游客Piwik \追踪\访客) - - -

    • 美元的行动Piwik \追踪\行动) - - -

  • 返回:混合|- - - - - -

Baidu