-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathShortcodeTracker.php
More file actions
106 lines (94 loc) · 3.22 KB
/
ShortcodeTracker.php
File metadata and controls
106 lines (94 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\ShortcodeTracker;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\ShortcodeTracker\Model\Model;
use Piwik\Plugins\ShortcodeTracker\Tracker\RedirectTracker;
/**
* @codeCoverageIgnore
*/
class ShortcodeTracker extends \Piwik\Plugin
{
const DEFAULT_SHORTENER_URL = 'http://changeme.com/';
const SHORTENER_URL_SETTING = 'shortener_url';
const SHORTENER_EXTERNAL_SHORTCODES_IDSITE = 'shortener_external_shortcodes_idsite';
const TRACK_REDIRECT_VISIT_EVENT = 'ShortcodeTracker.trackRedirectAction';
const REDIRECT_EVENT_CATEGORY = 'shordcode';
const REDIRECT_EVENT_NAME = 'redirect';
public function install()
{
$model = new Model();
$model->install();
}
/**
* @return array
*/
public function registerEvents()
{
return array(
'API.DocumentationGenerator.@hideForAll' => 'hideForAll',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
self::TRACK_REDIRECT_VISIT_EVENT => 'trackRedirectAction',
'ViewDataTable.configure' => 'dataTableConfigure',
);
}
/**
* @param bool $hide
*/
public function hideForAll(&$hide)
{
$hide = true;
}
/**
* @param array $jsFiles
*/
public function getJsFiles(&$jsFiles)
{
$jsFiles[] = "plugins/ShortcodeTracker/javascripts/rowaction.js";
$jsFiles[] = "plugins/ShortcodeTracker/javascripts/shortcodeGenerating.js";
}
/**
* @param array $translationKeys
*/
public function getClientSideTranslationKeys(&$translationKeys)
{
$translationKeys[] = 'ShortcodeTracker_generated_shortcode_is';
$translationKeys[] = 'ShortcodeTracker_rowaction_tooltip_title';
$translationKeys[] = 'ShortcodeTracker_rowaction_tooltip';
}
/**
* @param array $stylesheets
*/
public function getStylesheetFiles(&$stylesheets)
{
$stylesheets[] = "plugins/ShortcodeTracker/stylesheets/styles.less";
}
/**
* @param array $shortcode
*/
public function trackRedirectAction($shortcode)
{
$tracker = new RedirectTracker();
$tracker->recordRedirectAction($shortcode);
}
public function dataTableConfigure(ViewDataTable $view)
{
if (
($view->requestConfig->apiMethodToRequestDataTable === 'ShortcodeTracker.getShortcodeUsageReport')
|| $view->requestConfig->apiMethodToRequestDataTable === 'ShortcodeTracker.getExternalShortcodeUsageReport'
|| $view->requestConfig->apiMethodToRequestDataTable === 'ShortcodeTracker.getShortenedExternalPagesReport'
|| $view->requestConfig->apiMethodToRequestDataTable === 'ShortcodeTracker.getShortenedPagesReport'
) {
$view->config->show_insights = false;
$view->config->disable_row_evolution = true;
$view->config->show_all_views_icons = false;
}
}
}