Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Giehl <stefan@piwik.org>2017-09-04 07:49:32 +0300
committerMatthieu Aubry <mattab@users.noreply.github.com>2017-09-04 07:49:32 +0300
commit660df51720386077f0a1433d86bcb96ef002de35 (patch)
treeb953fcb22811d3e76f752713eee1c619b6d82098 /plugins/Provider
parentb40a997defdea7ba6984b268bb7c791d089cfd3f (diff)
Customizeable / Extendable Visitor Profile & Visitor Log (#11579)
* move setting visitor details into own classes instead of using an event * move manipulating actions to VisitorDetails classes * move some more parts to plugins * update test files as order of columns changed * implement new VisitorDetails method to provide actions * move rendering actions to visitordetail classes * render visitor properties in new classes * makes it possible to attach icons to visitor log * moves rendering of action tooltip into new visitordetails method * adds event for extending custom action dimension fields * small improvements * fetch log_link_visit_action.idpageview for actions * improve variable name * started to improve/change visitor profile * show devices summary in visitor profile * also remove empty xml tags for api tests * hide actions in visitor profile by default * move all icons to the middle of visitor log * small change * move rendering referrer information to referrers plugin * move provider logic to provider plugin * show content interactions in visitor log * improve look of content interactions/impressions in visitor log / profile * hide idpageview from tests * update changelog * move rendering events to Events plugin * do not hide duplicate page views in visitor log, but show them with a refresh icon instead * show top visited pages in visitor profile * always show visitor profile link in visitor log Still hidden in a widget by default, as it might overlay some other content * Show info about not shown actions truncated due to config setting * use bulk queries to fetch actions instead of fetching them for each visit * small adjustments * improve some loops to improve memory usage * move gathering visitor profile informations to VisitorDetails classes * update screenshots * update test files * move rendering of visitor profile summary to visitor details classes * improve templates * Makes VisitorDetailsAbstract class api and improves comments * show visit details in visitor profile * improve css * reverse enumeration of visits in visitor profile * improve css * Show visit id in IP tooltip * Small CSS improvements * further adjustments * sort devices by count * adds UI tests for visitor log and profile * Show bandwidth in visitor profile test * show actions by default and add button to toggle all together * CSS cleanup * remove border around refresh icon * add tooltip for refresh icon in profile * move first/last visit before top visited pages * Improve text shown for unique pageviews * link urls in top visited pages * improve sorting of device list * improve tests * Improve device overview in visitor profile * only render top pages if at least one page was visited more than once * make visitor id non bold * hide visitor type icon in profile, and show latest visits icons in overview * fix search engine icon in visitor details * small improvements * only render view if required * show visit icons only on hover in profile * remove from again * test improves * show text besides icon in profile header * improve tests * Removes unused CSS and JS * Reformats CSS * Removes invisible paper clip * Removes unused profile images from Live plugin * raise test timeouts * Improve UI tests splitting for travis * show device type in profile header if no resolution is available * prevent text overlapping * no retries * fix test * change summary order * fix position of export icon * fixes tooltip text * improve pages overview * visitor details order * action tooltip order * show only ecommerce icon if no goals where converted * show custom variables summary in profile * show user id in same size as headline * link referer urls for first/last visit in profile * make profile xml compatible * try to improve ui test * increase bottom marign * increase version number * small adjustments * CSS Rewrite for visitor profile * center action icons in visitor log and profile * improve widgetized visitor profile * small layout fix * always populate raw referrer url for visitor details * update expected test files * Refactor profile summaries into additional classes * update screenshots * submodule update * update piwik-icons submodule (#11904) * update piwik-icons submodule * fix some system tests * update screenshots * make device list xml compatible * improve translation * improve icon position * improves spacings * update test files * small css improvement * update screenshots
Diffstat (limited to 'plugins/Provider')
-rw-r--r--plugins/Provider/Provider.php19
-rw-r--r--plugins/Provider/Visitor.php41
-rw-r--r--plugins/Provider/VisitorDetails.php57
-rw-r--r--plugins/Provider/templates/_visitorDetails.twig9
4 files changed, 66 insertions, 60 deletions
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 4aed41100c..c275e09fc2 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -17,16 +17,6 @@ use Piwik\Piwik;
class Provider extends \Piwik\Plugin
{
- /**
- * @see Piwik\Plugin::registerEvents
- */
- public function registerEvents()
- {
- return array(
- 'Live.getAllVisitorDetails' => 'extendVisitorDetails'
- );
- }
-
public function install()
{
// add column hostname / hostname ext in the visit table
@@ -42,15 +32,6 @@ class Provider extends \Piwik\Plugin
}
}
- public function extendVisitorDetails(&$visitor, $details)
- {
- $instance = new Visitor($details);
-
- $visitor['provider'] = $instance->getProvider();
- $visitor['providerName'] = $instance->getProviderName();
- $visitor['providerUrl'] = $instance->getProviderUrl();
- }
-
public function uninstall()
{
// add column hostname / hostname ext in the visit table
diff --git a/plugins/Provider/Visitor.php b/plugins/Provider/Visitor.php
deleted file mode 100644
index c11f1e3a9b..0000000000
--- a/plugins/Provider/Visitor.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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\Provider;
-
-use Piwik\Piwik;
-
-require_once PIWIK_INCLUDE_PATH . '/plugins/Provider/functions.php';
-
-class Visitor
-{
- private $details = array();
-
- public function __construct($details)
- {
- $this->details = $details;
- }
-
- public function getProvider()
- {
- if (isset($this->details['location_provider'])) {
- return $this->details['location_provider'];
- }
- return Piwik::translate('General_Unknown');
- }
-
- public function getProviderName()
- {
- return getPrettyProviderName($this->getProvider());
- }
-
- public function getProviderUrl()
- {
- return getHostnameUrl(@$this->details['location_provider']);
- }
-} \ No newline at end of file
diff --git a/plugins/Provider/VisitorDetails.php b/plugins/Provider/VisitorDetails.php
new file mode 100644
index 0000000000..d0f8f146b7
--- /dev/null
+++ b/plugins/Provider/VisitorDetails.php
@@ -0,0 +1,57 @@
+<?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\Provider;
+
+use Piwik\Piwik;
+use Piwik\Plugins\Live\VisitorDetailsAbstract;
+use Piwik\View;
+
+/**
+ * @see plugins/Provider/functions.php
+ */
+require_once PIWIK_INCLUDE_PATH . '/plugins/Provider/functions.php';
+
+class VisitorDetails extends VisitorDetailsAbstract
+{
+ public function extendVisitorDetails(&$visitor)
+ {
+ $visitor['provider'] = $this->details['location_provider'];
+ $visitor['providerName'] = $this->getProviderName();
+ $visitor['providerUrl'] = $this->getProviderUrl();
+ }
+
+ public function renderVisitorDetails($visitorDetails)
+ {
+ if (empty($visitorDetails['provider'])) {
+ return [];
+ }
+
+ $view = new View('@Provider/_visitorDetails.twig');
+ $view->visitInfo = $visitorDetails;
+ return [[ 20, $view->render() ]];
+ }
+
+ protected function getProvider()
+ {
+ if (isset($this->details['location_provider'])) {
+ return $this->details['location_provider'];
+ }
+ return Piwik::translate('General_Unknown');
+ }
+
+ protected function getProviderName()
+ {
+ return getPrettyProviderName($this->getProvider());
+ }
+
+ protected function getProviderUrl()
+ {
+ return getHostnameUrl(@$this->details['location_provider']);
+ }
+} \ No newline at end of file
diff --git a/plugins/Provider/templates/_visitorDetails.twig b/plugins/Provider/templates/_visitorDetails.twig
new file mode 100644
index 0000000000..0cfdbe6b4b
--- /dev/null
+++ b/plugins/Provider/templates/_visitorDetails.twig
@@ -0,0 +1,9 @@
+<div class="visitorProvider">
+ <br />
+ {{ 'Provider_ColumnProvider'|translate }}:
+ {% if visitInfo.getColumn('providerUrl') %}
+ <a href="{{ visitInfo.getColumn('providerUrl') }}" rel="noreferrer" target="_blank" class="visitorLogTooltip" title="{{ visitInfo.getColumn('providerName') }} {{ visitInfo.getColumn('providerUrl') }}" style="text-decoration:underline;">
+ {%- endif %}
+ {{ visitInfo.getColumn('providerName') }}
+ {%- if visitInfo.getColumn('providerUrl') %}</a>{% endif %}
+</div> \ No newline at end of file