Skip to content
Extraits de code Groupes Projets
Valider 0dd0926c rédigé par sgiehl's avatar sgiehl
Parcourir les fichiers

use number formats for values displayed besides sparkline and for evolution data

parent 760ff363
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 44 ajouts et 29 suppressions
...@@ -11,6 +11,7 @@ namespace Piwik\DataTable\Filter; ...@@ -11,6 +11,7 @@ namespace Piwik\DataTable\Filter;
use Piwik\Common; use Piwik\Common;
use Piwik\DataTable; use Piwik\DataTable;
use Piwik\DataTable\Row; use Piwik\DataTable\Row;
use Piwik\NumberFormatter;
use Piwik\Site; use Piwik\Site;
/** /**
...@@ -157,10 +158,10 @@ class CalculateEvolutionFilter extends ColumnCallbackAddColumnPercentage ...@@ -157,10 +158,10 @@ class CalculateEvolutionFilter extends ColumnCallbackAddColumnPercentage
{ {
$number = self::getPercentageValue($currentValue - $pastValue, $pastValue, $quotientPrecision); $number = self::getPercentageValue($currentValue - $pastValue, $pastValue, $quotientPrecision);
if ($appendPercentSign) { if ($appendPercentSign) {
$number = self::appendPercentSign($number); return NumberFormatter::getInstance()->formatPercent($number, $quotientPrecision);
} }
return $number; return NumberFormatter::getInstance()->format($number, $quotientPrecision);
} }
public static function appendPercentSign($number) public static function appendPercentSign($number)
......
...@@ -11,6 +11,7 @@ use Piwik\Common; ...@@ -11,6 +11,7 @@ use Piwik\Common;
use Piwik\Container\StaticContainer; use Piwik\Container\StaticContainer;
use Piwik\DataTable; use Piwik\DataTable;
use Piwik\Intl\Data\Provider\CurrencyDataProvider; use Piwik\Intl\Data\Provider\CurrencyDataProvider;
use Piwik\NumberFormatter;
use Piwik\Piwik; use Piwik\Piwik;
use Piwik\Plugin\Metric; use Piwik\Plugin\Metric;
use Piwik\Plugin\ProcessedMetric; use Piwik\Plugin\ProcessedMetric;
...@@ -98,7 +99,7 @@ class Formatter ...@@ -98,7 +99,7 @@ class Formatter
$seconds = $minusDaysAndHours - $minutes * 60; $seconds = $minusDaysAndHours - $minutes * 60;
$precision = ($seconds > 0 && $seconds < 0.01 ? 3 : 2); $precision = ($seconds > 0 && $seconds < 0.01 ? 3 : 2);
$seconds = round($seconds, $precision); $seconds = NumberFormatter::getInstance()->formatNumber(round($seconds, $precision), $precision);
if ($years > 0) { if ($years > 0) {
$return = sprintf(Piwik::translate('General_YearsDays'), $years, $days); $return = sprintf(Piwik::translate('General_YearsDays'), $years, $days);
......
...@@ -24,6 +24,7 @@ use Piwik\Menu\MenuTop; ...@@ -24,6 +24,7 @@ use Piwik\Menu\MenuTop;
use Piwik\Menu\MenuUser; use Piwik\Menu\MenuUser;
use Piwik\NoAccessException; use Piwik\NoAccessException;
use Piwik\Notification\Manager as NotificationManager; use Piwik\Notification\Manager as NotificationManager;
use Piwik\NumberFormatter;
use Piwik\Period\Month; use Piwik\Period\Month;
use Piwik\Period; use Piwik\Period;
use Piwik\Period\PeriodValidator; use Piwik\Period\PeriodValidator;
...@@ -984,6 +985,9 @@ abstract class Controller ...@@ -984,6 +985,9 @@ abstract class Controller
$titleEvolutionPercent = '+' . $titleEvolutionPercent; $titleEvolutionPercent = '+' . $titleEvolutionPercent;
} }
$currentValue = NumberFormatter::getInstance()->format($currentValue);
$pastValue = NumberFormatter::getInstance()->format($pastValue);
$title = Piwik::translate('General_EvolutionSummaryGeneric', array( $title = Piwik::translate('General_EvolutionSummaryGeneric', array(
Piwik::translate('General_NVisits', $currentValue), Piwik::translate('General_NVisits', $currentValue),
$date, $date,
......
...@@ -85,6 +85,7 @@ class Twig ...@@ -85,6 +85,7 @@ class Twig
$this->addFilter_truncate(); $this->addFilter_truncate();
$this->addFilter_notification(); $this->addFilter_notification();
$this->addFilter_percentage(); $this->addFilter_percentage();
$this->addFilter_percent();
$this->addFilter_prettyDate(); $this->addFilter_prettyDate();
$this->addFilter_safeDecodeRaw(); $this->addFilter_safeDecodeRaw();
$this->addFilter_number(); $this->addFilter_number();
...@@ -279,6 +280,14 @@ class Twig ...@@ -279,6 +280,14 @@ class Twig
$this->twig->addFilter($percentage); $this->twig->addFilter($percentage);
} }
protected function addFilter_percent()
{
$percentage = new Twig_SimpleFilter('percent', function ($string, $precision = 1) {
return NumberFormatter::getInstance()->formatPercent($string, $precision);
});
$this->twig->addFilter($percentage);
}
protected function addFilter_number() protected function addFilter_number()
{ {
$formatter = new Twig_SimpleFilter('number', function ($string, $minFractionDigits = 0, $maxFractionDigits = 0) { $formatter = new Twig_SimpleFilter('number', function ($string, $minFractionDigits = 0, $maxFractionDigits = 0) {
......
{% for element in topDimension %} {% for element in topDimension %}
{% set goal_nb_conversion=element.nb_conversions %} {% set goal_nb_conversion=element.nb_conversions %}
{% set goal_conversion_rate=element.conversion_rate %} {% set goal_conversion_rate=element.conversion_rate %}
<span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion~"</b>")|raw }}, <span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion|number~"</b>")|raw }},
{{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate~"</b>")|raw }}'> {{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate|number~"</b>")|raw }}'>
{{ element.name }} {{ element.name }}
</span> </span>
......
...@@ -13,14 +13,14 @@ ...@@ -13,14 +13,14 @@
<div id='leftcolumn' style="clear:both;{% if not isWidget and ecommerce is defined %}width:33%;'{% endif %}"> <div id='leftcolumn' style="clear:both;{% if not isWidget and ecommerce is defined %}width:33%;'{% endif %}">
<div class="sparkline">{{ sparkline(urlSparklineConversions) }} <div class="sparkline">{{ sparkline(urlSparklineConversions) }}
{% if ecommerce is defined %} {% if ecommerce is defined %}
<strong>{{ nb_conversions }}</strong> <strong>{{ nb_conversions|number }}</strong>
{{ 'General_EcommerceOrders'|translate }} {{ 'General_EcommerceOrders'|translate }}
<img src='plugins/Morpheus/images/ecommerceOrder.gif'> <img src='plugins/Morpheus/images/ecommerceOrder.gif'>
{% else %} {% else %}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }} {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }}
{% endif %} {% endif %}
{% if goalAllowMultipleConversionsPerVisit is defined and goalAllowMultipleConversionsPerVisit %} {% if goalAllowMultipleConversionsPerVisit is defined and goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>")|raw }}) ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>")|raw }})
{% endif %} {% endif %}
</div> </div>
{% if revenue != 0 or ecommerce is defined %} {% if revenue != 0 or ecommerce is defined %}
...@@ -46,14 +46,14 @@ ...@@ -46,14 +46,14 @@
<div class="sparkline">{{ sparkline(urlSparklineConversionRate) }} <div class="sparkline">{{ sparkline(urlSparklineConversionRate) }}
{% if ecommerce is defined %} {% if ecommerce is defined %}
{% set ecommerceOrdersText %}{{ 'General_EcommerceOrders'|translate }}{% endset %} {% set ecommerceOrdersText %}{{ 'General_EcommerceOrders'|translate }}{% endset %}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong> "~ecommerceOrdersText)|raw }} {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong> "~ecommerceOrdersText)|raw }}
{% else %} {% else %}
{{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }} {{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }}
{% endif %} {% endif %}
</div> </div>
{% if ecommerce is defined %} {% if ecommerce is defined %}
<div class="sparkline">{{ sparkline(urlSparklinePurchasedProducts) }} <div class="sparkline">{{ sparkline(urlSparklinePurchasedProducts) }}
<strong>{{ items }}</strong> {{ 'General_PurchasedProducts'|translate }}</div> <strong>{{ items|number }}</strong> {{ 'General_PurchasedProducts'|translate }}</div>
{% endif %} {% endif %}
</div> </div>
{% if ecommerce is defined %} {% if ecommerce is defined %}
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<div class="sparkline"> <div class="sparkline">
{{ sparkline(cart_urlSparklineConversions) }} {{ sparkline(cart_urlSparklineConversions) }}
{% set ecommerceAbandonedCartsText %}{{ 'Goals_AbandonedCart'|translate }}{% endset %} {% set ecommerceAbandonedCartsText %}{{ 'Goals_AbandonedCart'|translate }}{% endset %}
<strong>{{ cart_nb_conversions }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }} <strong>{{ cart_nb_conversions|number }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }}
</div> </div>
<div class="sparkline"> <div class="sparkline">
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
<div class="sparkline"> <div class="sparkline">
{{ sparkline(cart_urlSparklineConversionRate) }} {{ sparkline(cart_urlSparklineConversionRate) }}
<strong>{{ cart_conversion_rate }}</strong> <strong>{{ cart_conversion_rate|percent }}</strong>
{{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }} {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }}
</div> </div>
</div> </div>
......
...@@ -21,9 +21,9 @@ ...@@ -21,9 +21,9 @@
{% endif %} {% endif %}
<div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }} <div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }} {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }}
{% if goal.goalAllowMultipleConversionsPerVisit %} {% if goal.goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>") | raw }}) ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>") | raw }})
{% endif %} {% endif %}
</div> </div>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
{% endif %} {% endif %}
<div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }} <div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }} {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }}
</div> </div>
{% if not isWidget %} {% if not isWidget %}
......
...@@ -45,6 +45,6 @@ ...@@ -45,6 +45,6 @@
"WidgetGetAll": "Всички препоръчители", "WidgetGetAll": "Всички препоръчители",
"WidgetSocials": "Списък на социалните мрежи", "WidgetSocials": "Списък на социалните мрежи",
"WidgetTopKeywordsForPages": "Най-използваните ключови думи", "WidgetTopKeywordsForPages": "Най-използваните ключови думи",
"XPercentOfVisits": "%s%% от посещения" "XPercentOfVisits": "%s от посещения"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Všechny referrery", "WidgetGetAll": "Všechny referrery",
"WidgetSocials": "Seznam sociálních sítí", "WidgetSocials": "Seznam sociálních sítí",
"WidgetTopKeywordsForPages": "Nejčastější klíčová slova pro URL stránky", "WidgetTopKeywordsForPages": "Nejčastější klíčová slova pro URL stránky",
"XPercentOfVisits": "%s%% návštěv" "XPercentOfVisits": "%s návštěv"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Alle henvisninger", "WidgetGetAll": "Alle henvisninger",
"WidgetSocials": "Liste af sociale netværk", "WidgetSocials": "Liste af sociale netværk",
"WidgetTopKeywordsForPages": "Top søgeord til side URL", "WidgetTopKeywordsForPages": "Top søgeord til side URL",
"XPercentOfVisits": "%s%% af besøg" "XPercentOfVisits": "%s af besøg"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Alle Verweise", "WidgetGetAll": "Alle Verweise",
"WidgetSocials": "Liste Sozialer Netzwerke", "WidgetSocials": "Liste Sozialer Netzwerke",
"WidgetTopKeywordsForPages": "Top-Suchbegriffe für Seiten-URL", "WidgetTopKeywordsForPages": "Top-Suchbegriffe für Seiten-URL",
"XPercentOfVisits": "%s%% aller Besuche" "XPercentOfVisits": "%s aller Besuche"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Όλες οι Παραπομπές", "WidgetGetAll": "Όλες οι Παραπομπές",
"WidgetSocials": "Λίστα κοινωνικών δικτύων", "WidgetSocials": "Λίστα κοινωνικών δικτύων",
"WidgetTopKeywordsForPages": "Δημοφιλέστερες Λέξεις-Κλειδιά για τη Διεύθυνση URL της σελίδας", "WidgetTopKeywordsForPages": "Δημοφιλέστερες Λέξεις-Κλειδιά για τη Διεύθυνση URL της σελίδας",
"XPercentOfVisits": "%s%% των επισκέψεων" "XPercentOfVisits": "%s των επισκέψεων"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "All Referrers", "WidgetGetAll": "All Referrers",
"WidgetSocials": "List of social networks", "WidgetSocials": "List of social networks",
"WidgetTopKeywordsForPages": "Top Keywords for Page URL", "WidgetTopKeywordsForPages": "Top Keywords for Page URL",
"XPercentOfVisits": "%s%% of visits" "XPercentOfVisits": "%s of visits"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Todas las referencias", "WidgetGetAll": "Todas las referencias",
"WidgetSocials": "Lista de redes sociales", "WidgetSocials": "Lista de redes sociales",
"WidgetTopKeywordsForPages": "Principales palabras clave para el URL de página", "WidgetTopKeywordsForPages": "Principales palabras clave para el URL de página",
"XPercentOfVisits": "%s%% de visitas" "XPercentOfVisits": "%s de visitas"
} }
} }
\ No newline at end of file
...@@ -29,6 +29,6 @@ ...@@ -29,6 +29,6 @@
"WidgetGetAll": "Kõik viitajad", "WidgetGetAll": "Kõik viitajad",
"WidgetSocials": "Nimekiri sotsiaalvõrgustikest", "WidgetSocials": "Nimekiri sotsiaalvõrgustikest",
"WidgetTopKeywordsForPages": "Lehe URL peamised võtmesõnad", "WidgetTopKeywordsForPages": "Lehe URL peamised võtmesõnad",
"XPercentOfVisits": "%s%% külastustest" "XPercentOfVisits": "%s külastustest"
} }
} }
\ No newline at end of file
...@@ -48,6 +48,6 @@ ...@@ -48,6 +48,6 @@
"WidgetGetAll": "Kaikki viittaukset", "WidgetGetAll": "Kaikki viittaukset",
"WidgetSocials": "Sosiaalisten verkostojen lista", "WidgetSocials": "Sosiaalisten verkostojen lista",
"WidgetTopKeywordsForPages": "Käytetyimmät avainsanat sivun URL:lle", "WidgetTopKeywordsForPages": "Käytetyimmät avainsanat sivun URL:lle",
"XPercentOfVisits": "%s%% kävijöistä" "XPercentOfVisits": "%s kävijöistä"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Tous les référents", "WidgetGetAll": "Tous les référents",
"WidgetSocials": "Liste des réseaux sociaux", "WidgetSocials": "Liste des réseaux sociaux",
"WidgetTopKeywordsForPages": "Meilleurs mots-clés pour l'URL", "WidgetTopKeywordsForPages": "Meilleurs mots-clés pour l'URL",
"XPercentOfVisits": "%s%% des visites" "XPercentOfVisits": "%s des visites"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "Tutti i Referenti", "WidgetGetAll": "Tutti i Referenti",
"WidgetSocials": "Elenco di social network", "WidgetSocials": "Elenco di social network",
"WidgetTopKeywordsForPages": "Top Keyword per URL Pagina", "WidgetTopKeywordsForPages": "Top Keyword per URL Pagina",
"XPercentOfVisits": "%s%% di visite" "XPercentOfVisits": "%s di visite"
} }
} }
\ No newline at end of file
...@@ -50,6 +50,6 @@ ...@@ -50,6 +50,6 @@
"WidgetGetAll": "全参照元", "WidgetGetAll": "全参照元",
"WidgetSocials": "ソーシャルネットワークのリスト", "WidgetSocials": "ソーシャルネットワークのリスト",
"WidgetTopKeywordsForPages": "ページ URL のトップキーワード", "WidgetTopKeywordsForPages": "ページ URL のトップキーワード",
"XPercentOfVisits": "訪問の %s%%" "XPercentOfVisits": "訪問の %s"
} }
} }
\ No newline at end of file
...@@ -32,6 +32,6 @@ ...@@ -32,6 +32,6 @@
"WidgetExternalWebsites": "Liste over eksterne nettsteder", "WidgetExternalWebsites": "Liste over eksterne nettsteder",
"WidgetGetAll": "Alle henvisere", "WidgetGetAll": "Alle henvisere",
"WidgetSocials": "Liste over sosiale nettverk", "WidgetSocials": "Liste over sosiale nettverk",
"XPercentOfVisits": "%s%% av besøk" "XPercentOfVisits": "%s av besøk"
} }
} }
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter