update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -1,42 +1,45 @@
|
|||
{% set previousAction = false %}
|
||||
{% for action in actionDetails %}
|
||||
{% set customVariablesTooltip %}
|
||||
{% if action.customVariables is defined %}
|
||||
{{ 'CustomVariables_CustomVariables'|translate }}
|
||||
{{ 'CustomVariables_CustomVariables'|translate }}:
|
||||
{% for id,customVariable in action.customVariables %}
|
||||
{% set name = 'customVariablePageName' ~ id %}
|
||||
{% set value = 'customVariablePageValue' ~ id %}
|
||||
- {{ customVariable[name]|raw }} {% if customVariable[value]|length > 0 %} = {{ customVariable[value]|raw }}{% endif %}
|
||||
|
||||
{# line break above is important #}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endset %}
|
||||
{% if not clientSideParameters.filterEcommerce or action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %}
|
||||
<li class="{% if action.goalName is defined %}goal{% else %}action{% endif %}"
|
||||
title="{{ action.serverTimePretty }}{% if action.url is defined and action.url|trim|length %}
|
||||
|
||||
<li class="{% if action.goalName is defined %}goal{% else %}action{% endif %}"
|
||||
title="{{ action.serverTimePretty }}{% if action.url is defined and action.url|trim|length %}
|
||||
|
||||
{{ action.url }}{% endif %}{% if customVariablesTooltip|trim|length %}
|
||||
|
||||
{{ customVariablesTooltip|trim }}{% endif -%}
|
||||
{%- if action.generationTime is defined %}
|
||||
{%- if action.generationTime is defined %}
|
||||
|
||||
{{ 'General_ColumnGenerationTime'|translate }}: {{ action.generationTime|raw }}{% endif %}
|
||||
{%- if action.timeSpentPretty is defined %}
|
||||
{%- if action.timeSpentPretty is defined %}
|
||||
|
||||
{{ 'General_TimeOnPage'|translate }}: {{ action.timeSpentPretty|raw }}{% endif -%}">
|
||||
<div>
|
||||
{% if action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %}
|
||||
{# Ecommerce Abandoned Cart / Ecommerce Order #}
|
||||
<img src="{{ action.icon }}"/>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
<strong>{{ 'Goals_EcommerceOrder'|translate }}</strong>
|
||||
<span style='color:#666;'>({{ action.orderId }})</span>
|
||||
{% else %}
|
||||
<strong>{{'Goals_AbandonedCart'|translate}}</strong>
|
||||
<div>
|
||||
{% if action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %}
|
||||
{# Ecommerce Abandoned Cart / Ecommerce Order #}
|
||||
<img src="{{ action.icon }}"/>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
<strong>{{ 'Goals_EcommerceOrder'|translate }}</strong>
|
||||
<span style='color:#666;'>({{ action.orderId }})</span>
|
||||
{% else %}
|
||||
<strong>{{'Goals_AbandonedCart'|translate}}</strong>
|
||||
|
||||
{# TODO: would be nice to have the icons Orders / Cart in the ecommerce log footer #}
|
||||
{% endif %}
|
||||
<p>
|
||||
<span {% if not isWidget %}style='margin-left:20px;'{% endif %}>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
{# TODO: would be nice to have the icons Orders / Cart in the ecommerce log footer #}
|
||||
{% endif %}
|
||||
<p>
|
||||
<span {% if not isWidget %}style='margin-left:20px;'{% endif %}>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
{# spacing is important for tooltip to look nice #}
|
||||
{% set ecommerceOrderTooltip %}{{ 'General_ColumnRevenue'|translate }}: {{ action.revenue|money(clientSideParameters.idSite)|raw }}
|
||||
{% if action.revenueSubTotal is not empty %} - {{ 'General_Subtotal'|translate }}: {{ action.revenueSubTotal|money(clientSideParameters.idSite)|raw }}{% endif %}
|
||||
|
|
@ -47,75 +50,78 @@
|
|||
|
||||
{% if action.revenueDiscount is not empty %} - {{ 'General_Discount'|translate }}: {{ action.revenueDiscount|money(clientSideParameters.idSite)|raw }}{% endif %}
|
||||
{% endset %}
|
||||
<abbr title="{{ ecommerceOrderTooltip }}">{{ 'General_ColumnRevenue'|translate }}:
|
||||
{% else %}
|
||||
{% set revenueLeft %}{{ 'General_ColumnRevenue'|translate }}{% endset %}
|
||||
{{ 'Goals_LeftInCart'|translate(revenueLeft) }}:
|
||||
{% endif %}
|
||||
<strong>{{ action.revenue|money(clientSideParameters.idSite)|raw }}</strong>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
</abbr>
|
||||
{% endif %}, {{ 'General_Quantity'|translate }}: {{ action.items }}
|
||||
|
||||
{# Ecommerce items in Cart/Order #}
|
||||
{% if action.itemDetails is not empty %}
|
||||
<ul style='list-style:square;margin-left:{% if isWidget %}15{% else %}50{% endif %}px;'>
|
||||
{% for product in action.itemDetails %}
|
||||
<li>
|
||||
{{ product.itemSKU }}{% if product.itemName is not empty %}: {{ product.itemName }}{% endif %}
|
||||
{% if product.itemCategory is not empty %} ({{ product.itemCategory }}){% endif %}
|
||||
,
|
||||
{{ 'General_Quantity'|translate }}: {{ product.quantity }},
|
||||
{{ 'General_Price'|translate }}: {{ product.price|money(clientSideParameters.idSite)|raw }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</span>
|
||||
</p>
|
||||
{% elseif action.goalName is not defined%}
|
||||
{# Page view / Download / Outlink / Event #}
|
||||
{% if action.pageTitle|default(false) is not empty %}
|
||||
<span class="truncated-text-line">{{ action.pageTitle }}</span>
|
||||
<abbr title="{{ ecommerceOrderTooltip }}">{{ 'General_ColumnRevenue'|translate }}:
|
||||
{% else %}
|
||||
{% set revenueLeft %}{{ 'General_ColumnRevenue'|translate }}{% endset %}
|
||||
{{ 'Goals_LeftInCart'|translate(revenueLeft) }}:
|
||||
{% endif %}
|
||||
{% if action.siteSearchKeyword is defined %}
|
||||
{% if action.type == 'search' %}
|
||||
<img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}' class="action-list-action-icon">
|
||||
{% endif %}
|
||||
<span class="truncated-text-line">{{ action.siteSearchKeyword }}</span>
|
||||
{% endif %}
|
||||
{% if action.eventCategory|default(false) is not empty %}
|
||||
<img src='{{ action.icon }}' title='{{ 'Events_Event'|translate }}' class="action-list-action-icon">
|
||||
<span class="truncated-text-line">{{ action.eventCategory }} - {{ action.eventAction }} {% if action.eventName is defined %}- {{ action.eventName }}{% endif %} {% if action.eventValue is defined %}- {{ action.eventValue }}{% endif %}</span>
|
||||
{% endif %}
|
||||
{% if action.url is not empty %}
|
||||
{% if action.type == 'action' and action.pageTitle|default(false) is not empty %}<p>{% endif %}
|
||||
{% if action.type == 'download' or action.type == 'outlink' %}
|
||||
<img src='{{ action.icon }}' class="action-list-action-icon">
|
||||
{% endif %}
|
||||
<a href="{{ action.url }}" target="_blank" class="{% if action.eventCategory|default(false) is empty %}action-list-url{# don't put URL on new line for events #}{% endif %} truncated-text-line"
|
||||
{% if overrideLinkStyle is not defined or overrideLinkStyle %}style="{% if action.type=='action' and action.pageTitle|default(false) is not empty %}margin-left: 9px;{% endif %}text-decoration:underline;"{% endif %}>
|
||||
{% if action.eventCategory|default(false) is not empty %}
|
||||
(url)
|
||||
{% else %}
|
||||
{{ action.url }}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% if action.type == 'action' and action.pageTitle|default(false) is not empty %}</p>{% endif %}
|
||||
{% elseif action.type != 'search' and action.type != 'event' %}
|
||||
<p>
|
||||
<span style="margin-left: 9px;">{{ clientSideParameters.pageUrlNotDefined }}</span>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{# Goal conversion #}
|
||||
<img src="{{ action.icon }}" />
|
||||
<strong>{{ action.goalName }}</strong>
|
||||
{% if action.revenue > 0 %}, {{ 'General_ColumnRevenue'|translate }}:
|
||||
<strong>{{ action.revenue|money(clientSideParameters.idSite)|raw }}</strong>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
</abbr>
|
||||
{% endif %}, {{ 'General_Quantity'|translate }}: {{ action.items }}
|
||||
|
||||
{# Ecommerce items in Cart/Order #}
|
||||
{% if action.itemDetails is not empty %}
|
||||
<ul style='list-style:square;margin-left:{% if isWidget %}15{% else %}50{% endif %}px;'>
|
||||
{% for product in action.itemDetails %}
|
||||
<li>
|
||||
{{ product.itemSKU }}{% if product.itemName is not empty %}: {{ product.itemName }}{% endif %}
|
||||
{% if product.itemCategory is not empty %} ({{ product.itemCategory }}){% endif %}
|
||||
,
|
||||
{{ 'General_Quantity'|translate }}: {{ product.quantity }},
|
||||
{{ 'General_Price'|translate }}: {{ product.price|money(clientSideParameters.idSite)|raw }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</span>
|
||||
</p>
|
||||
{% elseif action.goalName is not defined%}
|
||||
{# Page view / Download / Outlink / Event #}
|
||||
{% if action.pageTitle|default(false) is not empty %}
|
||||
<span class="truncated-text-line">{{ action.pageTitle|rawSafeDecoded }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if action.siteSearchKeyword is defined %}
|
||||
{% if action.type == 'search' %}
|
||||
<img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}' class="action-list-action-icon search">
|
||||
{% endif %}
|
||||
<span class="truncated-text-line">{{ action.siteSearchKeyword }}</span>
|
||||
{% endif %}
|
||||
{% if action.eventCategory|default(false) is not empty %}
|
||||
<img src='{{ action.icon }}' title='{{ 'Events_Event'|translate }}' class="action-list-action-icon event">
|
||||
<span class="truncated-text-line event">{{ action.eventCategory|rawSafeDecoded }} - {{ action.eventAction|rawSafeDecoded }} {% if action.eventName is defined %}- {{ action.eventName|rawSafeDecoded }}{% endif %} {% if action.eventValue is defined %}[{{ action.eventValue }}]{% endif %}</span>
|
||||
{% endif %}
|
||||
{% if action.url is not empty %}
|
||||
{% if action.type == 'action' and action.pageTitle|default(false) is not empty %}<p>{% endif %}
|
||||
{% if action.type == 'download' or action.type == 'outlink' %}
|
||||
<img src='{{ action.icon }}' class="action-list-action-icon {{ action.type }}">
|
||||
{% endif %}
|
||||
|
||||
{% if action.eventCategory|default(false) is not empty
|
||||
and previousAction.url|default(false) == action.url %}
|
||||
{# For events, do not show (url) if the Event URL is the same as the URL last displayed #}
|
||||
{% else %}
|
||||
<a href="{{ action.url }}" rel="noreferrer" target="_blank" class="{% if action.eventCategory|default(false) is empty %}action-list-url{# don't put URL on new line for events #}{% endif %} truncated-text-line"
|
||||
{% if overrideLinkStyle is not defined or overrideLinkStyle %}style="text-decoration:underline;"{% endif %}>
|
||||
{{ action.url }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if action.type == 'action' and action.pageTitle|default(false) is not empty %}</p>{% endif %}
|
||||
{% elseif action.type != 'search' and action.type != 'event' %}
|
||||
<p>
|
||||
<span>{{ clientSideParameters.pageUrlNotDefined }}</span>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{# Goal conversion #}
|
||||
<img src="{{ action.icon }}" />
|
||||
<strong>{{ action.goalName }}</strong>
|
||||
{% if action.revenue > 0 %}, {{ 'General_ColumnRevenue'|translate }}:
|
||||
<strong>{{ action.revenue|money(clientSideParameters.idSite)|raw }}</strong>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{% set previousAction = action %}
|
||||
{% endfor %}
|
||||
|
|
@ -1,85 +1,85 @@
|
|||
{% set displayVisitorsInOwnColumn = (isWidget ? false : true) %}
|
||||
{% set displayReferrersInOwnColumn = (clientSideParameters.smallWidth ? false : true) %}
|
||||
<table class="dataTable" cellspacing="0" width="100%" style="width:100%;table-layout:fixed;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="display:none;"></th>
|
||||
<th id="label" class="sortable label" style="cursor: auto;width:190px;" width="190px">
|
||||
<div id="thDIV">{{ 'General_Date'|translate }}</div>
|
||||
</th>
|
||||
{% if displayVisitorsInOwnColumn %}
|
||||
<th id="label" class="sortable label" style="cursor: auto;width:225px;" width="225px">
|
||||
<div id="thDIV">{{ 'General_Visitors'|translate }}</div>
|
||||
</th>
|
||||
{% endif %}
|
||||
{% if displayReferrersInOwnColumn %}
|
||||
<th id="label" class="sortable label" style="cursor: auto;width:230px;" width="230px">
|
||||
<div id="thDIV">{{ 'Live_Referrer_URL'|translate }}</div>
|
||||
</th>
|
||||
{% endif %}
|
||||
<th id="label" class="sortable label" style="cursor: auto;">
|
||||
<div id="thDIV">{{ 'General_ColumnNbActions'|translate }}</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% set cycleIndex=0 %}
|
||||
{% for visitor in dataTable.getRows() %}
|
||||
{% set breakBeforeVisitorRank = (visitor.getColumn('visitEcommerceStatusIcon') and visitor.getColumn('visitorTypeIcon')) ? true : false %}
|
||||
{% set visitHasEcommerceActivity = visitor.getColumn('visitEcommerceStatusIcon') %}
|
||||
{% set breakBeforeVisitorRank = (visitHasEcommerceActivity and visitor.getColumn('visitorTypeIcon')) ? true : false %}
|
||||
{% set visitorColumnContent %}
|
||||
<img src="{{ visitor.getColumn('countryFlag') }}" title="{{ visitor.getColumn('location') }}, Provider {{ visitor.getColumn('providerName') }}"/>
|
||||
|
||||
{% if visitor.getColumn('plugins') %}
|
||||
<img src="{{ visitor.getColumn('browserIcon') }}" title="{{ 'UserSettings_BrowserWithPluginsEnabled'|translate(visitor.getColumn('browserName'),visitor.getColumn('plugins')) }}"/>
|
||||
{% else %}
|
||||
<img src="{{ visitor.getColumn('browserIcon') }}" title="{{ 'UserSettings_BrowserWithNoPluginsEnabled'|translate(visitor.getColumn('browserName')) }}"/>
|
||||
{% endif %}
|
||||
|
||||
<img src="{{ visitor.getColumn('operatingSystemIcon') }}"
|
||||
title="{{ visitor.getColumn('operatingSystem') }}, {{ visitor.getColumn('resolution') }} ({{ visitor.getColumn('screenType') }})"/>
|
||||
{% if visitor.getColumn('visitorTypeIcon') %}
|
||||
-
|
||||
<img src="{{ visitor.getColumn('visitorTypeIcon') }}"
|
||||
title="{{ 'General_ReturningVisitor'|translate }} - {{ 'General_NVisits'|translate(visitor.getColumn('visitCount')) }}"/>
|
||||
{% endif %}
|
||||
{% if not displayVisitorsInOwnColumn or breakBeforeVisitorRank %}<br/><br />{% endif %}
|
||||
{% if visitor.getColumn('visitConverted') %}
|
||||
<span title="{{ 'General_VisitConvertedNGoals'|translate(visitor.getColumn('goalConversions')) }}" class='visitorRank'
|
||||
{% if not displayVisitorsInOwnColumn or breakBeforeVisitorRank %}style="margin-left:0;"{% endif %}>
|
||||
<img src="{{ visitor.getColumn('visitConvertedIcon') }}"/>
|
||||
<span class='hash'>#</span>
|
||||
{{ visitor.getColumn('goalConversions') }}
|
||||
{% if visitor.getColumn('visitEcommerceStatusIcon') %}
|
||||
-
|
||||
<img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/>
|
||||
{% endif %}
|
||||
|
||||
<span class="visitorLogIcons">
|
||||
|
||||
<span class="visitorDetails">
|
||||
{% if visitor.getColumn('browserIcon') %}
|
||||
<span class="visitorLogIconWithDetails">
|
||||
<img src="{{ visitor.getColumn('browserIcon') }}"/>
|
||||
<ul class="details">
|
||||
<li>{{ 'DevicesDetection_ColumnBrowser'|translate }}: {{ visitor.getColumn('browser') }}</li>
|
||||
<li>{{ 'DevicesDetection_BrowserEngine'|translate }}: {{ visitor.getColumn('browserFamily') }}</li>
|
||||
{% if visitor.getColumn('pluginsIcons')|length > 0 %}
|
||||
<li>
|
||||
{{ 'General_Plugins'|translate }}:
|
||||
{% for pluginIcon in visitor.getColumn('pluginsIcons') %}
|
||||
<img src="{{ pluginIcon.pluginIcon }}" alt="{{ pluginIcon.pluginName|capitalize(true) }}"/>
|
||||
{% endfor %}
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if not displayVisitorsInOwnColumn %}<br/><br />{% endif %}
|
||||
{% if displayVisitorsInOwnColumn %}
|
||||
{% if visitor.getColumn('pluginsIcons')|length > 0 %}
|
||||
<hr/>
|
||||
{{ 'General_Plugins'|translate }}:
|
||||
{% for pluginIcon in visitor.getColumn('pluginsIcons') %}
|
||||
<img src="{{ pluginIcon.pluginIcon }}" title="{{ pluginIcon.pluginName|capitalize(true) }}" alt="{{ pluginIcon.pluginName|capitalize(true) }}"/>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('operatingSystemIcon') %}
|
||||
<span class="visitorLogIconWithDetails">
|
||||
<img src="{{ visitor.getColumn('operatingSystemIcon') }}"/>
|
||||
<ul class="details">
|
||||
<li>{{ 'DevicesDetection_ColumnOperatingSystem'|translate }}: {{ visitor.getColumn('operatingSystem') }}</li>
|
||||
</ul>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('deviceTypeIcon') %}
|
||||
<span class="visitorLogIconWithDetails">
|
||||
<img src="{{ visitor.getColumn('deviceTypeIcon') }}"/>
|
||||
<ul class="details">
|
||||
<li>{{ 'DevicesDetection_DeviceType'|translate }}: {{ visitor.getColumn('deviceType') }}</li>
|
||||
{% if visitor.getColumn('deviceBrand') %}<li>{{ 'DevicesDetection_DeviceBrand'|translate }}: {{ visitor.getColumn('deviceBrand') }}</li>{% endif %}
|
||||
{% if visitor.getColumn('deviceModel') %}<li>{{ 'DevicesDetection_DeviceModel'|translate }}: {{ visitor.getColumn('deviceModel') }}</li>{% endif %}
|
||||
{% if visitor.getColumn('resolution') %}<li>{{ 'Resolution_ColumnResolution'|translate }}: {{ visitor.getColumn('resolution') }}</li>{% endif %}
|
||||
</ul>
|
||||
</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
<span class="visitorType">
|
||||
{# Goals, and/or Ecommerce activity #}
|
||||
{% if visitor.getColumn('visitConverted') %}
|
||||
<span title="{{ 'General_VisitConvertedNGoals'|translate(visitor.getColumn('goalConversions')) }}" class='visitorRank visitorLogTooltip'
|
||||
{% if not displayVisitorsInOwnColumn or breakBeforeVisitorRank %}style="margin-left:0;"{% endif %}>
|
||||
<img src="{{ visitor.getColumn('visitConvertedIcon') }}"/>
|
||||
<span class='hash'>#</span>
|
||||
{{ visitor.getColumn('goalConversions') }}
|
||||
{% if visitHasEcommerceActivity %}
|
||||
|
||||
<img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" class='visitorLogTooltip' title="{{ visitor.getColumn('visitEcommerceStatus') }}"/>
|
||||
{% endif %}
|
||||
</span>
|
||||
{# Ecommerce activity only (no goal) #}
|
||||
{% elseif visitHasEcommerceActivity %}
|
||||
<img class="visitorLogTooltip" src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/>
|
||||
{% endif %}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
{% endset %}
|
||||
|
||||
{% set referrerColumnContent %}
|
||||
<div class="referrer">
|
||||
{% set referrerContent %}
|
||||
<div class="visitorReferrer">
|
||||
{% if visitor.getColumn('referrerType') == 'website' %}
|
||||
{{ 'Referrers_ColumnWebsite'|translate }}:
|
||||
<a href="{{ visitor.getColumn('referrerUrl') }}" target="_blank" title="{{ visitor.getColumn('referrerUrl') }}"
|
||||
<a href="{{ visitor.getColumn('referrerUrl') }}" rel="noreferrer" target="_blank" class="visitorLogTooltip" title="{{ visitor.getColumn('referrerUrl') }}"
|
||||
style="text-decoration:underline;">
|
||||
{{ visitor.getColumn('referrerName') }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('referrerType') == 'campaign' %}
|
||||
{{ 'Referrers_ColumnCampaign'|translate }}
|
||||
<br/>
|
||||
{{ visitor.getColumn('referrerName') }}
|
||||
{{ 'Referrers_ColumnCampaign'|translate }}: {{ visitor.getColumn('referrerName') }}
|
||||
{% if visitor.getColumn('referrerKeyword') is not empty %} - {{ visitor.getColumn('referrerKeyword') }}{% endif %}
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('referrerType') == 'search' %}
|
||||
|
|
@ -88,17 +88,16 @@
|
|||
{% if visitor.getColumn('searchEngineIcon') %}
|
||||
<img src="{{ visitor.getColumn('searchEngineIcon') }}" alt="{{ visitor.getColumn('referrerName') }}"/>
|
||||
{% endif %}
|
||||
<span {% if not showKeyword %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitor.getColumn('referrerName') }}</span>
|
||||
<span {% if not showKeyword %}title="{{ keywordNotDefined }}" class="visitorLogTooltip"{% endif %}>{{ visitor.getColumn('referrerName') }}</span>
|
||||
{% if showKeyword %}{{ 'Referrers_Keywords'|translate }}:
|
||||
<br/>
|
||||
<a href="{{ visitor.getColumn('referrerUrl') }}" target="_blank" style="text-decoration:underline;">
|
||||
<a href="{{ visitor.getColumn('referrerUrl') }}" rel="noreferrer" target="_blank" style="text-decoration:underline;">
|
||||
"{{ visitor.getColumn('referrerKeyword') }}"</a>
|
||||
{% endif %}
|
||||
{% set keyword %}{{ visitor.getColumn('referrerKeyword') }}{% endset %}
|
||||
{% set searchName %}{{ visitor.getColumn('referrerName') }}{% endset %}
|
||||
{% set position %}#{{ visitor.getColumn('referrerKeywordPosition') }}{% endset %}
|
||||
{% if visitor.getColumn('referrerKeywordPosition') %}
|
||||
<span title='{{ 'Live_KeywordRankedOnSearchResultForThisVisitor'|translate(keyword,position,searchName) }}' class='visitorRank'>
|
||||
<span title='{{ 'Live_KeywordRankedOnSearchResultForThisVisitor'|translate(keyword,position,searchName) }}' class='visitorRank visitorLogTooltip'>
|
||||
<span class='hash'>#</span>
|
||||
{{ visitor.getColumn('referrerKeywordPosition') }}
|
||||
</span>
|
||||
|
|
@ -108,31 +107,62 @@
|
|||
</div>
|
||||
{% endset %}
|
||||
|
||||
|
||||
{% set visitorRow %}
|
||||
<tr class="label{{ cycle(['odd','even'], cycleIndex) }}">
|
||||
<div class="card row">
|
||||
|
||||
{% if visitor.getColumn('visitorId') is not empty and not clientSideParameters.hideProfileLink %}
|
||||
<a class="visitor-log-visitor-profile-link visitorLogTooltip" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.getColumn("visitorId") }}">
|
||||
<img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}
|
||||
{%- if visitor.getColumn('userId') is not empty %}: {{ visitor.getColumn('userId')|raw }}{% endif %}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% set cycleIndex=cycleIndex+1 %}
|
||||
<td style="display:none;"></td>
|
||||
<td class="label">
|
||||
<strong title="{% if visitor.getColumn('visitorType')=='new' %}{{ 'General_NewVisitor'|translate }}{% else %}{{ 'Live_VisitorsLastVisit'|translate(visitor.getColumn('daysSinceLastVisit')) }}{% endif %}">
|
||||
<div class="col-md-{% if displayVisitorsInOwnColumn %}3{% else %}4{% endif %}">
|
||||
<strong class="visitorLogTooltip" title="{% if visitor.getColumn('visitorType')=='new' %}{{ 'General_NewVisitor'|translate }}{% else %}{{ 'Live_VisitorsLastVisit'|translate(visitor.getColumn('daysSinceLastVisit')) }}{% endif %}">
|
||||
{{ visitor.getColumn('serverDatePrettyFirstAction') }}
|
||||
{% if isWidget %}<br/>{% else %}-{% endif %} {{ visitor.getColumn('serverTimePrettyFirstAction') }}</strong>
|
||||
{% if visitor.getColumn('visitIp') is not empty %}
|
||||
<br/>
|
||||
<span title="{% if visitor.getColumn('visitorId') is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.getColumn('visitorId') }}{% endif -%}
|
||||
{%- if visitor.getColumn('latitude') or visitor.getColumn('longitude') %}
|
||||
<span class="visitorLogTooltip" title="{% if visitor.getColumn('userId') is not empty %}{{ 'General_UserId'|translate }}: {{ visitor.getColumn('userId')|raw }}{% endif %}
|
||||
|
||||
{% if visitor.getColumn('visitorId') is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.getColumn('visitorId') }}{% endif -%}
|
||||
{%- if visitor.getColumn('latitude') or visitor.getColumn('longitude') %}
|
||||
|
||||
{{ visitor.getColumn('location') }}
|
||||
|
||||
GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longitude') }}{% endif %}">
|
||||
IP: {{ visitor.getColumn('visitIp') }}</span>{% endif %}
|
||||
IP: {{ visitor.getColumn('visitIp') }}
|
||||
{% if visitor.getColumn('userId') is not empty %}<br/><br/>{{ visitor.getColumn('userId')|raw }}{% endif %}
|
||||
|
||||
{% if visitor.getColumn('provider') and visitor.getColumn('providerName')!='IP' %}
|
||||
</span>{% endif %}
|
||||
|
||||
{% if visitor.getColumn('provider') %}
|
||||
<br/>
|
||||
{{ 'Provider_ColumnProvider'|translate }}:
|
||||
<a href="{{ visitor.getColumn('providerUrl') }}" target="_blank" title="{{ visitor.getColumn('providerUrl') }}" style="text-decoration:underline;">
|
||||
{{ visitor.getColumn('providerName') }}
|
||||
</a>
|
||||
<a href="{{ visitor.getColumn('providerUrl') }}" rel="noreferrer" target="_blank" class="visitorLogTooltip" title="{{ visitor.getColumn('providerName') }} {{ visitor.getColumn('providerUrl') }}" style="text-decoration:underline;">
|
||||
{{ visitor.getColumn('providerName') }}</a>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('visitorTypeIcon') or visitor.getColumn('countryFlag') %}
|
||||
<br/>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('visitorTypeIcon') %}
|
||||
<span class="visitorLogIconWithDetails">
|
||||
<img src="{{ visitor.getColumn('visitorTypeIcon') }}"/>
|
||||
<ul class="details">
|
||||
<li>{{ 'General_ReturningVisitor'|translate }} - {{ 'General_NVisits'|translate(visitor.getColumn('visitCount')) }}</li>
|
||||
</ul>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('countryFlag') %}
|
||||
<span class="visitorLogIconWithDetails">
|
||||
<img src="{{ visitor.getColumn('countryFlag') }}"/>
|
||||
<ul class="details">
|
||||
<li>{{ 'UserCountry_Country'|translate }}: {{ visitor.getColumn('country') }}</li>
|
||||
{% if visitor.getColumn('region') %}<li>{{ 'UserCountry_Region'|translate }}: {{ visitor.getColumn('region') }}</li>{% endif %}
|
||||
{% if visitor.getColumn('city') %}<li>{{ 'UserCountry_City'|translate }}: {{ visitor.getColumn('city') }}</li>{% endif %}
|
||||
</ul>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if visitor.getColumn('customVariables') %}
|
||||
<br/>
|
||||
|
|
@ -140,7 +170,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
|
|||
{% set name='customVariableName' ~ id %}
|
||||
{% set value='customVariableValue' ~ id %}
|
||||
<br/>
|
||||
<acronym title="{{ 'CustomVariables_CustomVariables'|translate }} (index {{ id }})">
|
||||
<acronym class="visitorLogTooltip" title="{{ 'CustomVariables_CustomVariables'|translate }} (index {{ id }})">
|
||||
{{ customVariable[name]|truncate(30) }}
|
||||
</acronym>
|
||||
{% if customVariable[value]|length > 0 %}: {{ customVariable[value]|truncate(50) }}{% endif %}
|
||||
|
|
@ -150,31 +180,18 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
|
|||
<br/>
|
||||
{{ visitorColumnContent }}
|
||||
{% endif %}
|
||||
{% if not displayReferrersInOwnColumn %}
|
||||
<br/>
|
||||
{{ referrerColumnContent }}
|
||||
{% endif %}
|
||||
</td>
|
||||
{{ referrerContent }}
|
||||
</div>
|
||||
|
||||
{% if displayVisitorsInOwnColumn %}
|
||||
<td class="label">
|
||||
<div class="col-md-2 own-visitor-column">
|
||||
{{ visitorColumnContent }}
|
||||
</td>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if displayReferrersInOwnColumn %}
|
||||
<td class="column">
|
||||
{{ referrerColumnContent }}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
<td class="column {% if visitor.getColumn('visitConverted') and not isWidget %}highlightField{% endif %}">
|
||||
<div class="col-md-{% if displayVisitorsInOwnColumn %}7{% else %}8{% endif %} column {% if visitor.getColumn('visitConverted') and not isWidget %}highlightField{% endif %}">
|
||||
{{ postEvent('Live.visitorLogViewBeforeActionsInfo', visitor) }}
|
||||
<div class="visitor-log-page-list">
|
||||
{% if visitor.getColumn('visitorId') is not empty %}
|
||||
<a class="visitor-log-visitor-profile-link" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.getColumn("visitorId") }}">
|
||||
<img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
<strong>
|
||||
{{ visitor.getColumn('actionDetails')|length }}
|
||||
{% if visitor.getColumn('actionDetails')|length <= 1 %}
|
||||
|
|
@ -189,14 +206,10 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
|
|||
{% include "@Live/_actionsList.twig" with {'actionDetails': visitor.getColumn('actionDetails')} %}
|
||||
</ol>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{ postEvent('Live.visitorLogViewAfterActionsInfo', visitor) }}
|
||||
</div>
|
||||
</div>
|
||||
{% endset %}
|
||||
|
||||
{% if not clientSideParameters.filterEcommerce or visitor.getMetadata('hasEcommerce') %}
|
||||
{{ visitorRow }}
|
||||
{% endif %}
|
||||
{{ visitorRow }}
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -2,27 +2,27 @@
|
|||
<table class="dataTable" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th id="label" class="sortable label" style="cursor: auto;">
|
||||
<th id="label" class="sortable label first" style="cursor: auto;">
|
||||
<div id="thDIV">{{ 'General_Date'|translate }}</div>
|
||||
</th>
|
||||
<th id="label" class="sortable label" style="cursor: auto;">
|
||||
<div id="thDIV">{{ 'General_ColumnNbVisits'|translate }}</div>
|
||||
</th>
|
||||
<th id="label" class="sortable label" style="cursor: auto;">
|
||||
<div id="thDIV">{{ 'General_ColumnPageviews'|translate }}</div>
|
||||
<div id="thDIV">{{ 'General_Actions'|translate }}</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="">
|
||||
<td class="column columnodd">{{ 'Live_LastHours'|translate(24) }}</td>
|
||||
<td class="column columnodd">{{ visitorsCountToday }}</td>
|
||||
<td class="column columnodd">{{ pisToday }}</td>
|
||||
<td class="label column">{{ 'Live_LastHours'|translate(24) }}</td>
|
||||
<td class="column">{{ visitorsCountToday }}</td>
|
||||
<td class="column">{{ pisToday }}</td>
|
||||
</tr>
|
||||
<tr class="">
|
||||
<td class="column columnodd">{{ 'Live_LastMinutes'|translate(30) }}</td>
|
||||
<td class="column columnodd">{{ visitorsCountHalfHour }}</td>
|
||||
<td class="column columnodd">{{ pisHalfhour }}</td>
|
||||
<td class="label column">{{ 'Live_LastMinutes'|translate(30) }}</td>
|
||||
<td class="column">{{ visitorsCountHalfHour }}</td>
|
||||
<td class="column">{{ pisHalfhour }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -7,10 +7,21 @@
|
|||
<div style="display:none;" class="idvisit">{{ visitor.idVisit }}</div>
|
||||
<div title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}" class="datetime">
|
||||
<span style="display:none;" class="serverTimestamp">{{ visitor.serverTimestamp|raw }}</span>
|
||||
{{ visitor.serverDatePretty }} - {{ visitor.serverTimePretty }} {% if visitor.visitDuration > 0 %}<em>({{ visitor.visitDurationPretty|raw }})</em>{% endif %}
|
||||
<img src="{{ visitor.countryFlag }}" title="{{ visitor.location }}, {{ 'Provider_ColumnProvider'|translate }} {{ visitor.providerName }}"/>
|
||||
<img src="{{ visitor.browserIcon }}" title="{{ visitor.browserName }}, {{ 'General_Plugins'|translate }}: {{ visitor.plugins }}"/>
|
||||
<img src="{{ visitor.operatingSystemIcon }}" title="{{ visitor.operatingSystem }}, {{ visitor.resolution }}"/>
|
||||
{{ postEvent('Live.visitorLogWidgetViewBeforeVisitInfo', visitor) }}
|
||||
{% set year = visitor.serverTimestamp|date('Y') %}
|
||||
{{ visitor.serverDatePretty|replace({(year): ' '}) }} - {{ visitor.serverTimePretty }} {% if visitor.visitDuration > 0 %}<em>({{ visitor.visitDurationPretty|raw }})</em>{% endif %}
|
||||
{% if visitor.visitorId|default(false) is not empty %}
|
||||
<a class="visits-live-launch-visitor-profile rightLink" title="{{ 'Live_ViewVisitorProfile'|translate }} {% if visitor.userId is not empty %}{{ visitor.userId|raw }}{% endif %}" data-visitor-id="{{ visitor.visitorId }}">
|
||||
{% if visitor.userId is not empty %}<br/>{% endif %}
|
||||
<img src="plugins/Live/images/visitorProfileLaunch.png"/>
|
||||
{{ visitor.userId|default('')|raw }}
|
||||
</a>
|
||||
{% endif %}
|
||||
<br />
|
||||
|
||||
{% if visitor.countryFlag is defined %} <img src="{{ visitor.countryFlag }}" title="{{ visitor.location }}, {{ 'Provider_ColumnProvider'|translate }} {% if visitor.providerName is defined %}{{ visitor.providerName }}{% endif %}"/>{% endif %}
|
||||
{% if visitor.browserIcon is defined %} <img src="{{ visitor.browserIcon }}" title="{{ visitor.browser }}{% if visitor.plugins is defined %}, {{ 'General_Plugins'|translate }}: {{ visitor.plugins }}{% endif %}"/>{% endif %}
|
||||
{% if visitor.operatingSystemIcon is defined %} <img src="{{ visitor.operatingSystemIcon }}" title="{{ visitor.operatingSystem }}{% if visitor.resolution is defined %}, {{ visitor.resolution }}{% endif %}"/>{% endif %}
|
||||
|
||||
{% if visitor.visitConverted %}
|
||||
<span title="{{ 'General_VisitConvertedNGoals'|translate(visitor.goalConversions) }}" class='visitorRank'>
|
||||
|
|
@ -18,29 +29,24 @@
|
|||
<span class='hash'>#</span>
|
||||
{{ visitor.goalConversions }}
|
||||
{% if visitor.visitEcommerceStatusIcon %}
|
||||
-
|
||||
|
||||
<img src="{{ visitor.visitEcommerceStatusIcon }}" title="{{ visitor.visitEcommerceStatus }}"/>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if visitor.visitorTypeIcon %}
|
||||
- <img src="{{ visitor.visitorTypeIcon }}" title="{{ 'General_ReturningVisitor'|translate }}"/>
|
||||
<img src="{{ visitor.visitorTypeIcon }}" title="{{ 'General_ReturningVisitor'|translate }}"/>
|
||||
{% endif %}
|
||||
{% if visitor.visitorId|default(false) is not empty %}
|
||||
<a class="visits-live-launch-visitor-profile rightLink" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.visitorId }}">
|
||||
<img src="plugins/Live/images/visitorProfileLaunch.png"/>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if visitor.visitIp %}- <span title="{% if visitor.visitorId is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.visitorId }}{% endif %}">
|
||||
|
||||
{% if visitor.visitIp %} <span title="{% if visitor.visitorId is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.visitorId }}{% endif %}">
|
||||
IP: {{ visitor.visitIp }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!--<div class="settings"></div>-->
|
||||
<div class="referrer">
|
||||
{% if visitor.referrerType != 'direct' %}
|
||||
<span class="referrer">
|
||||
{% if visitor.referrerType is defined and visitor.referrerType != 'direct' %}
|
||||
{{ 'General_FromReferrer'|translate }}
|
||||
{% if visitor.referrerUrl is not empty %}
|
||||
<a href="{{ visitor.referrerUrl }}" target="_blank">
|
||||
<a href="{{ visitor.referrerUrl }}" rel="noreferrer" target="_blank">
|
||||
{% endif %}
|
||||
{% if visitor.searchEngineIcon is defined %}
|
||||
<img src="{{ visitor.searchEngineIcon }}" />
|
||||
|
|
@ -58,39 +64,41 @@
|
|||
<span class='hash'>#</span> {{ visitor.referrerKeywordPosition }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% elseif visitor.referrerType is defined %}
|
||||
{{ 'Referrers_DirectEntry'|translate }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</span></div>
|
||||
<div id="{{ visitor.idVisit }}_actions" class="settings">
|
||||
<span class="pagesTitle" title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}">{{ 'General_Pages'|translate }}:</span>
|
||||
<span class="pagesTitle" title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}">{{ 'General_Actions'|translate }}:</span>
|
||||
{% set col = 0 %}
|
||||
{% for action in visitor.actionDetails %}
|
||||
{% if loop.index <= maxPagesDisplayedByVisitor %}
|
||||
{% if action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %}
|
||||
{% set title %}
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
{{ 'Goals_EcommerceOrder'|translate }}
|
||||
{%- if action.type == 'ecommerceOrder' %}
|
||||
{{- 'Goals_EcommerceOrder'|translate -}}
|
||||
{% else %}
|
||||
{{ 'Goals_AbandonedCart'|translate }}
|
||||
{% endif %}
|
||||
-
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
{{ 'General_ColumnRevenue'|translate }}:
|
||||
{% else %}
|
||||
{% set revenueLeft %}
|
||||
{{ 'General_ColumnRevenue'|translate }}
|
||||
{% endset %}
|
||||
{{ 'Goals_LeftInCart'|translate(revenueLeft) }}:
|
||||
{% endif %}
|
||||
{{ action.revenue|money(idSite)|raw }} - {{ action.serverTimePretty }}
|
||||
{% if action.itemDetails is not empty %}
|
||||
{% for product in action.itemDetails %}
|
||||
# {{ product.itemSKU }}{% if product.itemName is not empty %}: {{ product.itemName }}{% endif %}{% if product.itemCategory is not empty %} ({{ product.itemCategory }}){% endif %}, {{ 'General_Quantity'|translate }}: {{ product.quantity }}, {{ 'General_Price'|translate }}: {{ product.price|money(idSite)|raw }}
|
||||
{% endfor %}
|
||||
{{- 'Goals_AbandonedCart'|translate -}}
|
||||
{% endif %}
|
||||
{{- "\n - " -}}
|
||||
{%- if action.type == 'ecommerceOrder' -%}
|
||||
{{- 'General_ColumnRevenue'|translate -}}:
|
||||
{%- else -%}
|
||||
{%- set revenueLeft -%}
|
||||
{{- 'General_ColumnRevenue'|translate -}}
|
||||
{%- endset -%}
|
||||
{{- 'Goals_LeftInCart'|translate(revenueLeft) -}}:
|
||||
{%- endif %} {{ action.revenue|money(idSite)|raw -}}
|
||||
|
||||
{{- "\n - " -}}{{- action.serverTimePretty -}}
|
||||
{{- "\n" -}}
|
||||
{% if action.itemDetails is not empty -%}
|
||||
{% for product in action.itemDetails -%}
|
||||
{{- "\n# " -}}{{ product.itemSKU }}{% if product.itemName is not empty %}: {{ product.itemName }}{% endif %}{% if product.itemCategory is not empty %} ({{ product.itemCategory }}){% endif %}, {{ 'General_Quantity'|translate }}: {{ product.quantity }}, {{ 'General_Price'|translate }}: {{ product.price|money(idSite)|raw }}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
{% endset %}
|
||||
<span title="{{ title }}">
|
||||
<span title="{{- title -}}">
|
||||
<img class='iconPadding' src="{{ action.icon }}"/>
|
||||
{% if action.type == 'ecommerceOrder' %}
|
||||
{{ 'General_ColumnRevenue'|translate }}: {{ action.revenue|money(idSite)|raw }}
|
||||
|
|
@ -105,7 +113,7 @@
|
|||
{% if action.type == 'action' %}
|
||||
{# white spacing matters as Chrome tooltip display whitespaces #}
|
||||
{% set title %}
|
||||
{% if action.pageTitle is not empty %}{{ action.pageTitle }}{% endif %}
|
||||
{% if action.pageTitle is not empty %}{{ action.pageTitle|rawSafeDecoded }}{% endif %}
|
||||
|
||||
{{ action.serverTimePretty }}
|
||||
{% if action.timeSpentPretty is defined %}{{ 'General_TimeOnPage'|translate }}: {{ action.timeSpentPretty|raw }}{% endif %}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<span class="simple-realtime-metric" data-metric="actions">{% if actions == 1 %}{{ 'General_OneAction'|translate }}{% else %}{{ 'VisitsSummary_NbActionsDescription'|translate(actions) }}{% endif %}</span>
|
||||
{% endset %}
|
||||
{% set minutesMessage %}
|
||||
<span class="simple-realtime-metric" data-metric="minutes">{% if lastMinutes == 1 %}{{ 'General_OneMinute'|translate }}{% else %}{{ 'General_NMinutes'|translate(lastMinutes) }}{% endif %}</span>
|
||||
<span class="simple-realtime-metric" data-metric="minutes">{% if lastMinutes == 1 %}{{ 'Intl_OneMinute'|translate }}{% else %}{{ 'Intl_NMinutes'|translate(lastMinutes) }}{% endif %}</span>
|
||||
{% endset %}
|
||||
|
||||
{{ 'Live_SimpleRealTimeWidget_Message'|translate(visitsMessage,actionsMessage,minutesMessage) | raw }}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="visitor-profile-latest-visit-column">
|
||||
<ul>
|
||||
<li>
|
||||
<span>{{ 'General_IP'|translate }}</span><strong {% if visitData.providerName is not empty %}title="{{ 'Provider_ColumnProvider'|translate }}: {{ visitData.providerName }}"{% endif %}>{{ visitData.visitIp }}</strong>
|
||||
<span>{{ 'General_IP'|translate }}</span><strong {% if visitData.providerName is defined and visitData.providerName is not empty %}title="{{ 'Provider_ColumnProvider'|translate }}: {{ visitData.providerName }}"{% endif %}>{{ visitData.visitIp }}</strong>
|
||||
</li>
|
||||
<li class="visitor-profile-id">
|
||||
<span>{{ 'General_Id'|translate|upper }}</span>
|
||||
|
|
@ -20,18 +20,22 @@
|
|||
<strong>{{ visitData.visitorId }}</strong>
|
||||
{% if widgetizedLink is defined %}</a>{% endif %}
|
||||
<a class="visitor-profile-export" href="{{ exportLink }}" target="_blank" title="{{ 'General_ExportThisReport'|translate }}" style="visibility:hidden">
|
||||
<img src="plugins/Zeitgeist/images/export.png"/>
|
||||
<img src="plugins/Morpheus/images/export.png"/>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<div class="visitor-profile-browser" title="{% if visitData.plugins is defined %}{{ 'UserSettings_BrowserWithPluginsEnabled'|translate(visitData.browserName, visitData.plugins) }}{% else %}{{ 'UserSettings_BrowserWithNoPluginsEnabled'|translate(visitData.browserName) }}{% endif %}">
|
||||
<img src="{{ visitData.browserIcon }}"/><span>{{ visitData.browserName|split(' ')[0] }}</span>
|
||||
{% if visitData.browserName is defined %}
|
||||
<div class="visitor-profile-browser" title="{% if visitData.plugins is not defined %}{{ visitData.browser }}{% elseif visitData.plugins %}{{ 'DevicePlugins_BrowserWithPluginsEnabled'|translate(visitData.browser, visitData.plugins) }}{% else %}{{ 'DevicePlugins_BrowserWithNoPluginsEnabled'|translate(visitData.browser) }}{% endif %}">
|
||||
{% if visitData.browserIcon is defined %}<img src="{{ visitData.browserIcon }}"/>{% endif %}<span>{{ visitData.browserName|split(' ')[0] }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="visitor-profile-os">
|
||||
<img src="{{ visitData.operatingSystemIcon }}"/><span>{{ visitData.operatingSystemShortName }}</span>
|
||||
{% if visitData.operatingSystemIcon is defined %}<img src="{{ visitData.operatingSystemIcon }}"/>{% endif %}{% if visitData.operatingSystem is defined %}<span>{{ visitData.operatingSystem }}</span>{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
<li><span>{{ 'UserSettings_ColumnResolution'|translate }}</span><strong>{{ visitData.resolution }}</strong></li>
|
||||
{% if visitData.resolution is defined %}<li><span>{{ 'Resolution_ColumnResolution'|translate }}</span><strong>{{ visitData.resolution }}</strong></li>{% endif %}
|
||||
{% if visitData.userId is not empty %}<li><span>{{ 'General_UserId'|translate }}</span><strong>{{ visitData.userId|raw }}</strong></li>{% endif %}
|
||||
{% if visitReferralSummary is defined %}
|
||||
{%- set keywordNotDefined = 'General_NotDefined'|translate('General_ColumnKeyword'|translate) -%}
|
||||
<li>
|
||||
|
|
@ -42,6 +46,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
<div class="visitor-profile-latest-visit-column">
|
||||
{% if visitData.customVariables is defined %}
|
||||
<ul>
|
||||
{% for id,customVariable in visitData.customVariables %}
|
||||
{% if loop.index0 < 4 %}
|
||||
|
|
@ -49,7 +54,8 @@
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if visitData.customVariables|length > 4 %}
|
||||
{% endif %}
|
||||
{% if visitData.customVariables is defined and visitData.customVariables|length > 4 %}
|
||||
<ul class="visitor-profile-extra-cvars" style="display:none;">
|
||||
{% for id,customVariable in visitData.customVariables %}
|
||||
{% if loop.index0 >= 4 %}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,21 @@
|
|||
{% for visitInfo in visits.getRows() %}
|
||||
<li>
|
||||
<div>
|
||||
<div class="visitor-profile-visit-title-row"><h2 class="visitor-profile-visit-title" data-idvisit="{{ visitInfo.getColumn('idVisit') }}" title="{{ 'Live_ClickToViewMoreAboutVisit'|translate }}">{{ 'General_Visit'|translate }} #{{ startCounter }}</h2>{% if visitInfo.getColumn('visitDuration') != 0 %}<span> - ({{ visitInfo.getColumn('visitDurationPretty')|raw }})</span>{% endif %}<span class="visitor-profile-date" title="{{ visitInfo.getColumn('serverDateTimePrettyFirstAction') }}">{{ visitInfo.getColumn('serverDatePrettyFirstAction') }}</span></div>
|
||||
<div class="visitor-profile-visit-title-row">
|
||||
<h2 class="visitor-profile-visit-title" data-idvisit="{{ visitInfo.getColumn('idVisit') }}" title="{{ 'Live_ClickToViewMoreAboutVisit'|translate }}">
|
||||
{{ 'General_Visit'|translate }} #{{ startCounter }}
|
||||
|
||||
{% if visitInfo.getColumn('visitDuration') != 0 %}
|
||||
<span> - ({{ visitInfo.getColumn('visitDurationPretty')|raw }})</span>
|
||||
{% endif %}
|
||||
<span class="visitor-profile-date" title="{{ visitInfo.getColumn('serverDatePrettyFirstAction') }} {{ visitInfo.getColumn('serverTimePrettyFirstAction') }}">
|
||||
{{ visitInfo.getColumn('serverDatePrettyFirstAction') }} {{ visitInfo.getColumn('serverTimePrettyFirstAction') }}
|
||||
</span>
|
||||
</h2>
|
||||
</div>
|
||||
<ol class="visitor-profile-actions">
|
||||
{% include "@Live/_actionsList.twig" with {'actionDetails': visitInfo.getColumn('actionDetails'),
|
||||
'clientSideParameters': {
|
||||
'filterEcommerce': false,
|
||||
'idSite': idSite,
|
||||
'pageUrlNotDefined': 'General_NotDefined'|translate('Actions_ColumnPageURL'|translate)
|
||||
},
|
||||
|
|
@ -14,4 +24,4 @@
|
|||
</div>
|
||||
</li>
|
||||
{% set startCounter = startCounter + 1 %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
{% if not visitorData %}
|
||||
<div class="pk-emptyDataTable">{{ 'CoreHome_ThereIsNoDataForThisReport'|translate }}</div>
|
||||
{% else %}
|
||||
<div class="visitor-profile"
|
||||
data-visitor-id="{{ visitorData.lastVisits.getFirstRow().getColumn('visitorId') }}"
|
||||
data-next-visitor="{{ visitorData.nextVisitorId }}"
|
||||
|
|
@ -11,15 +14,21 @@
|
|||
<div>
|
||||
<div class="visitor-profile-image-frame">
|
||||
<img src="{{ visitorData.visitorAvatar|default("plugins/Live/images/unknown_avatar.jpg") }}"
|
||||
alt="{{ visitorData.visitorDescription|default('') }}"/>
|
||||
alt="{{ visitorData.visitorDescription|default('') }}"
|
||||
title="{{ visitorData.visitorDescription|default('') }}" />
|
||||
</div>
|
||||
<img src="plugins/Live/images/paperclip.png" alt=""/>
|
||||
</div>
|
||||
<div>
|
||||
<div class="visitor-profile-header">
|
||||
{% if visitorData.previousVisitorId is not empty %}<a class="visitor-profile-prev-visitor" href="#" title="{{ 'Live_PreviousVisitor'|translate }}">←</a>{% endif %}
|
||||
<h1>{{ 'Live_VisitorProfile'|translate }} <img class="loadingPiwik" style="display:none;" src="plugins/Zeitgeist/images/loading-blue.gif"/></h1>
|
||||
<a href="http://piwik.org/docs/user-profile/" class="reportDocumentationIcon" target="_blank" title="{{ 'General_ViewDocumentationFor'|translate("Live_VisitorProfile"|translate|ucwords) }}"></a>
|
||||
<h1>{{ 'Live_VisitorProfile'|translate }}
|
||||
{%- if visitorData.userId is not empty %}: <span title="{{'General_UserId'|translate}}: {{ visitorData.userId|raw }}">{{ visitorData.userId|raw }}</span>{% endif -%}
|
||||
<img class="loadingPiwik" style="display:none;" src="plugins/Morpheus/images/loading-blue.gif"/>
|
||||
</h1>
|
||||
<a href="http://piwik.org/docs/user-profile/" class="visitorProfileHelp" rel="noreferrer" target="_blank" title="{{ 'General_ViewDocumentationFor'|translate("Live_VisitorProfile"|translate|ucwords) }}">
|
||||
<span class="icon-help"></span>
|
||||
</a>
|
||||
{% if visitorData.nextVisitorId is not empty %}<a class="visitor-profile-next-visitor" href="#" title="{{ 'Live_NextVisitor'|translate }}">→</a>{% endif %}
|
||||
</div>
|
||||
<div class="visitor-profile-latest-visit">
|
||||
|
|
@ -31,20 +40,30 @@
|
|||
<div class="visitor-profile-summary">
|
||||
<h1>{{ 'General_Summary'|translate }}</h1>
|
||||
<div>
|
||||
<p>{{ 'Live_VisitSummary'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>', visitorData.totalActions, visitorData.totalVisits, '</strong>')|raw }}</p>
|
||||
{% if visitorData.totalPageViews != visitorData.totalActions %}
|
||||
{% set actionDetails = [] %}
|
||||
{% if visitorData.totalPageViews > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalPageViews ~ ' ' ~ 'General_ColumnPageviews'|translate]) %}{% endif %}
|
||||
{% if visitorData.totalEvents > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalEvents ~ ' ' ~ 'Events_Events'|translate]) %}{% endif %}
|
||||
{% if visitorData.totalDownloads > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalDownloads ~ ' ' ~ 'General_Downloads'|translate]) %}{% endif %}
|
||||
{% if visitorData.totalOutlinks > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalOutlinks ~ ' ' ~ 'General_Outlinks'|translate]) %}{% endif %}
|
||||
{% if visitorData.totalSearches > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalSearches ~ ' ' ~ 'Actions_ColumnSearches'|translate]) %}{% endif %}
|
||||
<p>{{ 'Live_VisitSummaryWithActionDetails'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>' ~ visitorData.totalActions, '</strong>', actionDetails|join(', ') , '<strong>' ~ visitorData.totalVisits, '</strong>')|raw }}</p>
|
||||
{% else %}
|
||||
<p>{{ 'Live_VisitSummary'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>' ~ visitorData.totalActions, '</strong>', '<strong>' ~ visitorData.totalVisits, '</strong>')|raw }}</p>
|
||||
{% endif %}
|
||||
<p>{% if visitorData.totalGoalConversions %}<strong>{% endif %}{{ 'Live_ConvertedNGoals'|translate(visitorData.totalGoalConversions) }}{% if visitorData.totalGoalConversions %}</strong>{% endif %}
|
||||
{%- if visitorData.totalGoalConversions %} (
|
||||
{%- for idGoal, totalConversions in visitorData.totalConversionsByGoal -%}
|
||||
{%- set idGoal = idGoal[7:] -%}
|
||||
{%- if not loop.first %}, {% endif -%}{{- totalConversions }} <span class="visitor-profile-goal-name">{{ goals[idGoal]['name'] -}}</span>
|
||||
{%- if not loop.first %}, {% endif -%}{{- totalConversions }} {{ goals[idGoal]['name'] -}}
|
||||
{%- endfor -%}
|
||||
){% endif %}.</p>
|
||||
{% if visitorData.totalEcommerceConversions|default(0) > 0 or visitorData.totalAbandonedCarts|default(0) > 0%}
|
||||
<p>
|
||||
{{ 'Goals_Ecommerce'|translate }}:
|
||||
{%- if visitorData.totalEcommerceConversions|default(0) > 0 %} {{ 'Live_EcommerceSummaryConversions'|translate('<strong>', visitorData.totalEcommerceConversions, visitorData.totalEcommerceRevenue|money(idSite), '</strong>', visitorData.totalEcommerceItems)|raw }}
|
||||
{%- if visitorData.totalEcommerceConversions|default(0) > 0 %} {{ 'Live_EcommerceSummaryConversions'|translate('<strong>' ~ visitorData.totalEcommerceConversions, '</strong>', '<strong>' ~ visitorData.totalEcommerceRevenue|money(idSite), '</strong>', '<strong>' ~ visitorData.totalEcommerceItems, '</strong>')|raw }}
|
||||
{%- endif -%}
|
||||
{%- if visitorData.totalAbandonedCarts|default(0) > 0 %} {{ 'Live_AbandonedCartSummary'|translate('<strong>', visitorData.totalAbandonedCarts, '</strong>', visitorData.totalAbandonedCartsItems, '<strong>', visitorData.totalAbandonedCartsRevenue|money(idSite), '</strong>')|raw }}{%- endif -%}
|
||||
{%- if visitorData.totalAbandonedCarts|default(0) > 0 %} {{ 'Live_AbandonedCartSummary'|translate('<strong>' ~ visitorData.totalAbandonedCarts, '</strong>', '<strong>' ~ visitorData.totalAbandonedCartsItems, '</strong>', '<strong>' ~ visitorData.totalAbandonedCartsRevenue|money(idSite), '</strong>')|raw }}{%- endif -%}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if visitorData.totalSearches|default(0) %}
|
||||
|
|
@ -54,7 +73,7 @@
|
|||
</p>
|
||||
{% endif %}
|
||||
{% if visitorData.averagePageGenerationTime is defined %}
|
||||
<p title="{{ 'Live_CalculatedOverNPageViews'|translate(visitorData.totalPageViews) }}">
|
||||
<p title="{{ 'Live_CalculatedOverNPageViews'|translate(visitorData.totalPageViewsWithTiming) }}">
|
||||
{{ 'Live_AveragePageGenerationTime'|translate('<strong>' ~ visitorData.averagePageGenerationTime ~ 's</strong>')|raw }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
|
@ -65,18 +84,18 @@
|
|||
<div>
|
||||
<h1>{% if visitorData.visitsAggregated == 100 %}{{ 'General_Visit'|translate }}# 100{% else %}{{ 'Live_FirstVisit'|translate }}{% endif %}</h1>
|
||||
<div>
|
||||
<p><strong>{{ visitorData.firstVisit.prettyDate }}</strong><span> - {{ 'UserCountryMap_DaysAgo'|translate(visitorData.firstVisit.daysAgo) }}</span></p>
|
||||
<p><span>{{ 'General_FromReferrer'|translate }}:</span>
|
||||
<strong {% if visitorData.firstVisit.referrerType == 'search' and '(' not in visitorData.firstVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.firstVisit.referralSummary }}</strong></p>
|
||||
<p><strong>{{ visitorData.firstVisit.prettyDate }}</strong> - {{ 'UserCountryMap_DaysAgo'|translate(visitorData.firstVisit.daysAgo) }}</p>
|
||||
<p>
|
||||
{{ 'General_FromReferrer'|translate }}<strong {% if visitorData.firstVisit.referrerType == 'search' and '(' not in visitorData.firstVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.firstVisit.referralSummary }}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
{% if visitorData.lastVisits.getRowsCount() != 1 %}
|
||||
<div>
|
||||
<h1>{{ 'Live_LastVisit'|translate }}</h1>
|
||||
<div>
|
||||
<p><strong>{{ visitorData.lastVisit.prettyDate }}</strong><span> - {{ 'UserCountryMap_DaysAgo'|translate(visitorData.lastVisit.daysAgo) }}</span></p>
|
||||
<p><span>{{ 'General_FromReferrer'|translate }}:</span>
|
||||
<strong {% if visitorData.lastVisit.referrerType == 'search' and '(' not in visitorData.lastVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.lastVisit.referralSummary }}</strong></p>
|
||||
<p><strong>{{ visitorData.lastVisit.prettyDate }}</strong> - {{ 'UserCountryMap_DaysAgo'|translate(visitorData.lastVisit.daysAgo) }}</p>
|
||||
<p>
|
||||
{{ 'General_FromReferrer'|translate }}<strong {% if visitorData.lastVisit.referrerType == 'search' and '(' not in visitorData.lastVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.lastVisit.referralSummary }}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
@ -117,7 +136,7 @@
|
|||
|
||||
{{- 'General_XFromY'|translate(entryVisits, entryCountry)|raw -}}{% if not loop.last %}, {% endif %}
|
||||
{%- endfor %}
|
||||
<a class="visitor-profile-show-map" href="#" {% if userCountryMapUrl|default('') is empty %}style="display:none"{% endif %}>({{ 'Live_ShowMap'|translate|replace({' ': ' '})|raw }})</a> <img class="loadingPiwik" style="display:none;" src="plugins/Zeitgeist/images/loading-blue.gif"/>
|
||||
<a class="visitor-profile-show-map" href="#" {% if userCountryMapUrl|default('') is empty %}style="display:none"{% endif %}>({{ 'Live_ShowMap'|translate|replace({' ': ' '})|raw }})</a> <img class="loadingPiwik" style="display:none;" src="plugins/Morpheus/images/loading-blue.gif"/>
|
||||
</p>
|
||||
<div class="visitor-profile-map" style="display:none" data-href="{{ userCountryMapUrl|default('') }}">
|
||||
</div>
|
||||
|
|
@ -134,8 +153,8 @@
|
|||
</ol>
|
||||
</div>
|
||||
<div class="visitor-profile-more-info">
|
||||
{% if visitorData.lastVisits.getRowsCount() >= constant("Piwik\\Plugins\\Live\\API::VISITOR_PROFILE_MAX_VISITS_TO_SHOW") %}
|
||||
<a href="#">{{ 'Live_LoadMoreVisits'|translate }}</a> <img class="loadingPiwik" style="display:none;" src="plugins/Zeitgeist/images/loading-blue.gif"/>
|
||||
{% if visitorData.lastVisits.getRowsCount() >= constant("Piwik\\Plugins\\Live\\VisitorProfile::VISITOR_PROFILE_MAX_VISITS_TO_SHOW") %}
|
||||
<a href="#">{{ 'Live_LoadMoreVisits'|translate }}</a> <img class="loadingPiwik" style="display:none;" src="plugins/Morpheus/images/loading-blue.gif"/>
|
||||
{% else %}
|
||||
<span class="visitor-profile-no-visits">{{ 'Live_NoMoreVisits'|translate }}</span>
|
||||
{% endif %}
|
||||
|
|
@ -146,4 +165,5 @@
|
|||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function() { require('piwik/UI').VisitorProfileControl.initElements(); });
|
||||
</script>
|
||||
</script>
|
||||
{% endif %}
|
||||
|
|
|
|||
|
|
@ -35,15 +35,15 @@
|
|||
|
||||
{% spaceless %}
|
||||
<div class="visitsLiveFooter">
|
||||
<a title="Pause Live!" href="javascript:void(0);" onclick="onClickPause();">
|
||||
<img id="pauseImage" border="0" src="plugins/Live/images/pause_disabled.gif" />
|
||||
<a title="{{ 'Live_OnClickPause'|translate('Live_VisitorsInRealTime'|translate) }}" href="javascript:void(0);" onclick="onClickPause();">
|
||||
<img id="pauseImage" border="0" src="plugins/Live/images/pause.gif" />
|
||||
</a>
|
||||
<a title="Start Live!" href="javascript:void(0);" onclick="onClickPlay();">
|
||||
<img id="playImage" border="0" src="plugins/Live/images/play.gif" />
|
||||
<a title="{{ 'Live_OnClickStart'|translate('Live_VisitorsInRealTime'|translate) }}" href="javascript:void(0);" onclick="onClickPlay();">
|
||||
<img id="playImage" style="display: none;" border="0" src="plugins/Live/images/play.gif" />
|
||||
</a>
|
||||
{% if not disableLink %}
|
||||
|
||||
<a class="rightLink" href="javascript:broadcast.propagateAjax('module=Live&action=getVisitorLog')">{{ 'Live_LinkVisitorLog'|translate }}</a>
|
||||
<a class="rightLink" href="javascript:broadcast.propagateAjax('module=Live&action=indexVisitorLog')">{{ 'Live_LinkVisitorLog'|translate }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endspaceless %}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<h2 piwik-enriched-headline>{% if filterEcommerce %}{{ 'Goals_EcommerceLog'|translate }}{% else %}{{ 'Live_VisitorLog'|translate }}{% endif %}</h2>
|
||||
<h2 piwik-enriched-headline>{{ 'Live_VisitorLog'|translate }}</h2>
|
||||
|
||||
{{ visitorLog|raw }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue