update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit d885a4baa9
5833 changed files with 418860 additions and 226988 deletions

View file

@ -1,50 +0,0 @@
{% extends 'admin.twig' %}
{% import '@CorePluginsAdmin/macros.twig' as pluginsMacro %}
{% block content %}
<div class="pluginslistActionBar">
<h2 piwik-enriched-headline
feature-name="{{ 'CorePluginsAdmin_Marketplace'|translate }}"
>{{ 'CorePluginsAdmin_TeaserExtendPiwikByPlugin'|translate }}</h2>
<div class="infoBox">
{{ 'CorePluginsAdmin_BeCarefulUsingPlugins'|translate }}
</div>
{% include "@CorePluginsAdmin/browsePluginsActions.twig" %}
</div>
{% if not isSuperUser %}
<div class="pluginslistNonSuperUserHint">
{{ 'CorePluginsAdmin_NotAllowedToBrowseMarketplacePlugins'|translate }}
</div>
{% endif %}
<div class="pluginslist">
{% if plugins|length %}
{% for plugin in plugins %}
<div class="plugin">
<div class="content" data-pluginName="{{ plugin.name }}">
{% include "@CorePluginsAdmin/pluginOverview.twig" %}
</div>
<div class="footer" data-pluginName="{{ plugin.name }}">
{% if plugin.featured %}
{{ pluginsMacro.featuredIcon('right') }}
{% endif %}
{% include "@CorePluginsAdmin/pluginMetadata.twig" %}
</div>
</div>
{% endfor %}
{% else %}
{{ 'CorePluginsAdmin_NoPluginsFound'|translate }}
{% endif %}
</div>
{% endblock %}

View file

@ -1,12 +0,0 @@
<div class="sort">
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}" {% if 'popular' == sort %}class="active"{% endif %}>{{ 'CorePluginsAdmin_SortByPopular'|translate }}</a>
|
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}" {% if 'newest' == sort %}class="active"{% endif %}>{{ 'CorePluginsAdmin_SortByNewest'|translate }}</a>
|
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}" {% if 'alpha' == sort %}class="active"{% endif %}>{{ 'CorePluginsAdmin_SortByAlpha'|translate }}</a>
|
<form action="{{ linkTo({'sort': ''}) }}" method="POST">
<input value="{{ query }}" placeholder="{{ 'General_Search'|translate }}" type="text" name="query"/>
<button type="submit">{{ 'General_Search'|translate }}</button>
</form>
</div>

View file

@ -1,45 +0,0 @@
{% extends 'admin.twig' %}
{% block content %}
<div class="pluginslistActionBar">
<h2 piwik-enriched-headline
feature-name="{{ 'CorePluginsAdmin_Marketplace'|translate }}"
>{{ 'CorePluginsAdmin_TeaserExtendPiwikByTheme'|translate }}</h2>
<div class="infoBox">
{{ 'CorePluginsAdmin_BeCarefulUsingThemes'|translate }}
</div>
{% include "@CorePluginsAdmin/browsePluginsActions.twig" %}
</div>
{% if not isSuperUser %}
<div class="pluginslistNonSuperUserHint">
{{ 'CorePluginsAdmin_NotAllowedToBrowseMarketplaceThemes'|translate }}
</div>
{% endif %}
<div class="pluginslist themes">
{% if plugins|length %}
{% for plugin in plugins %}
<div class="plugin">
<div class="content" data-pluginName="{{ plugin.name }}">
{% include "@CorePluginsAdmin/themeOverview.twig" %}
</div>
<div class="footer" data-pluginName="{{ plugin.name }}">
{% include "@CorePluginsAdmin/pluginMetadata.twig" %}
</div>
</div>
{% endfor %}
{% else %}
{{ 'CorePluginsAdmin_NoThemesFound'|translate }}
{% endif %}
</div>
{% endblock %}

View file

@ -1,70 +0,0 @@
{% extends 'admin.twig' %}
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% block content %}
<div class="extendPlatform">
<div class="ui-confirm" id="installPluginByUpload">
<h2>{{ 'CorePluginsAdmin_TeaserExtendPiwikByUpload'|translate }}</h2>
<p class="description"> {{ 'CorePluginsAdmin_AllowedUploadFormats'|translate }} </p>
<form enctype="multipart/form-data"
method="post"
id="uploadPluginForm"
action="{{ linkTo({'action':'uploadPlugin', 'nonce': installNonce}) }}">
<input type="file" name="pluginZip">
<br />
<input class="startUpload" type="submit" value="{{ 'CorePluginsAdmin_UploadZipFile'|translate }}">
</form>
</div>
<div class="introduction">
<h2 piwik-enriched-headline
feature-name="{{ 'CorePluginsAdmin_Marketplace'|translate }}"
>{{ 'CorePluginsAdmin_TeaserExtendPiwik'|translate }}</h2>
<p>{{ 'CorePluginsAdmin_DownloadAndInstallPluginsFromMarketplace'|translate("<a href='?module=Proxy&action=redirect&url=http://plugins.piwik.org/' target='_blank'>", "</a>")|raw }}</p>
{% set marketplaceSellPluginSubject = 'CorePluginsAdmin_MarketplaceSellPluginSubject'|translate %}
<em>{{ 'CorePluginsAdmin_GetEarlyAccessForPaidPlugins'|translate("<a href='mailto:hello@piwik.org?subject=" ~ marketplaceSellPluginSubject ~ "'>", "</a>")|raw }}</em>
</div>
<div>
<div class="byPlugins">
<h3 class="header">{{ 'CorePluginsAdmin_GetNewFunctionality'|translate }}</h3>
<span class="callToAction">{{ 'CorePluginsAdmin_ByInstallingNewPluginFromMarketplace'|translate("<a href=" ~ linkTo({'action':'browsePlugins', 'sort': ''}) ~ ">", "</a>")|raw }}</span>
<p>
<a href="{{ linkTo({'action':'browsePlugins', 'sort': ''}) }}"><img class="teaserImage" title="{{ 'CorePluginsAdmin_InstallNewPlugins'|translate }}" alt="{{ 'CorePluginsAdmin_InstallNewPlugins'|translate }}" src="plugins/CorePluginsAdmin/images/plugins.png"/></a>
</p>
<span class="callToAction">
{{ 'CorePluginsAdmin_ByWritingOwnPlugin'|translate('<a href="http://developer.piwik.org/guides/getting-started-part-1" target="_blank">', '</a>')|raw }}
{% if isSuperUser %}
<br/>{{ 'CorePluginsAdmin_OrByUploadingAPlugin'|translate('<a href="#" class="uploadPlugin">', '</a>')|raw }}
{% endif %}
</span>
</div>
<div class="byThemes">
<h3 class="header">{{ 'CorePluginsAdmin_EnjoyAnotherLookAndFeelOfThemes'|translate }}</h3>
<span class="callToAction">{{ 'CorePluginsAdmin_ByInstallingNewThemeFromMarketplace'|translate("<a href=" ~ linkTo({'action':'browseThemes', 'sort': ''}) ~ ">", "</a>")|raw }}</span>
<p>
<a href="{{ linkTo({'action':'browseThemes', 'sort': ''}) }}"><img class="teaserImage" alt="{{ 'CorePluginsAdmin_InstallNewThemes'|translate }}" title="{{ 'CorePluginsAdmin_InstallNewThemes'|translate }}" src="plugins/CorePluginsAdmin/images/themes.png"/></a>
</p>
<span class="callToAction">
{{ 'CorePluginsAdmin_ByDesigningOwnTheme'|translate('<a href="http://developer.piwik.org/guides/theming" target="_blank">', '</a>')|raw }}
{% if isSuperUser %}
<br />{{ 'CorePluginsAdmin_OrByUploadingATheme'|translate('<a href="#" class="uploadPlugin">', '</a>')|raw }}
{% endif %}
</span>
</div>
</div>
</div>
{% endblock %}

View file

@ -13,15 +13,15 @@
</thead>
<tbody id="plugins">
{% for name,plugin in pluginsHavingUpdate %}
<tr {% if plugin.isActivated %}class="active-plugin"{% else %}class="inactive-plugin"{% endif %}>
<tr {% if plugin.isActivated|default(false) %}class="active-plugin"{% else %}class="inactive-plugin"{% endif %}>
<td class="name">
<a href="javascript:void(0);" data-pluginName="{{ plugin.name|e('html_attr') }}">
<a href="javascript:void(0);" data-pluginName="{{ plugin.name|e('html_attr') }}" class="plugin-details">
{{ plugin.name }}
</a>
</td>
<td class="vers">
{% if plugin.repositoryChangelogUrl %}
<a href="javascript:void(0);" title="{{ 'CorePluginsAdmin_Changelog'|translate }}" data-activePluginTab="changelog" data-pluginName="{{ plugin.name|e('html_attr') }}">{{ plugin.currentVersion }} => {{ plugin.latestVersion }}</a>
<a href="javascript:void(0);" title="{{ 'CorePluginsAdmin_Changelog'|translate }}" class="plugin-details" data-activePluginTab="changelog" data-pluginName="{{ plugin.name|e('html_attr') }}">{{ plugin.currentVersion }} => {{ plugin.latestVersion }}</a>
{% else %}
{{ plugin.currentVersion }} => {{ plugin.latestVersion }}
{% endif %}
@ -53,7 +53,7 @@
{% endmacro %}
{% macro pluginDeveloper(owner) %}
{% if 'piwik' == owner %}<img title="Piwik" alt="Piwik" style="padding-bottom:2px;height:11px;" src="plugins/Zeitgeist/images/logo-marketplace.png"/>{% else %}{{ owner }}{% endif %}
{% if 'piwik' == owner %}<img title="Piwik" alt="Piwik" style="padding-bottom:2px;height:11px;" src="plugins/Morpheus/images/logo-marketplace.png"/>{% else %}{{ owner }}{% endif %}
{% endmacro %}
{% macro featuredIcon(align='') %}
@ -96,13 +96,13 @@
{% macro missingRequirementsPleaseUpdateNotice(plugin) %}
{% if plugin.missingRequirements and 0 < plugin.missingRequirements|length %}
{% for req in plugin.missingRequirements -%}
<p class="missingRequirementsNotice">
<div class="alert alert-danger">
{% set requirement = req.requirement|capitalize %}
{% if 'Php' == requirement %}
{% set requirement = 'PHP' %}
{% endif %}
{{ 'CorePluginsAdmin_MissingRequirementsNotice'|translate(requirement, req.actualVersion, req.requiredVersion) }}
</p>
</div>
{%- endfor %}
{% endif %}
{% endmacro %}
@ -126,7 +126,6 @@
{% endif %}
{% endmacro %}
{% macro tablePlugins(pluginsInfo, pluginNamesHavingSettings, activateNonce, deactivateNonce, uninstallNonce, isTheme, marketplacePluginNames, displayAdminLinks) %}
<div id="confirmUninstallPlugin" class="ui-confirm">
@ -151,13 +150,13 @@
</thead>
<tbody id="plugins">
{% for name,plugin in pluginsInfo %}
{% set isZeitgeist = isTheme and name == 'Zeitgeist' %}
{% set isDefaultTheme = isTheme and name == 'Morpheus' %}
{% if (plugin.alwaysActivated is defined and not plugin.alwaysActivated) or isTheme %}
<tr {% if plugin.activated %}class="active-plugin"{% else %}class="inactive-plugin"{% endif %} data-filter-status="{% if plugin.activated %}active{% else %}inactive{% endif %}" data-filter-origin="{% if plugin.isCorePlugin %}core{% else %}noncore{% endif %}">
<td class="name" style="white-space:nowrap;">
<td class="name">
<a name="{{ name|e('html_attr') }}"></a>
{% if not plugin.isCorePlugin and name in marketplacePluginNames -%}
<a href="javascript:void(0);"
<a href="javascript:void(0);" class="plugin-details"
data-pluginName="{{ name|e('html_attr') }}"
>{{ name }}</a>
{%- else %}
@ -167,7 +166,7 @@
{% if name in pluginNamesHavingSettings %}
<br /><br />
<a href="{{ linkTo({'module':'CoreAdminHome', 'action': 'pluginSettings'}) }}#{{ name|e('html_attr') }}" class="settingsLink">{{ 'General_Settings'|translate }}</a>
<a href="{{ linkTo({'module':'CoreAdminHome', 'action': 'adminPluginSettings'}) }}#{{ name|e('html_attr') }}" class="settingsLink">{{ 'General_Settings'|translate }}</a>
{% endif %}
</td>
<td class="desc">
@ -185,13 +184,38 @@
'http://piwik.org', 'http://www.piwik.org', 'http://piwik.org/', 'http://www.piwik.org/'
] %}
<span class="plugin-homepage">
<a href="{{ plugin.info.homepage }}">({{ 'CorePluginsAdmin_PluginHomepage'|translate|replace({' ': '&nbsp;'})|raw }})</a>
<a target="_blank" href="{{ plugin.info.homepage }}">({{ 'CorePluginsAdmin_PluginHomepage'|translate|replace({' ': '&nbsp;'})|raw }})</a>
</span>
{% endif %}
{% if plugin.info.donate is defined and plugin.info.donate|length %}
<div class="plugin-donation">
{{ 'CorePluginsAdmin_LikeThisPlugin'|translate }} <a href="javascript:;" class="plugin-donation-link" data-overlay-id="overlay-{{ name|escape('html_attr') }}">{{ 'CorePluginsAdmin_ConsiderDonating'|translate }}</a>
<div id="overlay-{{ name|escape('html_attr') }}" class="donation-overlay ui-confirm" title="{{ 'CorePluginsAdmin_LikeThisPlugin'|translate }}">
<p>{{ 'CorePluginsAdmin_CommunityContributedPlugin'|translate }}</p>
<p>{{ 'CorePluginsAdmin_ConsiderDonatingCreatorOf'|translate("<b>" ~ name ~ "</b>")|raw }}</p>
<div class="donation-links">
{% if plugin.info.donate.paypal is defined and plugin.info.donate.paypal %}
<a class="donation-link paypal" target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&item_name=Piwik%20Plugin%20{{ name|escape('url') }}&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted&business={{ plugin.info.donate.paypal|escape('url') }}"><img src="plugins/CorePluginsAdmin/images/paypal_donate.jpg" height="30"/></a>
{% endif %}
{% if plugin.info.donate.flattr is defined and plugin.info.donate.flattr %}
<a class="donation-link flattr" target="_blank" href="{{ plugin.info.donate.flattr }}"><img class="alignnone" title="Flattr" alt="" src="plugins/CorePluginsAdmin/images/flattr.png" height="29" /></a>
{% endif %}
{% if plugin.info.donate.bitcoin is defined and plugin.info.donate.bitcoin %}
<div class="donation-link bitcoin">
<span>Donate Bitcoins to:</span>
<a href="bitcoin:{{ plugin.info.donate.bitcoin|escape('url') }}">{{ plugin.info.donate.bitcoin }}</a>
</div>
{% endif %}
</div>
<input role="no" type="button" value="{{ 'General_Close'|translate }}"/>
</div>
</div>
{% endif %}
</div>
{% if plugin.info.license is defined %}
<div class="plugin-license">
{% if plugin.info.license_homepage is defined %}<a title="{{ 'CorePluginsAdmin_LicenseHomepage'|translate }}" target="_blank" href="{{ plugin.info.license_homepage }}">{% endif %}{{ plugin.info.license }}{% if plugin.info.license_homepage is defined %}</a>{% endif %}
{% if plugin.info.license_homepage is defined %}<a title="{{ 'CorePluginsAdmin_LicenseHomepage'|translate }}" rel="noreferrer" target="_blank" href="{{ plugin.info.license_homepage }}">{% endif %}{{ plugin.info.license }}{% if plugin.info.license_homepage is defined %}</a>{% endif %}
</div>
{% endif %}
{% if plugin.info.authors is defined %}
@ -201,7 +225,7 @@
{% spaceless %}
{% for author in plugin.info.authors if author.name %}
{% if author.homepage is defined %}
<a title="{{ 'CorePluginsAdmin_AuthorHomepage'|translate }}" href="{{ author.homepage }}" target="_blank">{{ author.name }}</a>
<a title="{{ 'CorePluginsAdmin_AuthorHomepage'|translate }}" href="{{ author.homepage }}" rel="noreferrer" target="_blank">{{ author.name }}</a>
{% else %}
{{ author.name }}
{% endif %}
@ -214,8 +238,8 @@
</div>
{% endif %}
</td>
<td class="status" {% if isZeitgeist %}style="border-left-width:0px;"{% endif %}>
{% if not isZeitgeist -%}
<td class="status" {% if isDefaultTheme %}style="border-left-width:0px;"{% endif %}>
{% if not isDefaultTheme -%}
{% if plugin.activated %}
{{ 'CorePluginsAdmin_Active'|translate }}
@ -228,8 +252,8 @@
</td>
{% if displayAdminLinks %}
<td class="togl action-links" {% if isZeitgeist %}style="border-left-width:0px;"{% endif %}>
{% if not isZeitgeist -%}
<td class="togl action-links" {% if isDefaultTheme %}style="border-left-width:0px;"{% endif %}>
{% if not isDefaultTheme -%}
{% if plugin.invalid is defined or plugin.alwaysActivated %}
-

View file

@ -0,0 +1,77 @@
{% extends mode is defined and mode == 'user' ? "user.twig" : "admin.twig" %}
{% import '@CorePluginsAdmin/macros.twig' as pluginsMacro %}
{% set title %}{{ 'CorePluginsAdmin_Marketplace'|translate }}{% endset %}
{% block content %}
<div class="marketplace">
<h2 piwik-enriched-headline feature-name="{{ 'CorePluginsAdmin_Marketplace'|translate }}">
{{ title }}
</h2>
<ul class="nav nav-pills">
<li {% if not showThemes %}class="active"{% endif %}>
<a href="{{ linkTo({'show': 'plugins'}) }}">{{ 'General_Plugins'|translate }}</a>
</li>
<li {% if showThemes %}class="active"{% endif %}>
<a href="{{ linkTo({'show': 'themes'}) }}">{{ 'CorePluginsAdmin_Themes'|translate }}</a>
</li>
</ul>
<div class="marketplace-max-width">
<p>
{% if showThemes %}
{{ 'CorePluginsAdmin_ThemesDescription'|translate }}
{{ 'CorePluginsAdmin_InstallingNewPluginViaMarketplaceOrUpload'|translate('<a href="#" class="uploadPlugin">','</a>')|raw }}
<br/>
{{ 'CorePluginsAdmin_BeCarefulUsingThemes'|translate }}
{% else %}
{{ 'CorePluginsAdmin_PluginsExtendPiwik'|translate }}
{{ 'CorePluginsAdmin_InstallingNewPluginViaMarketplaceOrUpload'|translate('<a href="#" class="uploadPlugin">','</a>')|raw }}
<br/>
{{ 'CorePluginsAdmin_BeCarefulUsingPlugins'|translate }}
{% endif %}
</p>
{% if not isSuperUser %}
<p>
{% if showThemes %}
{{ 'CorePluginsAdmin_NotAllowedToBrowseMarketplaceThemes'|translate }}
{% else %}
{{ 'CorePluginsAdmin_NotAllowedToBrowseMarketplacePlugins'|translate }}
{% endif %}
</p>
{% endif %}
</div>
<hr/>
<div class="ui-confirm" id="installPluginByUpload">
<h2>{{ 'CorePluginsAdmin_TeaserExtendPiwikByUpload'|translate }}</h2>
<p class="description"> {{ 'CorePluginsAdmin_AllowedUploadFormats'|translate }} </p>
<form enctype="multipart/form-data" method="post" id="uploadPluginForm"
action="{{ linkTo({'action':'uploadPlugin', 'nonce': installNonce}) }}">
<input type="file" name="pluginZip">
<br />
<input class="startUpload" type="submit" value="{{ 'CorePluginsAdmin_UploadZipFile'|translate }}">
</form>
</div>
{% include '@CorePluginsAdmin/marketplace/plugin-list.twig' %}
<div class="footer-message">
{% set marketplaceSellPluginSubject = 'CorePluginsAdmin_MarketplaceSellPluginSubject'|translate %}
{{ 'CorePluginsAdmin_GetEarlyAccessForPaidPlugins'|translate("<a href='mailto:hello@piwik.org?subject=" ~ marketplaceSellPluginSubject ~ "'>", "</a>")|raw }}
<br/>
{{ 'CorePluginsAdmin_DevelopersLearnHowToDevelopPlugins'|translate('<a href="?module=Proxy&action=redirect&url=http://developer.piwik.org/plugins" target="_blank">', '</a>')|raw }}
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,110 @@
<div class="row marketplace-max-width">
{# Hide filters and search for themes because we don't have many of them #}
{% if not showThemes %}
<div class="col-sm-12 clearfix">
<form action="{{ linkTo({'sort': ''}) }}" method="post" class="plugin-search">
<input value="{{ query }}" placeholder="{{ 'General_Search'|translate }} {{ plugins|length }} {{ 'General_Plugins'|translate|lcfirst }}..." type="text" name="query"/>
<button type="submit">{{ 'General_Search'|translate }}</button>
</form>
<ul class="nav nav-pills">
<li {% if 'popular' == sort %}class="active"{% endif %}>
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}">
{{ 'CorePluginsAdmin_SortByPopular'|translate }}
</a>
</li>
<li {% if 'newest' == sort %}class="active"{% endif %}>
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}">
{{ 'CorePluginsAdmin_SortByNewest'|translate }}
</a>
</li>
<li {% if 'alpha' == sort %}class="active"{% endif %}>
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}">
{{ 'CorePluginsAdmin_SortByAlpha'|translate }}
</a>
</li>
</ul>
</div>
{% endif %}
{% for plugin in plugins %}
<div class="col-md-4">
<div class="panel plugin">
<div class="panel-heading">
<h3 class="panel-title panel-title-block" title="{{ 'General_MoreDetails'|translate }}">
<a class="plugin-details" href="#" data-pluginName="{{ plugin.name }}">{{ plugin.name }}</a>
</h3>
</div>
<div class="panel-body">
<p class="description">
{{ plugin.description }}
<a class="more plugin-details" href="#" data-pluginName="{{ plugin.name }}" title="{{ 'General_MoreDetails'|translate }}">
&rsaquo; {{ 'General_MoreLowerCase'|translate }}</a>
</p>
{% if showThemes %}
{# Screenshot for themes #}
<a class="more plugin-details" href="#" data-pluginName="{{ plugin.name }}">
<img title="{{ 'General_MoreDetails'|translate }}"
class="preview" src="{{ plugin.screenshots|first }}?w=250&h=150"/></a>
{% endif %}
<ul class="metadata">
<li>
{{ 'CorePluginsAdmin_Version'|translate }}: {{ plugin.latestVersion }}
{% if plugin.canBeUpdated %}
<a class="plugin-details update-available" href="#" data-pluginName="{{ plugin.name }}" data-activePluginTab="changelog"
title="{{ 'CorePluginsAdmin_PluginUpdateAvailable'|translate(plugin.currentVersion, plugin.latestVersion) }}">
{{ 'CorePluginsAdmin_NewVersion'|translate }}</a>
{% endif %}
</li>
<li>{{ 'CorePluginsAdmin_Updated'|translate }}: {{ plugin.lastUpdated }}</li>
<li>{{ 'General_Downloads'|translate }}: {{ plugin.numDownloads }}</li>
<li>{{ 'CorePluginsAdmin_Developer'|translate }}: {{ pluginsMacro.pluginDeveloper(plugin.owner) }}</li>
</ul>
</div>
{% if isSuperUser %}
<div class="panel-footer" data-pluginName="{{ plugin.name }}">
{% if plugin.canBeUpdated and 0 == plugin.missingRequirements|length %}
<a class="btn btn-block"
href="{{ linkTo({'action':'updatePlugin', 'pluginName': plugin.name, 'nonce': updateNonce}) }}">
{{ 'CoreUpdater_UpdateTitle'|translate }}
</a>
{% elseif plugin.isInstalled %}
<button class="btn btn-noop btn-block">
{{ 'General_Installed'|translate }}
</button>
{% elseif plugin.missingRequirements|length > 0 %}
<a class="btn btn-link btn-block plugin-details" href="#" data-pluginName="{{ plugin.name }}" title="{{ 'General_MoreDetails'|translate }}">
{{ 'CorePluginsAdmin_CannotInstall'|translate }}
</a>
{% else %}
<a href="{{ linkTo({'action': 'installPlugin', 'pluginName': plugin.name, 'nonce': installNonce}) }}"
class="btn btn-block">
{{ 'CorePluginsAdmin_ActionInstall'|translate }}
</a>
{% endif %}
</div>
{% endif %}
</div>
</div>
{% endfor %}
{% if plugins|length == 0 %}
{% if showThemes %}
{{ 'CorePluginsAdmin_NoThemesFound'|translate }}
{% else %}
{{ 'CorePluginsAdmin_NoPluginsFound'|translate }}
{% endif %}
{% endif %}
</div>

View file

@ -68,9 +68,10 @@
<div id="tabs-changelog">
{{ pluginsMacro.missingRequirementsPleaseUpdateNotice(plugin) }}
{% if plugin.canBeUpdated %}
<p class="updateAvailableNotice">{{ 'CorePluginsAdmin_PluginUpdateAvailable'|translate(plugin.currentVersion, plugin.latestVersion) }}
{% if plugin.repositoryChangelogUrl %}<a target="_blank" href="{{ plugin.repositoryChangelogUrl }}">{{ 'CorePluginsAdmin_ViewRepositoryChangelog'|translate }}</a>{% endif %}
</p>
<div class="alert alert-warning">
{{ 'CorePluginsAdmin_PluginUpdateAvailable'|translate(plugin.currentVersion, plugin.latestVersion) }}
{% if plugin.repositoryChangelogUrl %}<a rel="noreferrer" target="_blank" href="{{ plugin.repositoryChangelogUrl }}">{{ 'CorePluginsAdmin_ViewRepositoryChangelog'|translate }}</a>{% endif %}
</div>
{% endif %}
{% if latestVersion.readmeHtml.changelog %}

View file

@ -1,9 +0,0 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
<hr class="metadataSeparator"/>
<ul class="metadata">
<li class="odd">{{ 'CorePluginsAdmin_Version'|translate }}: <strong>{{ plugin.latestVersion }}</strong></li>
<li class="even">{{ 'CorePluginsAdmin_Updated'|translate }}: <strong>{{ plugin.lastUpdated }}</strong></li>
<li class="odd">{{ 'General_Downloads'|translate }}: <strong>{{ plugin.numDownloads }}</strong></li>
<li class="even">{{ 'CorePluginsAdmin_Developer'|translate }}: <strong>{{ plugins.pluginDeveloper(plugin.owner) }}</strong></li>
</ul>

View file

@ -1,30 +0,0 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% if isSuperUser %}
{% if plugin.canBeUpdated and 0 == plugin.missingRequirements|length %}
<a class="update"
href="{{ linkTo({'action':'updatePlugin', 'pluginName': plugin.name, 'nonce': updateNonce}) }}"
>{{ 'CoreUpdater_UpdateTitle'|translate }}</a>
{% elseif plugin.isInstalled %}
<span class="install">{{ 'General_Installed'|translate }}</span>
{% elseif 0 < plugin.missingRequirements|length %}
{% else %}
<a href="{{ linkTo({'action': 'installPlugin', 'pluginName': plugin.name, 'nonce': installNonce}) }}"
class="install">{{ 'CorePluginsAdmin_ActionInstall'|translate }}</a>
{% endif %}
{% endif %}
<h3 class="header" title="{{ 'General_MoreDetails'|translate }}">
<a href="javascript:void(0);" class="more">{{ plugin.name }}</a>
</h3>
<p class="description">{{ plugin.description }}
<br />
<a href="javascript:void(0);" title="{{ 'General_MoreDetails'|translate }}" class="more">&gt;&gt; {{ 'General_MoreLowerCase'|translate }}</a>
</p>
{% if plugin.canBeUpdated %}
<p class="updateAvailableNotice" data-activePluginTab="changelog">{{ 'CorePluginsAdmin_PluginUpdateAvailable'|translate(plugin.currentVersion, plugin.latestVersion) }}</p>
{% endif %}
{{ plugins.missingRequirementsPleaseUpdateNotice(plugin) }}

View file

@ -2,8 +2,10 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% set title %}{{ 'CorePluginsAdmin_PluginsManagement'|translate }}{% endset %}
{% block content %}
<div style="max-width:980px;">
<div class="pluginsManagement">
{% if pluginsHavingUpdate|length %}
<h2>{{ pluginsHavingUpdate|length }} Update(s) available</h2>
@ -13,14 +15,20 @@
{{ plugins.tablePluginUpdates(pluginsHavingUpdate, updateNonce, activateNonce, 0) }}
{% endif %}
<h2 piwik-enriched-headline>{{ 'CorePluginsAdmin_PluginsManagement'|translate }}</h2>
<h2 piwik-enriched-headline>{{ title }}</h2>
<p>{{ 'CorePluginsAdmin_MainDescription'|translate }}
<p>{{ 'CorePluginsAdmin_PluginsExtendPiwik'|translate }}
{{ 'CorePluginsAdmin_OncePluginIsInstalledYouMayActivateHere'|translate }}
{% if not isPluginsAdminEnabled %}
<br/>{{ 'CorePluginsAdmin_DoMoreContactPiwikAdmins'|translate }}
{% endif %}
{% if isMarketplaceEnabled %}
<br />
{{ 'CorePluginsAdmin_ChangeLookByManageThemes'|translate('<a href="' ~ linkTo({'action': 'themes'}) ~'">', '</a>')|raw }}
{% endif %}
</p>
{{ plugins.pluginsFilter(false, isMarketplaceEnabled) }}

View file

@ -1,5 +1,6 @@
<html>
<head>
<meta name="robots" content="noindex,nofollow">
<style type="text/css">
html, body {
background-color: white;
@ -34,20 +35,43 @@
in
<pre>{{ lastError.file }} line {{ lastError.line }}</pre>
</p>
<hr>
<h3>Troubleshooting</h3>
Follow these steps to solve the issue or report it to the team:
<ul>
<li>
If you have just updated Piwik to the latest version, please try to restart your web server.
This will clear the PHP opcache which may solve the problem.
</li>
<li>
If this is the first time you see this error, please try refresh the page.
</li>
<li>
<strong>If this error continues to happen</strong>, we appreciate if you send the
<a href="mailto:hello@piwik.org?subject={{ 'Fatal error in Piwik ' ~ piwikVersion|e('url') }}&body={{ lastError.message|e('url') }}%20in%20{{ lastError.file|e('url') }}%20{{ lastError.line|e('url') }}%20using%20PHP%20{{ constant('PHP_VERSION') }}">error report</a>
to the Piwik team.
</li>
</ul>
<hr/>
{% endif %}
{% if isSuperUser %}
<h3>Further troubleshooting</h3>
<p>
If this error continues to happen, there is a good chance to fix this issue by disabling one or more of
If this error continues to happen, you may be able to fix this issue by disabling one or more of
the Third-Party plugins. You can enable them again in the
<a target="_blank" href="index.php?module=CorePluginsAdmin&action=plugins">Plugins</a> or <a target="_blank" href="index.php?module=CorePluginsAdmin&action=themes">Themes</a> page under
<a rel="noreferrer" target="_blank" href="index.php?module=CorePluginsAdmin&action=plugins">Plugins</a>
or <a target="_blank" href="index.php?module=CorePluginsAdmin&action=themes">Themes</a> page under
settings at any time.
{% if pluginCausesIssue %}
Based on the error message, the issue is probably caused by the plugin <strong>{{ pluginCausesIssue }}</strong>.
{% endif %}
</p>
<table>
{% for pluginName, plugin in plugins if plugin.uninstallable and plugin.activated %}
<tr {% if loop.index is divisibleby(2) %}style="background-color: #eeeeee"{% endif %}>
@ -89,16 +113,9 @@
</table>
{% endif %}
<p>
<br />
We appreciate if you send the
<a href="mailto:hello@piwik.org?subject={{ 'Fatal error in Piwik ' ~ piwikVersion|e('url') }}&body={{ lastError.message|e('url') }}%20in%20{{ lastError.file|e('url') }}%20{{ lastError.line|e('url') }}%20using%20PHP%20{{ constant('PHP_VERSION') }}">error report</a>
to the Piwik team.
</p>
{% elseif isAnonymousUser %}
<p>Please contact the system administrator.</p>
<p>Please contact the system administrator, or login to Piwik to learn more.</p>
{% else %}
<p>

View file

@ -1,30 +0,0 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% if isSuperUser %}
{% if plugin.canBeUpdated and 0 == plugin.missingRequirements|length %}
<a href="{{ linkTo({'action':'updatePlugin', 'pluginName': plugin.name, 'nonce': updateNonce}) }}"
class="update"
>{{ 'CoreUpdater_UpdateTitle'|translate }}</a>
{% elseif plugin.isInstalled %}
<span class="install">{{ 'General_Installed'|translate }}</span>
{% elseif 0 < plugin.missingRequirements|length %}
{% else %}
<a href="{{ linkTo({'action': 'installPlugin', 'pluginName': plugin.name, 'nonce': installNonce}) }}"
class="install">{{ 'CorePluginsAdmin_ActionInstall'|translate }}</a>
{% endif %}
{% endif %}
<h3 class="header" title="{{ 'General_MoreDetails'|translate }}">
<a href="javascript:void(0);" class="more">{{ plugin.name }}</a>
</h3>
<p class="description">{% if plugin.featured %}{{ plugins.featuredIcon('right') }}{% endif %}{{ plugin.description }}</p>
{% if plugin.canBeUpdated %}
<p class="updateAvailableNotice">{{ 'CorePluginsAdmin_PluginUpdateAvailable'|translate(plugin.currentVersion, plugin.latestVersion) }}</p>
{% endif %}
{{ plugins.missingRequirementsPleaseUpdateNotice(plugin) }}
<a href="javascript:void(0);" class="more"><img title="{{ 'General_MoreDetails'|translate }}"
class="preview" src="{{ plugin.screenshots|first }}?w=250&h=250"/></a>

View file

@ -2,18 +2,12 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% set title %}{{ 'CorePluginsAdmin_ThemesManagement'|translate }}{% endset %}
{% block content %}
<div style="max-width:980px;">
{% if pluginsHavingUpdate|length %}
<h2>{{ 'CorePluginsAdmin_NumUpdatesAvailable'|translate(pluginsHavingUpdate|length) }}</h2>
<p>{{ 'CorePluginsAdmin_InfoThemeUpdateIsRecommended'|translate }}</p>
{{ plugins.tablePluginUpdates(pluginsHavingUpdate, updateNonce, true) }}
{% endif %}
<h2 piwik-enriched-headline>{{ 'CorePluginsAdmin_ThemesManagement'|translate }}</h2>
<h2 piwik-enriched-headline>{{ title }}</h2>
<p>{{ 'CorePluginsAdmin_ThemesDescription'|translate }}
{% if otherUsersCount > 0 %}

View file

@ -34,7 +34,7 @@
|
<a href="{{ linkTo({'action': 'themes'}) }}">{{ 'CorePluginsAdmin_Themes'|translate }}</a>
|
<a href="{{ linkTo({'action': 'extend'}) }}">{{ 'CorePluginsAdmin_Marketplace'|translate }}</a></p>
<a href="{{ linkTo({'action': 'marketplace'}) }}">{{ 'CorePluginsAdmin_Marketplace'|translate }}</a></p>
</div>
</div>

View file

@ -19,7 +19,7 @@
|
{% endif %}
<a href="{{ linkTo({'action': 'extend'}) }}">{{ 'CorePluginsAdmin_BackToExtendPiwik'|translate }}</a>
<a href="{{ linkTo({'action': 'marketplace'}) }}">{{ 'CorePluginsAdmin_BackToExtendPiwik'|translate }}</a>
</p>
{% else %}
@ -34,7 +34,7 @@
|
{% endif %}
<a href="{{ linkTo({'action': 'extend'}) }}">{{ 'CorePluginsAdmin_BackToExtendPiwik'|translate }}</a>
<a href="{{ linkTo({'action': 'marketplace'}) }}">{{ 'CorePluginsAdmin_BackToExtendPiwik'|translate }}</a>
</p>
{% endif %}