1
0
قرینه از https://github.com/matomo-org/matomo.git synced 2025-08-21 22:47:43 +00:00
Files
matomo/plugins/Live/templates/getVisitorProfilePopup.twig
Ben Burgess 693643c337 Add campaign tracking parameters for all links within Matomo that link to matomo.org (#21375)
* Add matomo.org link campaign tracking functionality and tests

* Added optional override parameters for trackmatomolink, added new config option to disable matomo.org link campaign tracking, updated tests

* Added twig functions to format external urls, added missing matomo.org subdomains to allow list

* Revert unnecessary extra parameters for externallink twig function in favour of using twig string concatenation

* Update all matomo.org links in twig templates

* Add an externalLink() function for vue.js to easily add campaign parameters to matomo.org urls in the front end

* Update vue.js externalLink() function to support the disable_tracking_matomo_app_links config option

* Attempt to keep linter happy

* More linter tweaks

* Bump stalled tests

* built vue files

* Remove unnecessary domains from externalLink list, add missing type definition, update and fix privacy setting link

* Improve externalLink TypeScript method to use URL object for domain manipulation instead of custom regex

* Make externalLink and externalRawLink TypeScript functions variadic

* built vue files

* Update matomo.org links in vue components with campaign parameters

* Move externalRawLink function to piwik helper to make it available for vanilla JS, update matomo.org links in JS

* Update matomo.org links in PHP classes to add campaign parameters

* Increment version

* Update submodule references

* Fix for infinite loop when processing URLs in config settings

* Update mtm_medium to include 'App.' prefix, linter pacification changes for externalLink

* Fix link formatting in GeoIp2 vue component, update system tests

* built vue files

* Update advertising test, fix missing import in Tour

* UI test fixes for tracking code twig templates and license key formatting

* built vue files

* Bump stalled tests

* Fix missing use statements, remove incorrect custom params from link

* built vue files

* Change update version back to 5.0.0-rc5

* Update plugins/MultiSites/vue/src/Dashboard/Dashboard.vue

Co-authored-by: Michal Kleiner <michal@innocraft.com>

* Update plugins/MultiSites/vue/src/Dashboard/Dashboard.vue

Co-authored-by: Michal Kleiner <michal@innocraft.com>

* Update plugins/MultiSites/vue/src/Dashboard/Dashboard.vue

Co-authored-by: Michal Kleiner <michal@innocraft.com>

* Update plugins/Morpheus/javascripts/piwikHelper.js

Co-authored-by: Michal Kleiner <michal@innocraft.com>

* built vue files

* Add check for _pk_externalRawLink before calling, Fix inconsistent source string

* Fix linter complaint

* built vue files

* Bump stalled tests

* Update submodule references to 5.x-dev branches

* Update visitorgenerator submodule reference to 5.x-dev branche

---------

Co-authored-by: bx80 <bx80@users.noreply.github.com>
Co-authored-by: Michal Kleiner <michal@innocraft.com>
2023-10-24 11:49:38 +13:00

94 خطوط
5.9 KiB
Twig

{% 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 }}"
data-prev-visitor="{{ visitorData.previousVisitorId }}"
tabindex="0">
<div class="visitor-profile-options">
<a href class="visitor-profile-close" title="{{ 'General_Close'|translate }} "></a>
<a href="{{ 'https://matomo.org/docs/user-profile/'|trackmatomolink }}" class="visitor-profile-help" rel="noreferrer"
target="_blank"
title="{{ 'General_ViewDocumentationFor'|translate("Live_VisitorProfile"|translate|ucwords) }}">
</a>
<a href class="visitor-profile-toggle-actions" title="{{ 'Live_ToggleActions'|translate }} "></a>
</div>
<div class="visitor-profile-info">
<div class="visitor-profile-overview">
<div class="visitor-profile-header">
<div class="visitor-profile-avatar">
<img src="{{ visitorData.visitorAvatar|default("plugins/Live/images/unknown_avatar.png") }}"
alt="{{ visitorData.visitorDescription|default('') }}"
title="{{ visitorData.visitorDescription|default('') }}"/>
</div>
<div class="visitor-profile-header-details">
<div class="visitor-profile-headline">
{% if visitorData.previousVisitorId is not empty %}<a class="visitor-profile-prev-visitor"
href="#"
title="{{ 'Live_PreviousVisitor'|translate }}">
&larr;</a>{% endif %}
<h1>
{%- if visitorData.userId is empty %}
{{ 'Live_VisitorProfile'|translate }}
{%- else %}
<span title="{{ 'General_UserId'|translate }}: {{ visitorData.userId|rawSafeDecoded }}">{{ visitorData.userId|rawSafeDecoded }}</span>
{% endif -%}
</h1>
{% if visitorData.nextVisitorId is not empty %}<a class="visitor-profile-next-visitor"
href="#"
title="{{ 'Live_NextVisitor'|translate }}">
&rarr;</a>{% endif %}
</div>
<div class="visitor-profile-latest-visit">
<div class="visitor-profile-id">
<span>{{ 'General_Id'|translate|upper }}</span>
{% if widgetizedLink is defined %}<a class="visitor-profile-widget-link"
href="{{ widgetizedLink }}" target="_blank"
title="{{ 'Widgetize_OpenInNewWindow'|translate }} - {{ 'Live_VisitorProfile'|translate }} {{ 'General_Id'|translate|upper }} {{ visitorData.visitorId }}">{% endif %}
<span>{{ visitorData.visitorId }}</span>
{%- if widgetizedLink is defined %}</a>{% endif %}
<a class="visitor-profile-export" href="{{ exportLink }}" target="_blank"
title="{{ 'General_ExportThisReport'|translate }}">
<span class="icon-export"></span>
</a>
</div>
{{ postEvent('Live.renderVisitorIcons', visitorData.lastVisits|first) }}
</div>
</div>
</div>
{{ profileSummary|raw }}
{{ postEvent('Template.afterVisitorProfileOverview') }}
</div>
<div class="visitor-profile-visits-info">
<div class="visitor-profile-visits-container">
<ol class="visitor-profile-visits">
{% include "@Live/getVisitList.twig" with {'visits': visitorData.lastVisits, 'startCounter': visitorData.totalVisits} %}
</ol>
</div>
<div class="visitor-profile-more-info">
{% 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">
{% if visitorData.hasMoreVisits %}
{{ 'Live_LimitedVisitsShown'|translate('<strong>' ~ visitorData.totalVisits ~ '</strong>')|raw }}
{% else %}
{{ 'Live_NoMoreVisits'|translate }}
{% endif %}
</span>
{% endif %}
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
require('piwik/UI').VisitorProfileControl.initElements();
});
</script>
{% endif %}