1
0
قرینه از https://github.com/matomo-org/matomo.git synced 2025-08-21 22:47:43 +00:00
Files
matomo/plugins/Goals/Archiver.php
Michal Kleiner 9a3ef94df6 [Coding Style] Enable rule PSR12.Files.FileHeader + unify file headers (#22132)
* [Coding Style] Enable rule PSR12.Files.FileHeader

* Apply CS

* Replace Piwik with Matomo in file headers

* Unify file headers (position, no. of lines, https links)

* Rebuild dist files

* Apply CS

* Fix system test that relies on line numbers in a file that had the file header updated

---------

Co-authored-by: Stefan Giehl <stefan@matomo.org>
2024-04-20 20:50:47 +02:00

119 خطوط
3.5 KiB
PHP

<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Goals;
use Piwik\Plugins\VisitFrequency\API as VisitFrequencyAPI;
class Archiver extends \Piwik\Plugin\Archiver
{
public const VISITS_UNTIL_RECORD_NAME = 'visits_until_conv';
public const DAYS_UNTIL_CONV_RECORD_NAME = 'days_until_conv';
public const ITEMS_SKU_RECORD_NAME = 'Goals_ItemsSku';
public const ITEMS_NAME_RECORD_NAME = 'Goals_ItemsName';
public const ITEMS_CATEGORY_RECORD_NAME = 'Goals_ItemsCategory';
public const SKU_FIELD = 'idaction_sku';
public const NAME_FIELD = 'idaction_name';
public const CATEGORY_FIELD = 'idaction_category';
public const CATEGORY2_FIELD = 'idaction_category2';
public const CATEGORY3_FIELD = 'idaction_category3';
public const CATEGORY4_FIELD = 'idaction_category4';
public const CATEGORY5_FIELD = 'idaction_category5';
public const NO_LABEL = ':';
public const LOG_CONVERSION_TABLE = 'log_conversion';
public const VISITS_COUNT_FIELD = 'visitor_count_visits';
public const SECONDS_SINCE_FIRST_VISIT_FIELD = 'visitor_seconds_since_first';
public function getDependentSegmentsToArchive(): array
{
$hasConversions = $this->getProcessor()->getNumberOfVisitsConverted() > 0;
if (!$hasConversions) {
return [];
}
return [
VisitFrequencyAPI::NEW_VISITOR_SEGMENT,
VisitFrequencyAPI::RETURNING_VISITOR_SEGMENT,
];
}
/**
* This array stores the ranges to use when displaying the 'visits to conversion' report
*/
public static $visitCountRanges = [
[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5],
[6, 6],
[7, 7],
[8, 8],
[9, 14],
[15, 25],
[26, 50],
[51, 100],
[100],
];
/**
* This array stores the ranges to use when displaying the 'days to conversion' report
*/
public static $daysToConvRanges = [
[0, 0],
[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5],
[6, 6],
[7, 7],
[8, 14],
[15, 30],
[31, 60],
[61, 120],
[121, 364],
[364],
];
protected $dimensionRecord = [
self::SKU_FIELD => self::ITEMS_SKU_RECORD_NAME,
self::NAME_FIELD => self::ITEMS_NAME_RECORD_NAME,
self::CATEGORY_FIELD => self::ITEMS_CATEGORY_RECORD_NAME
];
protected $actionMapping = [
self::SKU_FIELD => 'idaction_product_sku',
self::NAME_FIELD => 'idaction_product_name',
self::CATEGORY_FIELD => 'idaction_product_cat',
self::CATEGORY2_FIELD => 'idaction_product_cat2',
self::CATEGORY3_FIELD => 'idaction_product_cat3',
self::CATEGORY4_FIELD => 'idaction_product_cat4',
self::CATEGORY5_FIELD => 'idaction_product_cat5',
];
/**
* @param string $recordName 'nb_conversions'
* @param int|bool $idGoal idGoal to return the metrics for, or false to return overall
* @return string Archive record name
*/
public static function getRecordName($recordName, $idGoal = false)
{
$idGoalStr = '';
if ($idGoal !== false) {
$idGoalStr = $idGoal . "_";
}
return 'Goal_' . $idGoalStr . $recordName;
}
public static function getItemRecordNameAbandonedCart($recordName)
{
return $recordName . '_Cart';
}
}