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

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2014-10-09 07:18:32 +0400
committerThomas Steur <thomas.steur@gmail.com>2014-10-09 07:18:32 +0400
commitc89189697b9cd17a5c2df0f3794b12f5cb681655 (patch)
tree083f6375b6a2005531effb42e053693d08c04f2f
parentafb1cb7b7ec20bf3c0213e2fcd8680a85686c6ff (diff)
parentcf2f71f36ffa139aec60a219aeb3748af66f477e (diff)
Merge branch 'master' into 5940_testRenamingAndCorrectFolders
Conflicts: tests/PHPUnit/phpunit.xml.dist
-rw-r--r--README.md2
-rw-r--r--composer.json2
-rw-r--r--composer.lock4
-rw-r--r--config/global.ini.php7
-rw-r--r--core/Config.php4
-rwxr-xr-xcore/DataTable/Filter/GroupBy.php14
-rw-r--r--core/DataTable/Renderer/Csv.php164
-rw-r--r--core/EventDispatcher.php5
-rw-r--r--core/Option.php11
-rw-r--r--core/Piwik.php11
-rw-r--r--core/ReportRenderer/Html.php3
-rw-r--r--core/Tracker.php4
-rw-r--r--core/testMinimumPhpVersion.php4
-rw-r--r--lang/cs.json1
-rw-r--r--lang/da.json1
-rw-r--r--lang/de.json1
-rw-r--r--lang/el.json1
-rw-r--r--lang/en.json2
-rw-r--r--lang/es.json3
-rw-r--r--lang/et.json4
-rw-r--r--lang/it.json1
-rw-r--r--lang/ja.json20
-rw-r--r--lang/pl.json3
-rw-r--r--lang/tr.json2
-rw-r--r--plugins/API/lang/pt.json1
-rw-r--r--plugins/Actions/lang/pt.json22
-rw-r--r--plugins/Annotations/lang/pt.json20
-rw-r--r--plugins/Contents/lang/cs.json12
-rw-r--r--plugins/Contents/lang/da.json12
-rw-r--r--plugins/Contents/lang/de.json12
-rw-r--r--plugins/Contents/lang/el.json12
-rw-r--r--plugins/Contents/lang/es.json6
-rw-r--r--plugins/Contents/lang/et.json9
-rw-r--r--plugins/Contents/lang/it.json10
-rw-r--r--plugins/Contents/lang/pl.json7
-rw-r--r--plugins/Contents/lang/pt.json9
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml4
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/CoreAdminHome/Commands/RunScheduledTasks.php42
-rw-r--r--plugins/CoreAdminHome/lang/es.json4
-rw-r--r--plugins/CoreAdminHome/lang/pt.json28
-rw-r--r--plugins/CoreAdminHome/stylesheets/generalSettings.less1
-rw-r--r--plugins/CoreConsole/Commands/ClearCaches.php1
-rw-r--r--plugins/CoreConsole/Commands/DevelopmentEnable.php10
-rw-r--r--plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php2
-rw-r--r--plugins/CoreHome/CoreHome.php5
-rw-r--r--plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js85
-rw-r--r--plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js142
-rw-r--r--plugins/CoreHome/javascripts/dataTable.js17
-rw-r--r--plugins/CoreHome/lang/cs.json2
-rw-r--r--plugins/CoreHome/lang/da.json2
-rw-r--r--plugins/CoreHome/lang/de.json2
-rw-r--r--plugins/CoreHome/lang/el.json2
-rw-r--r--plugins/CoreHome/lang/et.json1
-rw-r--r--plugins/CoreHome/lang/it.json2
-rw-r--r--plugins/CoreHome/lang/pt.json6
-rw-r--r--plugins/CoreUpdater/Commands/Update.php8
-rw-r--r--plugins/CoreUpdater/lang/es.json2
-rw-r--r--plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig5
-rw-r--r--plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml2
-rw-r--r--plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml2
-rw-r--r--plugins/DevicesDetection/lang/de.json4
-rw-r--r--plugins/Events/lang/pl.json1
-rw-r--r--plugins/Goals/lang/es.json1
-rw-r--r--plugins/Goals/lang/et.json1
-rw-r--r--plugins/Goals/lang/ja.json6
-rw-r--r--plugins/ImageGraph/lang/ja.json1
-rw-r--r--plugins/Insights/lang/et.json5
-rw-r--r--plugins/Insights/lang/ja.json10
-rw-r--r--plugins/Installation/lang/es.json2
-rw-r--r--plugins/Installation/lang/ja.json25
-rw-r--r--plugins/LeftMenu/lang/es.json5
-rw-r--r--plugins/Login/lang/pl.json1
-rw-r--r--plugins/MobileMessaging/MobileMessaging.php3
-rw-r--r--plugins/MobileMessaging/lang/pl.json2
-rw-r--r--plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php2
-rw-r--r--plugins/Morpheus/stylesheets/general/_forms.less1
-rw-r--r--plugins/Morpheus/templates/javascriptCode.tpl4
-rw-r--r--plugins/MultiSites/lang/pl.json1
-rw-r--r--plugins/PrivacyManager/javascripts/privacySettings.js5
-rw-r--r--plugins/Provider/API.php2
-rw-r--r--plugins/Provider/Reports/GetProvider.php14
-rw-r--r--plugins/Provider/Visitor.php3
-rw-r--r--plugins/Provider/functions.php15
-rw-r--r--plugins/Provider/lang/en.json3
-rw-r--r--plugins/ScheduledReports/API.php11
-rw-r--r--plugins/ScheduledReports/ScheduledReports.php412
-rw-r--r--plugins/ScheduledReports/javascripts/pdf.js1
-rw-r--r--plugins/ScheduledReports/tests/Integration/ApiTest.php5
-rw-r--r--plugins/SegmentEditor/API.php44
-rw-r--r--plugins/UserCountryMap/lang/pl.json1
-rw-r--r--plugins/UsersManager/API.php7
-rw-r--r--plugins/UsersManager/Menu.php2
-rw-r--r--plugins/UsersManager/Model.php7
-rw-r--r--plugins/UsersManager/javascripts/usersManager.js8
-rw-r--r--plugins/UsersManager/templates/index.twig2
m---------plugins/VisitorGenerator0
-rw-r--r--tests/PHPUnit/Impl/TestRequestResponse.php11
-rw-r--r--tests/PHPUnit/Integration/PiwikTest.php93
-rw-r--r--tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt66
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml62
-rw-r--r--tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml20
-rw-r--r--tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml20
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml80
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml18
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdfbin510530 -> 510055 bytes
-rw-r--r--tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csvbin7924 -> 7708 bytes
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html2
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdfbin528539 -> 527977 bytes
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml2
-rw-r--r--tests/PHPUnit/TestingEnvironment.php2
m---------tests/PHPUnit/UI0
-rw-r--r--tests/README.md4
-rw-r--r--tests/README.troubleshooting.md25
144 files changed, 1349 insertions, 615 deletions
diff --git a/README.md b/README.md
index d8c8e9faca..5a0b7b55fe 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Piwik is released under the GPL v3 (or later) license, see [misc/gpl-3.0.txt](mi
## Requirements
- * PHP 5.3.2 or greater
+ * PHP 5.3.3 or greater
* MySQL 4.1 or greater, and either MySQLi or PDO library must be enabled
* Piwik is OS / server independent
diff --git a/composer.json b/composer.json
index 270968a3ba..4badd4c57b 100644
--- a/composer.json
+++ b/composer.json
@@ -31,7 +31,7 @@
}
},
"require": {
- "php": ">=5.3.2",
+ "php": ">=5.3.3",
"twig/twig": "1.*",
"leafo/lessphp": "0.4",
"symfony/console": ">=v2.3.5",
diff --git a/composer.lock b/composer.lock
index a8676c511e..f801f0e7bd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -109,7 +109,7 @@
"shasum": ""
},
"require": {
- "php": ">=5.3.2"
+ "php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
@@ -1221,7 +1221,7 @@
},
"prefer-stable": false,
"platform": {
- "php": ">=5.3.2"
+ "php": ">=5.3.3"
},
"platform-dev": []
}
diff --git a/config/global.ini.php b/config/global.ini.php
index 98ab17f30b..7d0a80ac7c 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -88,7 +88,6 @@ allow_upgrades_to_beta = 0
enable_load_standalone_plugins_during_tests = 0
[Development]
-
; Enables the development mode where we avoid most caching to make sure code changes will be directly applied as
; some caches are only invalidated after an update otherwise. When enabled it'll also performs some validation checks.
; For instance if you register a method in a widget we will verify whether the method actually exists and is public.
@@ -163,8 +162,10 @@ browser_archiving_disabled_enforce = 0
; By default, users can create Segments which are to be processed in Real-time.
; Setting this to 0 will force all newly created Custom Segments to be "Pre-processed (faster, requires archive.php cron)"
; This can be useful if you want to prevent users from adding much load on the server.
-; Note: any existing Segment set to "processed in Real time", will still be set to Real-time.
-; this will only affect custom segments added or modified after this setting is changed.
+; Notes:
+; * any existing Segment set to "processed in Real time", will still be set to Real-time.
+; this will only affect custom segments added or modified after this setting is changed.
+; * when set to 0 then any user with at least 'view' access will be able to create pre-processed segments.
enable_create_realtime_segments = 1
; Whether to enable the "Suggest values for segment" in the Segment Editor panel.
diff --git a/core/Config.php b/core/Config.php
index 749c585647..7d0e9072e9 100644
--- a/core/Config.php
+++ b/core/Config.php
@@ -429,11 +429,11 @@ class Config extends Singleton
: $this->configLocal[$name];
}
- if ($section === null && $name = 'superuser') {
+ if ($section === null && $name == 'superuser') {
$user = $this->getConfigSuperUserForBackwardCompatibility();
return $user;
} else if ($section === null) {
- throw new Exception("Error while trying to read a specific config file entry <strong>'$name'</strong> from your configuration files.</b>If you just completed a Piwik upgrade, please check that the file config/global.ini.php was overwritten by the latest Piwik version.");
+ $section = array();
}
// cache merged section for later
diff --git a/core/DataTable/Filter/GroupBy.php b/core/DataTable/Filter/GroupBy.php
index b899bb9059..9391ccd95f 100755
--- a/core/DataTable/Filter/GroupBy.php
+++ b/core/DataTable/Filter/GroupBy.php
@@ -51,11 +51,11 @@ class GroupBy extends BaseFilter
* @param DataTable $table The DataTable to filter.
* @param string $groupByColumn The column name to reduce.
* @param callable $reduceFunction The reduce function. This must alter the `$groupByColumn`
- * columng in some way.
+ * columng in some way. If not set then the filter will group by the raw column value.
* @param array $parameters deprecated - use an [anonymous function](http://php.net/manual/en/functions.anonymous.php)
* instead.
*/
- public function __construct($table, $groupByColumn, $reduceFunction, $parameters = array())
+ public function __construct($table, $groupByColumn, $reduceFunction = null, $parameters = array())
{
parent::__construct($table);
@@ -80,10 +80,14 @@ class GroupBy extends BaseFilter
continue;
}
- // reduce the group by column of this row
$groupByColumnValue = $row->getColumn($this->groupByColumn);
- $parameters = array_merge(array($groupByColumnValue), $this->parameters);
- $groupByValue = call_user_func_array($this->reduceFunction, $parameters);
+ $groupByValue = $groupByColumnValue;
+
+ // reduce the group by column of this row
+ if($this->reduceFunction) {
+ $parameters = array_merge(array($groupByColumnValue), $this->parameters);
+ $groupByValue = call_user_func_array($this->reduceFunction, $parameters);
+ }
if (!isset($groupByRows[$groupByValue])) {
// if we haven't encountered this group by value before, we mark this row as a
diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php
index f75ef8d215..6f37a660bd 100644
--- a/core/DataTable/Renderer/Csv.php
+++ b/core/DataTable/Renderer/Csv.php
@@ -84,11 +84,7 @@ class Csv extends Renderer
$this->renderHeader();
- if ($this->convertToUnicode
- && function_exists('mb_convert_encoding')
- ) {
- $str = chr(255) . chr(254) . mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
- }
+ $str = $this->convertToUnicode($str);
return $str;
}
@@ -193,42 +189,7 @@ class Csv extends Renderer
}
}
- $csv = array();
- foreach ($table->getRows() as $row) {
- $csvRow = $this->flattenColumnArray($row->getColumns());
-
- if ($this->exportMetadata) {
- $metadata = $row->getMetadata();
- foreach ($metadata as $name => $value) {
- if ($name == 'idsubdatatable_in_db') {
- continue;
- }
- //if a metadata and a column have the same name make sure they dont overwrite
- if ($this->translateColumnNames) {
- $name = Piwik::translate('General_Metadata') . ': ' . $name;
- } else {
- $name = 'metadata_' . $name;
- }
-
- $csvRow[$name] = $value;
- }
- }
-
- foreach ($csvRow as $name => $value) {
- $allColumns[$name] = true;
- }
-
- if ($this->exportIdSubtable) {
- $idsubdatatable = $row->getIdSubDataTable();
- if ($idsubdatatable !== false
- && $this->hideIdSubDatatable === false
- ) {
- $csvRow['idsubdatatable'] = $idsubdatatable;
- }
- }
-
- $csv[] = $csvRow;
- }
+ $csv = $this->makeArrayFromDataTable($table, $allColumns);
// now we make sure that all the rows in the CSV array have all the columns
foreach ($csv as &$row) {
@@ -239,31 +200,7 @@ class Csv extends Renderer
}
}
- $str = '';
-
- // specific case, we have only one column and this column wasn't named properly (indexed by a number)
- // we don't print anything in the CSV file => an empty line
- if (sizeof($allColumns) == 1
- && reset($allColumns)
- && !is_string(key($allColumns))
- ) {
- $str .= '';
- } else {
- // render row names
- $str .= $this->getHeaderLine(array_keys($allColumns)) . $this->lineEnd;
- }
-
- // we render the CSV
- foreach ($csv as $theRow) {
- $rowStr = '';
- foreach ($allColumns as $columnName => $true) {
- $rowStr .= $this->formatValue($theRow[$columnName]) . $this->separator;
- }
- // remove the last separator
- $rowStr = substr_replace($rowStr, "", -strlen($this->separator));
- $str .= $rowStr . $this->lineEnd;
- }
- $str = substr($str, 0, -strlen($this->lineEnd));
+ $str = $this->buildCsvString($allColumns, $csv);
return $str;
}
@@ -392,4 +329,99 @@ class Csv extends Renderer
return $name;
}
}
+
+ /**
+ * @param $allColumns
+ * @param $csv
+ * @return array
+ */
+ private function buildCsvString($allColumns, $csv)
+ {
+ $str = '';
+
+ // specific case, we have only one column and this column wasn't named properly (indexed by a number)
+ // we don't print anything in the CSV file => an empty line
+ if (sizeof($allColumns) == 1
+ && reset($allColumns)
+ && !is_string(key($allColumns))
+ ) {
+ $str .= '';
+ } else {
+ // render row names
+ $str .= $this->getHeaderLine(array_keys($allColumns)) . $this->lineEnd;
+ }
+
+ // we render the CSV
+ foreach ($csv as $theRow) {
+ $rowStr = '';
+ foreach ($allColumns as $columnName => $true) {
+ $rowStr .= $this->formatValue($theRow[$columnName]) . $this->separator;
+ }
+ // remove the last separator
+ $rowStr = substr_replace($rowStr, "", -strlen($this->separator));
+ $str .= $rowStr . $this->lineEnd;
+ }
+ $str = substr($str, 0, -strlen($this->lineEnd));
+ return $str;
+ }
+
+ /**
+ * @param $table
+ * @param $allColumns
+ * @return array of csv data
+ */
+ private function makeArrayFromDataTable($table, &$allColumns)
+ {
+ $csv = array();
+ foreach ($table->getRows() as $row) {
+ $csvRow = $this->flattenColumnArray($row->getColumns());
+
+ if ($this->exportMetadata) {
+ $metadata = $row->getMetadata();
+ foreach ($metadata as $name => $value) {
+ if ($name == 'idsubdatatable_in_db') {
+ continue;
+ }
+ //if a metadata and a column have the same name make sure they dont overwrite
+ if ($this->translateColumnNames) {
+ $name = Piwik::translate('General_Metadata') . ': ' . $name;
+ } else {
+ $name = 'metadata_' . $name;
+ }
+
+ $csvRow[$name] = $value;
+ }
+ }
+
+ foreach ($csvRow as $name => $value) {
+ $allColumns[$name] = true;
+ }
+
+ if ($this->exportIdSubtable) {
+ $idsubdatatable = $row->getIdSubDataTable();
+ if ($idsubdatatable !== false
+ && $this->hideIdSubDatatable === false
+ ) {
+ $csvRow['idsubdatatable'] = $idsubdatatable;
+ }
+ }
+
+ $csv[] = $csvRow;
+ }
+ return $csv;
+ }
+
+ /**
+ * @param $str
+ * @return string
+ */
+ private function convertToUnicode($str)
+ {
+ if ($this->convertToUnicode
+ && function_exists('mb_convert_encoding')
+ ) {
+ $str = chr(255) . chr(254) . mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
+ }
+ return $str;
+ }
}
diff --git a/core/EventDispatcher.php b/core/EventDispatcher.php
index d343da8beb..bdec8c1c7c 100644
--- a/core/EventDispatcher.php
+++ b/core/EventDispatcher.php
@@ -90,6 +90,11 @@ class EventDispatcher extends Singleton
$plugin = $this->getPluginManager()->getLoadedPlugin($plugin);
}
+ if (empty($plugin)) {
+ return; // may happen in unit tests
+ }
+
+
$hooks = $plugin->getListHooksRegistered();
if (isset($hooks[$eventName])) {
diff --git a/core/Option.php b/core/Option.php
index d50e5c4235..d79df967ed 100644
--- a/core/Option.php
+++ b/core/Option.php
@@ -144,6 +144,17 @@ class Option
}
/**
+ * Sets the singleton instance. For testing purposes.
+ *
+ * @param mixed
+ * @ignore
+ */
+ public static function setSingletonInstance($instance)
+ {
+ self::$instance = $instance;
+ }
+
+ /**
* Private Constructor
*/
private function __construct()
diff --git a/core/Piwik.php b/core/Piwik.php
index 16f50f387f..13124728f9 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -142,6 +142,7 @@ class Piwik
// Build optional parameters to be added to text
$options = '';
+ $optionsBeforeTrackerUrl = '';
if ($groupPageTitlesByDomain) {
$options .= ' _paq.push(["setDocumentTitle", document.domain + "/" + document.title]);' . PHP_EOL;
}
@@ -187,7 +188,9 @@ class Piwik
$codeImpl = array(
'idSite' => $idSite,
'piwikUrl' => Common::sanitizeInputValue($piwikUrl),
- 'options' => $options
+ 'options' => $options,
+ 'optionsBeforeTrackerUrl' => $optionsBeforeTrackerUrl,
+ 'protocol' => '//'
);
$parameters = compact('mergeSubdomains', 'groupPageTitlesByDomain', 'mergeAliasUrls', 'visitorCustomVariables',
'pageCustomVariables', 'customCampaignNameQueryParam', 'customCampaignKeywordParam',
@@ -205,6 +208,10 @@ class Piwik
* - **piwikUrl**: The tracker URL to use.
* - **options**: A string of JavaScript code that customises
* the JavaScript tracker.
+ * - **optionsBeforeTrackerUrl**: A string of Javascript code that customises
+ * the JavaScript tracker inside of anonymous function before
+ * adding setTrackerUrl into paq.
+ * - **protocol**: Piwik url protocol.
*
* The **httpsPiwikUrl** element can be set if the HTTPS
* domain is different from the normal domain.
@@ -212,7 +219,7 @@ class Piwik
*/
self::postEvent('Piwik.getJavascriptCode', array(&$codeImpl, $parameters));
- $setTrackerUrl = 'var u="//{$piwikUrl}/";';
+ $setTrackerUrl = 'var u="' . $codeImpl['protocol'] . '{$piwikUrl}/";';
if (!empty($codeImpl['httpsPiwikUrl'])) {
$setTrackerUrl = 'var u=((document.location.protocol === "https:") ? "https://{$httpsPiwikUrl}/" : "http://{$piwikUrl}/");';
diff --git a/core/ReportRenderer/Html.php b/core/ReportRenderer/Html.php
index c929c9a449..d8ff678bc8 100644
--- a/core/ReportRenderer/Html.php
+++ b/core/ReportRenderer/Html.php
@@ -189,10 +189,9 @@ class Html extends ReportRenderer
$additionalFile['filename'] =
sprintf(
- '%s - %s - %s %d - %s %d%s.png',
+ '%s - %s - %d - %s %d%s.png',
$processedReportMetadata['name'],
$prettyDate,
- Piwik::translate('General_Website'),
$report['idsite'],
Piwik::translate('General_Report'),
$report['idreport'],
diff --git a/core/Tracker.php b/core/Tracker.php
index 3aa27237a1..72bd3cd289 100644
--- a/core/Tracker.php
+++ b/core/Tracker.php
@@ -452,6 +452,7 @@ class Tracker
}
Common::sendHeader('Content-Type: application/json');
echo Common::json_encode($result);
+ die(1);
exit;
}
@@ -468,8 +469,9 @@ class Tracker
Common::sendHeader('Content-Type: text/html; charset=utf-8');
echo $this->getMessageFromException($e);
} else {
- $this->outputTransparentGif ();
+ $this->outputTransparentGif();
}
+ die(1);
exit;
}
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index 3dd3defd3e..542279f872 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -15,8 +15,8 @@
$piwik_errorMessage = '';
-// Minimum requirement: stream_resolve_include_path in 5.3.2, namespaces in 5.3
-$piwik_minimumPHPVersion = '5.3.2';
+// Minimum requirement: stream_resolve_include_path, working json_encode in 5.3.3, namespaces in 5.3
+$piwik_minimumPHPVersion = '5.3.3';
$piwik_currentPHPVersion = PHP_VERSION;
$minimumPhpInvalid = version_compare($piwik_minimumPHPVersion, $piwik_currentPHPVersion) > 0;
if ($minimumPhpInvalid) {
diff --git a/lang/cs.json b/lang/cs.json
index 9f64de1fca..2c738582f2 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -431,6 +431,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Pokud nasazujete Piwik z Gitu, pak je tato zpráva normální.",
"WarningFileIntegrityNoMd5file": "Test integrity nemůže být dokončen z důvodů chybějící funkce md5_file().",
"WarningPasswordStored": "%sUpozornění:%s Toto heslo bude uloženo v konfiguračním souboru viditelné pro všechny s přístupem k němu.",
+ "WarningPhpVersionXIsTooOld": "PHP verze %s, kterou používáte již není podporována (EOL). Důrazně doporučujeme aktualizovat na novější verzi, protože stávající může obsahovat bezpečnostní a další problémy, které byly opraveny v novějších verzích PHP.",
"Website": "Web stránky",
"Weekly": "Týdně",
"WeeklyReport": "Týdně",
diff --git a/lang/da.json b/lang/da.json
index 8b3c5b8a7b..41c57deed7 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -431,6 +431,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Hvis du implementerer Piwik fra Git, er meddelelsen normal.",
"WarningFileIntegrityNoMd5file": "Fil integritetstjek kunne ikke gennemføres pga. manglende md5_file () funktion.",
"WarningPasswordStored": "%sAdvarsel:%s Adgangskoden bliver gemt i konfigurationsfilen synlig for alle, der har adgang til den.",
+ "WarningPhpVersionXIsTooOld": "PHP version %s har nået slutningen af ​​sin levetid (EOL). Du opfordres kraftigt til at opgradere til den aktuelle version, fordi brug af denne version kan udsætte dig for sikkerhedshuller og fejl, som er blevet rettet i nyere versioner af PHP.",
"Website": "Hjemmeside",
"Weekly": "Ugentligt",
"WeeklyReport": "ugentlig",
diff --git a/lang/de.json b/lang/de.json
index e002a0bb2b..11fcdf70f0 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -431,6 +431,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Wenn Sie Piwik von Git deployen ist diese Nachricht normal.",
"WarningFileIntegrityNoMd5file": "Durch die fehlende md5_file() Funktion konnte die Integritätsprüfung nicht durchgeführt werden.",
"WarningPasswordStored": "%sWarnung:%s Dieses Passwort wird in der Konfigurationsdatei gespeichert und ist so für jeden sichtbar, der auf diese Datei Zugriff hat.",
+ "WarningPhpVersionXIsTooOld": "Die von Ihnen eingesetzte PHP Version %s hat das Ende der Lebensdauer (EOL) erreicht. Es wird dringend angeraten, ein Update auf eine aktuelle Version durchzuführen, da der Einsatz dieser Version zu Sicherheitsrisiken und Fehlern führen kann, welche in neueren PHP Versionen korrigiert wurden.",
"Website": "Webseite",
"Weekly": "Wöchentlich",
"WeeklyReport": "wöchentlich",
diff --git a/lang/el.json b/lang/el.json
index 2929d928aa..e30d4e22d3 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -432,6 +432,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Αν παίρνετε το Piwik από το Git, το μήνυμα αυτό είναι φυσιολογικό.",
"WarningFileIntegrityNoMd5file": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να ολοκληρωθεί γιατί είναι ανενεργή η συνάρτηση md5_file().",
"WarningPasswordStored": "%sΠροειδοποίηση:%s Αυτός ο κωδικός πρόσβασης θα αποθηκευτεί στο αρχείο ρυθμίσεων και θα είναι ορατός από οποιονδήποτε έχει πρόσβαση σε αυτό.",
+ "WarningPhpVersionXIsTooOld": "Η έκδοση PHP %s που χρησιμοποιείτε έχει φτάσει στο Τέλος Ζωής της (EOL). Συνιστάται να αναβαθμίσετε στην τρέχουσα έκδοση, καθώς η χρήση αυτή της έκδοσης μπορεί να σας εκθέσει σε προβλήματα ασφαλείας και σφάλματα που έχουν διορθωθεί στις πρόσφατες εκδόσεις της PHP.",
"Website": "Ιστοσελίδα",
"Weekly": "Εβδομαδιαίως",
"WeeklyReport": "εβδομαδιαία",
diff --git a/lang/en.json b/lang/en.json
index 0af012ecc3..6785487c23 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -208,6 +208,7 @@
"LastDays": "Last %s days (including today)",
"LastDaysShort": "Last %s days",
"LayoutDirection": "ltr",
+ "LearnMore": "%1$slearn more%2$s",
"Live": "Live",
"Loading": "Loading...",
"LoadingData": "Loading data...",
@@ -355,6 +356,7 @@
"Seconds": "%ss",
"SeeAll": "see all",
"SeeTheOfficialDocumentationForMoreInformation": "See the %sofficial documentation%s for more information.",
+ "SeeThisFaq": "See %1$sthis faq%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Select \"Yes\" if you want or have to send e-mail via a named server instead of the local mail function",
"Settings": "Settings",
diff --git a/lang/es.json b/lang/es.json
index 71aff14d84..20adcc359c 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -32,6 +32,7 @@
"ChooseLanguage": "Elegir idioma",
"ChoosePeriod": "Elegir periodo",
"ChooseWebsite": "Elegir sitio web",
+ "Clear": "Quitar",
"ClickHere": "Haga clic aquí para más información.",
"ClickToChangePeriod": "Haz un click nuevamente para modificar el período.",
"Close": "Cerrar",
@@ -167,6 +168,7 @@
"ExceptionUnableToStartSession": "No se pudo iniciar sesión.",
"ExceptionUndeletableFile": "No se puede borrar %s",
"ExceptionUnreadableFileDisabledMethod": "El archivo de configuración {%s} no se pudo leer. Su host puede estar deshabilitado %s.",
+ "ExceptionWidgetNotFound": "El widget solicitado no existe.",
"ExpandDataTableFooter": "Cambia la visualización o modifica el informe",
"Export": "Exportar",
"ExportAsImage": "Exportar como Imagen",
@@ -400,6 +402,7 @@
"Unknown": "Desconocido",
"Upload": "Subir",
"UsePlusMinusIconsDocumentation": "Use los iconos de más y menos en la izquierda para navegar.",
+ "UserId": "ID Usuario",
"Username": "Nombre de usuario",
"UseSMTPServerForEmail": "Use el servidor SMTP para el correo",
"Value": "Valor",
diff --git a/lang/et.json b/lang/et.json
index e6f195ccff..7c124bb435 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -50,6 +50,7 @@
"ColumnMaxActions": "Maksimaalne tegevuste arv ühe külastuse jooksul",
"ColumnNbActions": "Tegevused",
"ColumnNbUniqVisitors": "Unikaalsed külastajad",
+ "ColumnNbUsers": "Kasutajaid",
"ColumnNbVisits": "Külastused",
"ColumnPageviews": "Lehevaatamisi",
"ColumnPercentageVisits": "% Külastustest",
@@ -207,6 +208,7 @@
"NotValid": "%s ei ole kehtiv",
"NSeconds": "%s sekundit",
"NumberOfVisits": "Külastuste arv",
+ "NUsers": "%s kasutajaid",
"NVisits": "%s külastust",
"Ok": "Ok",
"OneAction": "1 tegevus",
@@ -313,6 +315,7 @@
"Table": "Tabel",
"TagCloud": "Sildipilv",
"Tax": "Maksud",
+ "TimeAgo": "%s tagasi",
"TimeOnPage": "Aeg lehel",
"Today": "Täna",
"Total": "Kokku",
@@ -327,6 +330,7 @@
"Unknown": "Tundmatu",
"Upload": "Üleslaadimine",
"UsePlusMinusIconsDocumentation": "Kasuta pluss ja miinus ikoone vasakul, et navigeerida",
+ "UserId": "Kasutaja ID",
"Username": "Kasutajanimi",
"UseSMTPServerForEmail": "Kasuta e-posti edastamiseks SMTP serverit",
"Value": "Väärtus",
diff --git a/lang/it.json b/lang/it.json
index 9e64d05392..f099c47966 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -431,6 +431,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Se stai sviluppando Piwik da Git, questo messaggio è normale.",
"WarningFileIntegrityNoMd5file": "Il controllo dell'integrità dei file non può essere eseguito per la mancanza della funzione md5_file().",
"WarningPasswordStored": "%sAttenzione:%s Questa password verrà salvata nel file di configurazione e sarà visibile a chiunque ne ha accesso.",
+ "WarningPhpVersionXIsTooOld": "La versione %s di PHP che stai utilizzando ha raggiunto il fine vita (EOL). Si invita caldamente ad aggiornare con urgenza all'ultima versione, perché l'uso di questa versione può esporti a vulnerabilità nella sicurezza e ai bug che sono stati corretti nelle versioni più recenti di PHP.",
"Website": "Sito:",
"Weekly": "Settimanale",
"WeeklyReport": "settimanale",
diff --git a/lang/ja.json b/lang/ja.json
index 0e44d9c433..fe90d8692d 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -133,13 +133,18 @@
"DownloadFail_FileExistsContinue": "%s のダウンロードを続行しようとしていますが、完全にダウンロードされたファイルがすでに存在しています!",
"DownloadFail_HttpRequestFail": "ファイルをダウンロードできませんでした! ダウンロード元のウェブサイトに何らかの誤りがあるかもしれません。後でもう一度試すか、自分自身でファイルを取得してください。",
"DownloadFullVersion": "フルバージョンを%1$sダウンロード%2$s! %3$s を確認してください",
+ "DownloadPleaseRemoveExisting": "それを置き換える場合は、既存のファイルを削除してください。",
"Downloads": "ダウンロード数",
"EcommerceOrders": "eコマース受注",
+ "EcommerceVisitStatusDesc": "訪問の最後に、e コマースの状況をご確認ください。",
+ "EcommerceVisitStatusEg": "例えば、e コマースで注文を行った全ての訪問を選択するために、 API リクエストは %s を含んでいる可能性があります。",
"Edit": "編集",
"EncryptedSmtpTransport": "SMTP サーバーで必要となる、トランスポートレイヤーの暗号を入力します。",
"EnglishLanguageName": "Japanese",
"Error": "エラー",
+ "ErrorRequest": "おっと ! ...リクエスト中に問題がありました。おそらくサーバに一時的な問題が発生しているか、データ量が多過ぎるレポートをリクエストした可能性があります。もう一度お試しください。このエラーが繰り返し表示される場合は、%scontact your Piwik dministrator%s",
"EvolutionOverPeriod": "一定期間の推移",
+ "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "ユーザーは、スーパーユーザーもしくはユーザー '%s' それ自身のいずれかである必要があります。",
"ExceptionConfigurationFileNotFound": "設定ファイル {%s} が見つかりませんでした",
"ExceptionDatabaseVersion": "%1$s のバージョンが %2$s ですが、Piwik には少なくとも %3$s が必要となります。",
"ExceptionFileIntegrity": "整合性チェックの失敗: %s",
@@ -161,9 +166,12 @@
"ExceptionPrivilege": "このリソースには %s アクセス権が必要なため、アクセスすることはできません。",
"ExceptionPrivilegeAccessWebsite": "このリソースには website id = %d 用の %s アクセス権が必要なため、アクセスすることはできません。",
"ExceptionPrivilegeAtLeastOneWebsite": "このリソースには少なくとも1つのウェブサイト用の %s アクセス権が必要なため、アクセスすることはできません。",
+ "ExceptionReportNotEnabled": "リクエストされたレポートは、利用できません。レポートの定義が無効になっているか、このレポートにアクセスする十分な権限を持っていない可能性があります。",
+ "ExceptionReportNotFound": "リクエストされたレポートは存在しません。",
"ExceptionUnableToStartSession": "セッションを開始できません",
"ExceptionUndeletableFile": "%s が削除できませんでした",
"ExceptionUnreadableFileDisabledMethod": "設定ファイル {%s} を読み込むことができませんでした。 サーバーで %s が無効化されている可能性があります。",
+ "ExceptionWidgetNotFound": "リクエストされたウィジェットは存在しません。",
"ExpandDataTableFooter": "ビジュアルの変更やレポートの設定",
"Export": "エクスポート",
"ExportAsImage": "画像としてエクスポートする",
@@ -184,6 +192,7 @@
"GraphHelp": "Piwik でのグラフ表示の詳細です。",
"HelloUser": "こんにちは、%s さん!",
"Help": "ヘルプ",
+ "HelpTranslatePiwik": "%1$shelp us improve the Piwik translations%2$s ?",
"Hide": "非表示にする",
"HoursMinutes": "%1$s 時間 %2$s 分",
"Id": "ID",
@@ -289,6 +298,7 @@
"Others": "その他",
"Outlink": "外部リンク",
"Outlinks": "外部リンク数",
+ "OverlayRowActionTooltip": "ウェブサイトで新しいタブを開いて、直接分析データをご確認ください。",
"OverlayRowActionTooltipTitle": "ページオーバーレイを開く",
"Overview": "概観",
"Pages": "ページ",
@@ -296,6 +306,8 @@
"Password": "パスワード",
"Period": "期間",
"Piechart": "円グラフ",
+ "PiwikIsACollaborativeProjectYouCanContributeAndDonate": "%1$sPiwik%2$s は、%7$sPiwik team%8$s メンバーだけでなく世界中の他の多くの貢献者による共同プロジェクトです。もし Piwik のファンになって頂けたら、ぜひ貢献してください。: %3$sHow to participate in Piwik%4$s を読んで、Piwik 3.0 基金を助けるために %5$sdonate %6$s !",
+ "PiwikXIsAvailablePleaseNotifyPiwikAdmin": "%1$s が利用可能です。ぜひ %2$sPiwik administrator%3$s に通知してください。",
"PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s が利用可能です。 %2$s今すぐアップデートしてください!%3$s(%4$s変更点%5$sを参照)。",
"PleaseSpecifyValue": "'%s' の値を指定してください。",
"PleaseUpdatePiwik": "Piwik を更新してください",
@@ -311,6 +323,7 @@
"PurchasedProducts": "購入された製品",
"Quantity": "数量",
"RangeReports": "カスタム期間",
+ "ReadThisToLearnMore": "%1$sRead this to learn more.%2$s",
"Recommended": "(推奨)",
"RecordsToPlot": "プロットするレコード",
"Refresh": "リフレッシュ",
@@ -320,6 +333,7 @@
"Remove": "削除",
"Report": "リポート",
"ReportGeneratedFrom": "このレポートは、%s のデータを使用して生成しました。",
+ "ReportRatioTooltip": "'%1$s' は %5$s で %3$s %4$s の %2$s を表しています。",
"Reports": "リポート",
"ReportsContainingTodayWillBeProcessedAtMostEvery": "今日のリポート(または今日を含む、他の日付範囲)が生成される間隔は",
"ReportsWillBeProcessedAtMostEveryHour": "従って、リポートは1時間ごとに処理されます。",
@@ -370,6 +384,7 @@
"SmtpServerAddress": "SMTP のサーバアドレス",
"SmtpUsername": "SMTP のユーザー名",
"Source": "ソース",
+ "StatisticsAreNotRecorded": "Piwik ビジタートラッキングは、現在利用できません! お使いの config\/config.ini.php ファイルで record_statistics = 1 を設定することで、再度ご利用頂けるようになります。",
"Subtotal": "小計",
"Summary": "サマリ",
"Table": "テーブル",
@@ -379,7 +394,9 @@
"TimeOnPage": "このページの滞在時間",
"Today": "今日",
"Total": "合計",
+ "TotalRatioTooltip": "これは、全ての %2$s %3$s の %1$sです。",
"TotalRevenue": "総収益",
+ "TotalVisitsPageviewsRevenue": "( 合計 : 訪問数 %s 、ページビュー %s 、利益 %s )",
"TransitionsRowActionTooltip": "訪問者が、このページの表示前後に何をしていたか見てください",
"TransitionsRowActionTooltipTitle": "トランジションを開く",
"TranslatorEmail": "hello@piwik.org",
@@ -408,6 +425,7 @@
"VisitTypeExample": "例えば、前回のビジットで何かを購入した訪問者を含む、全てのリピーターを選択するためのAPIリクエストは %s を含むものとなります。",
"Warning": "警告",
"WarningFileIntegrityNoManifest": "manifest.inc.php が不足しているため、ファイルの整合性チェックを実行することができませんでした。",
+ "WarningFileIntegrityNoManifestDeployingFromGit": "Git から Piwik を開発している場合、このメッセージは正常です。",
"WarningFileIntegrityNoMd5file": "md5_file() 関数が存在しないため、ファイルの整合性チェックを完了することができませんでした。",
"WarningPasswordStored": "%s警告:%s このパスワードは設定ファイルに保存されます。 この設定ファイルにアクセス可能な人であれば、パスワードを見られる可能性があることに注意してください。",
"Website": "ウェブサイト",
@@ -416,6 +434,8 @@
"WeeklyReports": "週次リポート",
"WellDone": "よくできました!",
"Widgets": "ウィジェット",
+ "XComparedToY": "%2$s に比べ %1$s",
+ "XFromY": "%2$s からの %1$s",
"YearlyReport": "毎年",
"YearlyReports": "年次リポート",
"YearsDays": "%1$s 年 %2$s 日",
diff --git a/lang/pl.json b/lang/pl.json
index 0bbaf84217..e671506b5d 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -410,6 +410,7 @@
"YearlyReport": "rocznie",
"YearlyReports": "Raporty roczne",
"YearsDays": "%1$s lat %2$s dni",
+ "YearShort": "r",
"Yes": "Tak",
"Yesterday": "wczoraj",
"YouAreCurrentlyUsing": "Aktualnie używasz Piwik %s.",
@@ -452,7 +453,9 @@
"NoWebsitesShort": "Brak stron",
"RatingDontRemindMe": "Nie przypominaj mi",
"RatingNotNow": "Nie teraz",
+ "Reloading": "Przeładowanie...",
"SaveSuccessError": "Prosimy sprawdzić ustawienia konfiguracyjne",
+ "SearchWebsite": "Przeszukuj witryny",
"ShowAll": "Pokaż wszystko",
"ShowLess": "Pokaż mniej",
"TryIt": "Wypróbuj!",
diff --git a/lang/tr.json b/lang/tr.json
index 364758b656..d1b84cdff3 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -319,7 +319,7 @@
"Total": "Toplam",
"TotalRevenue": "Toplam Kazanç",
"TranslatorEmail": "halfdan@xnorfz.de, dev@yazici.info, hello@emresaracoglu.com",
- "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, <a href=\"http:\/\/www.radyofm.com\" target=\"_blank\" title=\"Uğur Eskici\">Uğur Eskici<\/a>",
+ "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu",
"UniquePurchases": "Tekil Satın Alımlar",
"Unknown": "Bilinmeyen",
"Upload": "Yükle",
diff --git a/plugins/API/lang/pt.json b/plugins/API/lang/pt.json
index fe74fdfb6d..80c635a7a0 100644
--- a/plugins/API/lang/pt.json
+++ b/plugins/API/lang/pt.json
@@ -6,6 +6,7 @@
"MoreInformation": "Para mais informação sobre os APIs de Piwik, por favor dê uma vista de olhos na %s Introdução ao API Piwik %s e a %s Referência do API Piwik %s.",
"PluginDescription": "Todos os dados em Piwik estão disponíveis através de APIs simples. Este plugin é o ponto de entrada do serviço web, que pode chamar para receber os seus dados das Analíticas Web em xml, json, php, csv, etc.",
"QuickDocumentationTitle": "Documentação rápida do API",
+ "TopLinkTooltip": "Aceda programaticamente à sua informação através de uma simples API em json, xml, etc.",
"UserAuthentication": "Autenticação do utilizador",
"UsingTokenAuth": "Se quer %s pedir dados através de um script, crontab, etc. %s tem que adicionar o parâmetro %s aos URLs das chamadas do API que necessitam de autenticação."
}
diff --git a/plugins/Actions/lang/pt.json b/plugins/Actions/lang/pt.json
index 8a64eddb44..751f721d5d 100644
--- a/plugins/Actions/lang/pt.json
+++ b/plugins/Actions/lang/pt.json
@@ -9,12 +9,16 @@
"ColumnEntryPageURL": "URL da Página de Entrada",
"ColumnExitPageTitle": "Título da Página de Saída",
"ColumnExitPageURL": "URL da Página de Saída",
- "ColumnPageName": "Nome da Páginal",
+ "ColumnNoResultKeyword": "Palavra Chave sem Resultado de Pesquisa",
+ "ColumnPageName": "Nome da Página",
"ColumnPagesPerSearch": "Páginas de resultados",
"ColumnPageURL": "Endereço da Página",
"ColumnSearchCategory": "Pesquisar Categoria",
+ "ColumnSearches": "Pesquisas",
"ColumnSearchesDocumentation": "O número de visitas que procurou esta palavra-chave no motor de busca do seu site.",
+ "ColumnSearchExits": "% Saídas de Pesquisa",
"ColumnSearchExitsDocumentation": "A percentagem de visitas que deixou o site após a pesquisa por esta palavra-chave no motor de busca do seu Site.",
+ "ColumnSearchResultsCount": "Contagem de Resultados de Pesquisa",
"ColumnSiteSearchKeywords": "Palavra Chave Única",
"ColumnUniqueClicks": "Cliques Únicos",
"ColumnUniqueClicksDocumentation": "O número de visitas que envolveu um clique neste link. Se um link foi clicado várias vezes durante uma visita, só é contado uma vez.",
@@ -22,8 +26,10 @@
"ColumnUniqueOutlinks": "Links de saída únicos",
"DownloadsReportDocumentation": "Neste relatório, você pode ver quais os arquivos que os visitantes têm feito download.%s O que o Piwik entende como um download é clicar num link de download. Se o download foi concluído ou não, não é conhecido pelo Piwik.",
"EntryPagesReportDocumentation": "Este relatório contém informações sobre as páginas de entrada que foram utilizadas durante o período especificado. Uma página de entrada é a primeira página que um utilizador visualiza durante a sua visita. %s As URLs de entrada são exibidas como uma estrutura de pastas.",
+ "EntryPageTitles": "Títulos das páginas de entrada",
"EntryPageTitlesReportDocumentation": "Este relatório contém informações sobre os títulos das páginas de entrada que foram usados ​​durante o período especificado.",
"ExitPagesReportDocumentation": "Este relatório contém informações sobre as páginas de saída que ocorreram durante o período especificado. Uma página de saída é a última página que um utilizador visualiza durante a sua visita. %s Os URLs de saída são exibidos como uma estrutura de pastas.",
+ "ExitPageTitles": "Títulos das páginas de saída",
"ExitPageTitlesReportDocumentation": "Este relatório contém informações sobre os títulos de páginas de saída que ocorreram durante o período especificado.",
"OneSearch": "1 Pesquisa",
"OutlinkDocumentation": "Um outlink é um link que leva o visitante para fora do seu website (para outro domínio).",
@@ -31,12 +37,24 @@
"PagesReportDocumentation": "Este relatório contém informações sobre URLs das páginas que foram visitadas. %s A tabela está organizada hierarquicamente, as URLs são exibidas como uma estrutura de pastas.",
"PageUrls": "URLs de páginas",
"PluginDescription": "Relatórios sobre páginas vistas, ligações de saída e downloads. O rastreio de ligações de saída e downloads é automático.",
+ "SiteSearchCategories1": "Este relatório lista as Categorias que os visitantes selecionaram quando realizaram uma Pesquisa na sua página.",
"SiteSearchCategories2": "Por exemplo, os sites de comércio electrónico têm tipicamente uma \"Categoria\" seleccionada de modo que os visitantes podem restringir suas pesquisas a todos os produtos em uma categoria específica.",
"SiteSearchIntro": "Rastrear pesquisas que os visitantes fazem em seu site é uma maneira muito eficaz de aprender mais sobre o que o seu público está procurando, ele pode ajudar a encontrar ideias para novos conteúdos, novos produtos de comércio electrónico que os potenciais clientes podem estar procurando, e em geral, melhorar os visitantes experiência em seu site.",
+ "SiteSearchKeyword": "Palavra Chave (Pesquisa)",
"SiteSearchKeywordsDocumentation": "Este relatório lista as palavras-chave de pesquisa que os visitantes procuraram em sua busca interna do motor.",
+ "SiteSearchKeywordsNoResultDocumentation": "Este relatório lista as Pesquisas de Palavras Chave que não devolveram resultado de Pesquisa algum: talvez o algoritmo do motor de busca pode ser melhorado, ou talvez os seus visitantes encontram-se à procura de conteúdo que (ainda) não consta na sua página.",
"SubmenuPagesEntry": "Páginas de entrada",
"SubmenuPagesExit": "Páginas de saída",
"SubmenuPageTitles": "Títulos das páginas",
- "SubmenuSitesearch": "Pesquisar Site"
+ "SubmenuSitesearch": "Pesquisar Site",
+ "WidgetEntryPageTitles": "Títulos de Páginas de Entrada",
+ "WidgetExitPageTitles": "Títulos de Páginas de Saída",
+ "WidgetPagesEntry": "Páginas de Entrada",
+ "WidgetPagesExit": "Páginas de Saída",
+ "WidgetPageTitles": "Títulos de Página",
+ "WidgetPageTitlesFollowingSearch": "Títulos de Páginas Resultantes de uma Pesquisa de Página",
+ "WidgetPageUrlsFollowingSearch": "Páginas Resultantes de uma Pesquisa de Página",
+ "WidgetSearchCategories": "Categorias de Pesquisa",
+ "WidgetSearchNoResultKeywords": "Palavras Chaves de Pesquisa Sem Resultados"
}
} \ No newline at end of file
diff --git a/plugins/Annotations/lang/pt.json b/plugins/Annotations/lang/pt.json
new file mode 100644
index 0000000000..313a153901
--- /dev/null
+++ b/plugins/Annotations/lang/pt.json
@@ -0,0 +1,20 @@
+{
+ "Annotations": {
+ "AddAnnotationsFor": "Adicionar anotações para %s...",
+ "Annotations": "Anotações",
+ "ClickToDelete": "Clique para eliminar esta anotação.",
+ "ClickToEdit": "Clique para editar esta anotação.",
+ "ClickToEditOrAdd": "Clique para editar ou adicionar uma nova anotação.",
+ "CreateNewAnnotation": "Criar uma nova anotação...",
+ "EnterAnnotationText": "Introduza a sua nota...",
+ "HideAnnotationsFor": "Esconder anotações para %s...",
+ "IconDesc": "Ver notas para este intervalo de datas.",
+ "IconDescHideNotes": "Esconder notas para este intervalo de datas.",
+ "InlineQuickHelp": "Você pode criar anotações para marcar eventos especiais (como uma nova publicação no blogue, ou alteração no aspeto do sítio de internet), para salvar a sua informação ou para salvar algo que julgue ser importante.",
+ "LoginToAnnotate": "Entre para criar uma anotação.",
+ "NoAnnotations": "Não existem anotações para este intervalo de datas.",
+ "PluginDescription": "Permite que anexe notas a dias diferentes para marcar alterações realizadas à sua página de internet, salvar análises que realizou com respeito à sua informação e partilhar os seus pensamentos com os seus colegas. Ao anotar a sua informação, terá a certeza que se lembrará a razão pela qual esta tem o aspeto que tem.",
+ "ViewAndAddAnnotations": "Ver e adicionar anotações para %s...",
+ "YouCannotModifyThisNote": "Você não pode modificar esta anotação, porque você não a criou, nem possui previlégios de administração para este sítio de internet."
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/cs.json b/plugins/Contents/lang/cs.json
new file mode 100644
index 0000000000..e06fabbf47
--- /dev/null
+++ b/plugins/Contents/lang/cs.json
@@ -0,0 +1,12 @@
+{
+ "Contents": {
+ "ContentName": "Jméno obsahu",
+ "ContentPiece": "Část obsahu",
+ "Contents": "Obsah",
+ "ContentTarget": "Cíl obsahu",
+ "Impressions": "Dojmy",
+ "Interaction": "Interakce",
+ "InteractionRate": "Rychlost interakcí",
+ "Interactions": "Interakce"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/da.json b/plugins/Contents/lang/da.json
new file mode 100644
index 0000000000..725e9a55f2
--- /dev/null
+++ b/plugins/Contents/lang/da.json
@@ -0,0 +1,12 @@
+{
+ "Contents": {
+ "ContentName": "Indholdsnavn",
+ "ContentPiece": "Indholdsstykke",
+ "Contents": "Indhold",
+ "ContentTarget": "Indholdsmål",
+ "Impressions": "Indtryk",
+ "Interaction": "Interaktion",
+ "InteractionRate": "Interaktionsfrekvens",
+ "Interactions": "Interaktioner"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/de.json b/plugins/Contents/lang/de.json
new file mode 100644
index 0000000000..11ecd6e985
--- /dev/null
+++ b/plugins/Contents/lang/de.json
@@ -0,0 +1,12 @@
+{
+ "Contents": {
+ "ContentName": "Inhaltsname",
+ "ContentPiece": "Inhaltsteil",
+ "Contents": "Inhalte",
+ "ContentTarget": "Inhaltsziel",
+ "Impressions": "Impressionen",
+ "Interaction": "Interaktion",
+ "InteractionRate": "Interaktionsrate",
+ "Interactions": "Interaktionen"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/el.json b/plugins/Contents/lang/el.json
new file mode 100644
index 0000000000..00eeeb0578
--- /dev/null
+++ b/plugins/Contents/lang/el.json
@@ -0,0 +1,12 @@
+{
+ "Contents": {
+ "ContentName": "Όνομα Περιεχομένου",
+ "ContentPiece": "Κομμάτι Περιεχομένου",
+ "Contents": "Περιεχόμενα",
+ "ContentTarget": "Στόχος Περιεχομένου",
+ "Impressions": "Αποτυπώσεις",
+ "Interaction": "Αλληλεπίδραση",
+ "InteractionRate": "Ρυθμός αλληλεπίδρασης",
+ "Interactions": "Αλληλεπιδράσεις"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/es.json b/plugins/Contents/lang/es.json
new file mode 100644
index 0000000000..3eb3bec9e7
--- /dev/null
+++ b/plugins/Contents/lang/es.json
@@ -0,0 +1,6 @@
+{
+ "Contents": {
+ "ContentName": "Nombre del contenido",
+ "Interactions": "Interacciones"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/et.json b/plugins/Contents/lang/et.json
new file mode 100644
index 0000000000..9d6a1f3e9d
--- /dev/null
+++ b/plugins/Contents/lang/et.json
@@ -0,0 +1,9 @@
+{
+ "Contents": {
+ "ContentName": "Sisu nimi",
+ "ContentPiece": "Sisu tükk",
+ "Contents": "Sisud",
+ "InteractionRate": "Koostoime mõju",
+ "Interactions": "Koostoime"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/it.json b/plugins/Contents/lang/it.json
new file mode 100644
index 0000000000..f040e21bfe
--- /dev/null
+++ b/plugins/Contents/lang/it.json
@@ -0,0 +1,10 @@
+{
+ "Contents": {
+ "ContentName": "Nome Contenuto",
+ "Contents": "Contenuti",
+ "Impressions": "Impressioni",
+ "Interaction": "Interazione",
+ "InteractionRate": "Rapporto di Interazione",
+ "Interactions": "Interazioni"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/pl.json b/plugins/Contents/lang/pl.json
new file mode 100644
index 0000000000..846b76db09
--- /dev/null
+++ b/plugins/Contents/lang/pl.json
@@ -0,0 +1,7 @@
+{
+ "Contents": {
+ "ContentName": "Nazwa treści",
+ "Contents": "Treści",
+ "Interactions": "Interakcje"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/lang/pt.json b/plugins/Contents/lang/pt.json
new file mode 100644
index 0000000000..4efc05c515
--- /dev/null
+++ b/plugins/Contents/lang/pt.json
@@ -0,0 +1,9 @@
+{
+ "Contents": {
+ "Contents": "Conteúdos",
+ "ContentTarget": "Conteúdo de Destino",
+ "Impressions": "Impressões",
+ "Interaction": "Interação",
+ "Interactions": "Interações"
+ }
+} \ No newline at end of file
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
index 989f816722..241be92f2f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -147,7 +147,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
index 989f816722..241be92f2f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
@@ -47,7 +47,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -147,7 +147,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
index 989f816722..241be92f2f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -147,7 +147,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
index 989f816722..241be92f2f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -147,7 +147,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
index 989f816722..241be92f2f 100644
--- a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -147,7 +147,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
index 3dbccfdc2d..1e73c1d626 100644
--- a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
+++ b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
@@ -23,7 +23,6 @@ class RunScheduledTasks extends ConsoleCommand
$this->setName('core:run-scheduled-tasks');
$this->setDescription('Will run all scheduled tasks due to run at this time.');
$this->addOption('force', null, InputOption::VALUE_NONE, 'If set, it will execute all tasks even the ones not due to run at this time.');
- $this->addOption('token-auth', null, InputOption::VALUE_REQUIRED, 'The API token of a user that has super user access, see http://piwik.org/faq/general/#faq_114');
}
/**
@@ -31,41 +30,20 @@ class RunScheduledTasks extends ConsoleCommand
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
- $_GET['token_auth'] = $this->askForTokenAuth($input, $output);
$this->forceRunAllTasksIfRequested($input);
FrontController::getInstance()->init();
- API::getInstance()->runScheduledTasks();
-
- $this->writeSuccessMessage($output, array('Scheduled Tasks executed'));
- }
-
- /**
- * @param InputInterface $input
- * @param OutputInterface $output
- * @return string
- * @throws \RuntimeException
- */
- private function askForTokenAuth(InputInterface $input, OutputInterface $output)
- {
- $validate = function ($tokenAuth) {
- if (empty($tokenAuth)) {
- throw new \InvalidArgumentException('You have to specify a token_auth');
- }
-
- return $tokenAuth;
- };
-
- $tokenAuth = $input->getOption('token-auth');
-
- if (empty($tokenAuth)) {
- $dialog = $this->getHelperSet()->get('dialog');
- $tokenAuth = $dialog->askAndValidate($output, 'Enter the token_auth of a user having super user access: ', $validate);
- } else {
- $validate($tokenAuth);
+ $scheduledTasksResults = API::getInstance()->runScheduledTasks();
+
+ foreach ($scheduledTasksResults as $scheduledTasksResult) {
+ $output->writeln(sprintf(
+ '<comment>%s</comment> - %s',
+ $scheduledTasksResult['task'],
+ $scheduledTasksResult['output']
+ ));
}
- return $tokenAuth;
+ $this->writeSuccessMessage($output, array('Scheduled Tasks executed'));
}
private function forceRunAllTasksIfRequested(InputInterface $input)
@@ -76,4 +54,4 @@ class RunScheduledTasks extends ConsoleCommand
$GLOBALS['PIWIK_TRACKER_DEBUG_FORCE_SCHEDULED_TASKS'] = true;
}
}
-}
+} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/es.json b/plugins/CoreAdminHome/lang/es.json
index 2df924f218..6b034059f4 100644
--- a/plugins/CoreAdminHome/lang/es.json
+++ b/plugins/CoreAdminHome/lang/es.json
@@ -10,6 +10,8 @@
"CustomLogoHelpText": "Puede personalizar el logo de Piwik que será mostrado en la interfaz de usuario y los reportes por email.",
"DevelopmentProcess": "Mientras que nuestro %sproceso de desarrollo%s incluye miles de pruebas automatizadas, Beta Testers juegan un papel clave en el logro de la \"política de no error\" en Piwik.",
"EmailServerSettings": "Configuración del servidor de email",
+ "FaviconUpload": "Selecciona un Favicon para subir",
+ "FileUploadDisabled": "La subida de archivos no está habilitada en tu configuración de PHP. Para subir tu logo personalizado por favor pon %s en php.ini y reinicia tu servidor web.",
"ForBetaTestersOnly": "Para betatesters sólo",
"ImageTracking": "Seguimiento mediante Imagen",
"ImageTrackingIntro1": "Cuando un visitante se ha inhabilitado JavaScript o JavaScript que no se puede utilizar, puede utilizar un vínculo de seguimiento en la imagen para rastrear a los visitantes.",
@@ -49,6 +51,7 @@
"LogoNotWriteableInstruction": "Para utilizar tu logo personalizado en lugar del logo estándar de Piwik puedes conceder permisos de escritura a este directorio: %1$s Piwik necesita el permiso de escritura para sus logos salvados en los archivos %2$s.",
"LogoUpload": "Seleccione un logo para subir",
"LogoUploadHelp": "Sube un archivo en formato %s con un alto mínimo de %s píxeles.",
+ "MenuDevelopment": "Desarrollo",
"MenuDiagnostic": "diagnóstico",
"MenuGeneralSettings": "Configuración General",
"MenuManage": "gestionar",
@@ -60,6 +63,7 @@
"PiwikIsInstalledAt": "Piwik está instalado en",
"PluginDescription": "Área de Administración de Piwik",
"PluginSettingChangeNotAllowed": "No está permitido cambiar el valor de configuración \"%s\" en el plugin \"%s\"",
+ "PluginSettingReadNotAllowed": "No está permitido que leas el valor de la opción \"%s\" en el plugin \"%s\"",
"PluginSettings": "Configuración del plugin",
"PluginSettingsIntro": "Aquí puedes cambiar la configuración de los siguientes plugins de terceros:",
"PluginSettingsValueNotAllowed": "El valor del campo \"%s\" del plugin \"%s\" no es permitido.",
diff --git a/plugins/CoreAdminHome/lang/pt.json b/plugins/CoreAdminHome/lang/pt.json
index 95e90e281c..a85b4e6d36 100644
--- a/plugins/CoreAdminHome/lang/pt.json
+++ b/plugins/CoreAdminHome/lang/pt.json
@@ -1,19 +1,47 @@
{
"CoreAdminHome": {
"Administration": "Administração",
+ "ArchivingSettings": "A arquivar definições",
"BrandingSettings": "Definições de Marca",
+ "CheckReleaseGetVersion": "Ao procurar por novas versões do Piwik, obter sempre",
"ClickHereToOptIn": "Clique aqui para fazer opt-in.",
"ClickHereToOptOut": "Clique aqui para fazer opt-out.",
"CustomLogoHelpText": "Você pode personalizar o logotipo Piwik que será exibido na interface do utilizador e relatórios de e-mail.",
"EmailServerSettings": "Definições do servidor de email",
+ "FaviconUpload": "Selecione um Favicon para carregar",
+ "FileUploadDisabled": "Carregar ficheiros não se encontra ativo nas sua configuração PHP. Para carregar o seu logótipo personalizado por favor defina %s em php.ini e reinicie o seu servidor.",
+ "ForBetaTestersOnly": "Para testadores de versões beta apenas",
+ "ImportingServerLogs": "A Importar Relatórios de Servidor",
+ "InvalidPluginsWarning": "Os seguintes plugins não são compatíveis com %1$s e não puderam ser carregados: %2$s.",
+ "JSTracking_CampaignKwdParam": "Parâmetro da Palavra Chave da Campanha",
+ "JSTracking_CodeNote": "Certifique-se que este código se encontra em todas as páginas do seu sítio de internet antes da etiqueta %1$s.",
+ "JSTracking_EnableDoNotTrack": "Ativar deteção NãoSeguir do lado do cliente",
+ "JSTracking_MergeSubdomains": "Seguir visitantes através todos os subdomínios de",
+ "JSTracking_PageCustomVars": "Siga uma variável personalizada para cada visualização de página",
+ "JSTracking_PageCustomVarsDesc": "Por exemplo, com nome de variável \"Categoria\" e valor \"Documentos Brancos\".",
+ "JSTracking_VisitorCustomVars": "Siga variáveis personalizadas para este visitante.",
+ "JSTracking_VisitorCustomVarsDesc": "Por exemplo, com nome de variável \"Tipo\" e valor \"Cliente\".",
+ "LatestBetaRelease": "A mais recente publicação beta",
+ "LatestStableRelease": "A mais recente versão estável",
"LogoUpload": "Selecione um logo para fazer upload",
+ "MenuDevelopment": "Desenvolvimento",
"MenuGeneralSettings": "Definições gerais",
+ "MenuManage": "Gerir",
"OptOutComplete": "Opt-out completo; as suas visitas a este site não serão gravadas pela ferramenta de Web Analytics.",
"OptOutCompleteBis": "Note que se você apagar os cookies, apagar o cookie de opt-out, ou se você mudar de computador ou navegadores Web, vai precisar de realizar o procedimento de opt-out novamente.",
"OptOutExplanation": "O Piwik é dedicado a fornecer privacidade na Internet. Para apresentar aos seus visitantes a escolha de opting-out da Web Analytics Piwik, você pode adicionar o seguinte código HTML em uma das páginas do seu site, por exemplo, numa página de Política de Privacidade.",
"OptOutExplanationBis": "Este código irá exibir um iFrame contendo um link para que seus visitantes possam fazer opt-out do Piwik definindo um cookie de opt-out nos navegadores do utilizador. %s Clique aqui%s para ver o conteúdo que será exibido pelo iFrame.",
"OptOutForYourVisitors": "opt-out do Piwik para os seus visitantes",
+ "PiwikIsInstalledAt": "Piwik encontra-se instalado em",
"PluginDescription": "Área de administração de Piwik.",
+ "PluginSettingChangeNotAllowed": "Não lhe é permitido alterar o valor da definição \"%s\" no plugin \"%s\"",
+ "PluginSettingReadNotAllowed": "Não lhe é permitido ler o valor da definição \"%s\" no plugin \"%s\"",
+ "PluginSettings": "Definições de Plugin",
+ "PluginSettingsIntro": "Aqui pode alterar as definições dos seguintes plugins de terceiros:",
+ "PluginSettingsValueNotAllowed": "O valor para o campo \"%s\" no plugin \"%s\" não é permitido",
+ "SendPluginUpdateCommunication": "Envie-me uma notificação para o correio eletrónico quando existir uma nova atualização para um plugin",
+ "SendPluginUpdateCommunicationHelp": "Será enviado correio eletrónico para os Super Utilizadores quando existir uma nova versão disponível para um plugin.",
+ "StableReleases": "Se o Piwik é uma parte crítica do seu negócio, recomendamos que utilize a versão estável mais recente. Se você usa a mais recente versão beta e julga que encontrou um erro ou possui uma sugestão, por favor %sveja aqui%s.",
"UseCustomLogo": "Use um logo personalizado.",
"YouAreOptedIn": "Actualmente está activa a opção opt-in",
"YouAreOptedOut": "Actualmente está activa a opção opt-out",
diff --git a/plugins/CoreAdminHome/stylesheets/generalSettings.less b/plugins/CoreAdminHome/stylesheets/generalSettings.less
index 2a056e070d..f4af53c901 100644
--- a/plugins/CoreAdminHome/stylesheets/generalSettings.less
+++ b/plugins/CoreAdminHome/stylesheets/generalSettings.less
@@ -4,6 +4,7 @@
.admin a {
color: black;
+ text-decoration: underline;
}
#content.admin {
diff --git a/plugins/CoreConsole/Commands/ClearCaches.php b/plugins/CoreConsole/Commands/ClearCaches.php
index 35d9691706..13413c62b7 100644
--- a/plugins/CoreConsole/Commands/ClearCaches.php
+++ b/plugins/CoreConsole/Commands/ClearCaches.php
@@ -30,6 +30,7 @@ class ClearCaches extends ConsoleCommand
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
+ // Note: the logic for this command must be refactored in this helper function below.
Filesystem::deleteAllCacheOnUpdate();
$this->writeSuccessMessage($output, array('Caches cleared'));
diff --git a/plugins/CoreConsole/Commands/DevelopmentEnable.php b/plugins/CoreConsole/Commands/DevelopmentEnable.php
index 5ee80610d6..51ae722662 100644
--- a/plugins/CoreConsole/Commands/DevelopmentEnable.php
+++ b/plugins/CoreConsole/Commands/DevelopmentEnable.php
@@ -25,29 +25,23 @@ class DevelopmentEnable extends ConsoleCommand
$this->setName('development:enable');
$this->setAliases(array('development:disable'));
$this->setDescription('Enable or disable development mode. See config/global.ini.php in section [Development] for more information');
- $this->addOption('full', null, InputOption::VALUE_NONE, 'If set, it will enable/disable more developer options such as disable merged assets as well and not only the [Development:enabled] option.');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$commandName = $input->getFirstArgument();
$enable = (false !== strpos($commandName, 'enable'));
- $full = $input->getOption('full');
$config = Config::getInstance();
$development = $config->Development;
if ($enable) {
$development['enabled'] = 1;
- if ($full) {
- $development['disable_merged_assets'] = 1;
- }
+ $development['disable_merged_assets'] = 1;
$message = 'Development mode enabled';
} else {
$development['enabled'] = 0;
- if ($full) {
- $development['disable_merged_assets'] = 0;
- }
+ $development['disable_merged_assets'] = 0;
$message = 'Development mode disabled';
}
diff --git a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
index 593faf0f17..69f0ab46e4 100644
--- a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
+++ b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
@@ -100,8 +100,8 @@ git commit -m'' # WRITE A COMMIT MESSAGE
git push
cd ..
git add UI
-git commit -m'' #WRITE A COMMIT MESSAGE
git pull
+git commit -m'' #WRITE A COMMIT MESSAGE
git push";
$output->writeln($commands);
}
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index f833b1e5cc..a2f5195fa3 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -153,6 +153,9 @@ class CoreHome extends \Piwik\Plugin
$jsFiles[] = "plugins/CoreHome/angularjs/notification/notification.controller.js";
$jsFiles[] = "plugins/CoreHome/angularjs/notification/notification.directive.js";
+
+ $jsFiles[] = "plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js";
+ $jsFiles[] = "plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js";
}
public function getClientSideTranslationKeys(&$translationKeys)
@@ -243,7 +246,9 @@ class CoreHome extends \Piwik\Plugin
$translationKeys[] = 'General_Default';
$translationKeys[] = 'General_LoadingData';
$translationKeys[] = 'General_ErrorRequest';
+ $translationKeys[] = 'General_YourChangesHaveBeenSaved';
$translationKeys[] = 'CoreHome_UndoPivotBySubtable';
$translationKeys[] = 'CoreHome_PivotBySubtable';
+ $translationKeys[] = 'General_LearnMore';
}
}
diff --git a/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js b/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js
new file mode 100644
index 0000000000..4f6bd77d69
--- /dev/null
+++ b/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js
@@ -0,0 +1,85 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+(function () {
+ angular.module('piwikApp').controller('AjaxFormController', AjaxFormController);
+
+ AjaxFormController.$inject = ['piwikApi', '$filter'];
+
+ function AjaxFormController(piwikApi, $filter) {
+ var vm = this;
+
+ /**
+ * Set to non-null when a form submit request returns successfully. When successful, it will
+ * be the entire JSON parsed response of the request.
+ *
+ * @type {null|string}
+ */
+ vm.successfulPostResponse = null;
+
+ /**
+ * Set to non-null when a form submit request results in an error. When an error occurs,
+ * it will be set to the string error message.
+ *
+ * @type {null|string}
+ */
+ vm.errorPostResponse = null;
+
+ /**
+ * true if currently submitting a POST request, false if otherwise.
+ *
+ * @type {bool}
+ */
+ vm.isSubmitting = false;
+
+ vm.submitForm = submitForm;
+
+ /**
+ * Sends a POST to the configured API method.
+ */
+ function submitForm() {
+ var postParams;
+
+ vm.successfulPostResponse = null;
+ vm.errorPostResponse = null;
+
+ if (vm.sendJsonPayload) {
+ postParams = {data: JSON.stringify(vm.data)};
+ } else {
+ postParams = vm.data;
+ }
+
+ vm.isSubmitting = true;
+ piwikApi.post(
+ { // GET params
+ module: 'API',
+ method: vm.submitApiMethod
+ },
+ postParams,
+ { // request options
+ createErrorNotification: !vm.noErrorNotification
+ }
+ ).then(function (response) {
+ vm.successResponse = response;
+
+ if (!vm.noSuccessNotification) {
+ var UI = require('piwik/UI');
+ var notification = new UI.Notification();
+ notification.show($filter('translate')('General_YourChangesHaveBeenSaved'), {
+ context: 'success',
+ type: 'toast',
+ id: 'ajaxHelper'
+ });
+ notification.scrollToNotification();
+ }
+ }).catch(function (errorMessage) {
+ vm.errorPostResponse = errorMessage;
+ })['finally'](function () {
+ vm.isSubmitting = false;
+ });
+ }
+ }
+})(); \ No newline at end of file
diff --git a/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js b/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js
new file mode 100644
index 0000000000..89d572cedf
--- /dev/null
+++ b/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js
@@ -0,0 +1,142 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * AngularJS directive that manages an AJAX form.
+ *
+ * This directive will detect inputs & selects defined within an element and when a
+ * submit button is clicked, will post data from the inputs & selects to a Piwik API method.
+ *
+ * When the POST request is finished the result will, by default, be displayed as a
+ * notification.
+ *
+ * This directive accepts the following attributes:
+ *
+ * - **save-api-method**: **required** The Piwik API method that handles the POST request.
+ * - **send-json-payload**: Whether to send the data as a form encoded URL or to send it as JSON.
+ * If sending as JSON, the payload will still be a form encoded value,
+ * but will contain a JSON object like `{data: {...form data...}}`.
+ *
+ * This is for forms with lots of fields where having the same number
+ * of parameters in an API method would not be desired.
+ * - **no-error-notification**: If true, does not display an error notification if the AJAX post
+ * fails.
+ * - **no-success-notification**: If true, does not display an error notification if the AJAX
+ * results in success.
+ *
+ * **Custom Success/Error Handling**
+ *
+ * On success/failure, the response will be stored in controller scope. Child elements of a
+ * piwik-ajax-form element can access this data, and thus, can customize what happens when
+ * a form submit succeeds/fails.
+ *
+ * See the ajax-form.controller.js file for more info.
+ *
+ * Usage:
+ *
+ * <div piwik-ajax-form
+ * save-api-method="'MyPlugin.myFormSaveMethod'"
+ * send-json-payload="true"
+ * ng-model="myFormData">
+ *
+ * <h2>My Form</h2>
+ * <input name="myOption" value="myDefaultValue" type="text" />
+ * <input name="myOtherOption" type="checkbox" checked="checked" />
+ * <input type="submit" value="Submit" ng-disabled="ajaxForm.isSubmitting" />
+ *
+ * <div piwik-notification context='error' ng-show="errorPostResponse">ERROR!</div>
+ * </div>
+ */
+(function () {
+ angular.module('piwikApp').directive('piwikAjaxForm', piwikAjaxForm);
+
+ piwikAjaxForm.$inject = ['$parse'];
+
+ function piwikAjaxForm($parse) {
+ return {
+ restrict: 'A',
+ scope: {
+ submitApiMethod: '=',
+ sendJsonPayload: '=',
+ noErrorNotification: '=',
+ noSuccessNotification: '=',
+ useCustomDataBinding: '='
+ },
+ require: '?ngModel',
+ controller: 'AjaxFormController',
+ controllerAs: 'ajaxForm',
+ transclude: true,
+ compile: function (element, attrs) {
+ attrs.noErrorNotification = !! attrs.noErrorNotification;
+
+ return function (scope, element, attrs, ngModel, transclude) {
+ if (!scope.submitApiMethod) {
+ throw new Error("submitApiMethod is required");
+ }
+
+ scope.ajaxForm.submitApiMethod = scope.submitApiMethod;
+ scope.ajaxForm.sendJsonPayload = scope.sendJsonPayload;
+ scope.ajaxForm.noErrorNotification = scope.noErrorNotification;
+ scope.ajaxForm.noSuccessNotification = scope.noSuccessNotification;
+
+ scope.ajaxForm.data = {};
+
+ // if a model is supplied, initiate form data w/ model value
+ if (ngModel) {
+ var ngModelGetter = $parse(attrs.ngModel); // probably redundant, but I cannot find another way to
+ // get the ng model value here
+ scope.ajaxForm.data = ngModelGetter(scope.$parent);
+ }
+
+ // on change of any input, change appropriate value in model, but only if requested
+ if (!scope.useCustomDataBinding) {
+ element.on('change', 'input,select', function () {
+ setFormValueFromInput(this);
+ });
+ }
+
+ // on submit call controller submit method
+ element.on('click', 'input[type=submit]', function () {
+ scope.ajaxForm.submitForm();
+ });
+
+ // make sure child elements can access this directive's scope
+ transclude(scope, function(clone, scope) {
+ if (!scope.useCustomDataBinding) {
+ var $inputs = clone.find('input,select').not('[type=submit]');
+
+ // initialize form data to input values (include <select>s
+ $inputs.each(function () {
+ setFormValueFromInput(this, true);
+ });
+ }
+
+ element.append(clone);
+ });
+
+ function setFormValueFromInput(inputElement, skipScopeApply) {
+ var $ = angular.element,
+ name = $(inputElement).attr('name'),
+ val;
+
+ if ($(inputElement).attr('type') == 'checkbox') {
+ val = $(inputElement).is(':checked');
+ } else {
+ val = $(inputElement).val();
+ }
+
+ scope.ajaxForm.data[name] = val;
+
+ if (!skipScopeApply) {
+ scope.$apply();
+ }
+ }
+ };
+ }
+ };
+ }
+})(); \ No newline at end of file
diff --git a/plugins/CoreHome/javascripts/dataTable.js b/plugins/CoreHome/javascripts/dataTable.js
index 205ec70023..a65ffd8519 100644
--- a/plugins/CoreHome/javascripts/dataTable.js
+++ b/plugins/CoreHome/javascripts/dataTable.js
@@ -312,6 +312,7 @@ $.extend(DataTable.prototype, UIControl.prototype, {
self.handleColumnHighlighting(domElem);
self.handleExpandFooter(domElem);
self.setFixWidthToMakeEllipsisWork(domElem);
+ self.handleSummaryRow(domElem);
},
setFixWidthToMakeEllipsisWork: function (domElem) {
@@ -1700,6 +1701,22 @@ $.extend(DataTable.prototype, UIControl.prototype, {
});
},
+ handleSummaryRow: function (domElem) {
+ var details = _pk_translate('General_LearnMore', [' (<a href="http://piwik.org/faq/how-to/faq_54/" target="_blank">', '</a>)']);
+
+ domElem.find('tr.summaryRow').each(function () {
+ var labelSpan = $(this).find('.label .value');
+ var defaultLabel = labelSpan.text();
+
+ $(this).hover(function() {
+ labelSpan.html(defaultLabel + details);
+ },
+ function() {
+ labelSpan.text(defaultLabel);
+ });
+ });
+ },
+
// also used in action data table
doHandleRowActions: function (trs) {
var self = this;
diff --git a/plugins/CoreHome/lang/cs.json b/plugins/CoreHome/lang/cs.json
index 7a4067cc40..70341bdd0f 100644
--- a/plugins/CoreHome/lang/cs.json
+++ b/plugins/CoreHome/lang/cs.json
@@ -39,6 +39,7 @@
"PeriodWeeks": "týdnů",
"PeriodYear": "Rok",
"PeriodYears": "let",
+ "PivotBySubtable": "Toto hlášení není zaměřené %s Zaměřit na %s",
"PluginDescription": "Struktura hlášení",
"ReportGeneratedOn": "Hlášení vygenerované %s",
"ReportGeneratedXAgo": "Hlášení vygenerováno před %s",
@@ -54,6 +55,7 @@
"SupportPiwik": "Podpořte Piwik!",
"TableNoData": "Žádná data",
"ThereIsNoDataForThisReport": "Pro toto hlášení nejsou k dispozici žádná data",
+ "UndoPivotBySubtable": "Toto hlášení bylo zaměřeno %s Vrátit zpět",
"UnFlattenDataTable": "Hlášení je ploché %s Vytvořit hierarchický",
"ViewAllPiwikVideoTutorials": "Zobrazit všechny návody Piwik",
"WebAnalyticsReports": "Hlášení",
diff --git a/plugins/CoreHome/lang/da.json b/plugins/CoreHome/lang/da.json
index f19966cd1d..e62b9fd950 100644
--- a/plugins/CoreHome/lang/da.json
+++ b/plugins/CoreHome/lang/da.json
@@ -41,6 +41,7 @@
"PeriodWeeks": "uger",
"PeriodYear": "År",
"PeriodYears": "år",
+ "PivotBySubtable": "Rapporten er ikke pivoteret %s Pivoter med %s.",
"PluginDescription": "Struktur for webanalyse-rapporter.",
"ReportGeneratedOn": "Rapport genereret på %s",
"ReportGeneratedXAgo": "Rapport genereret %s siden",
@@ -56,6 +57,7 @@
"SupportPiwik": "Støt Piwik!",
"TableNoData": "Ingen data til denne tabel.",
"ThereIsNoDataForThisReport": "Der er ingen data for denne rapport.",
+ "UndoPivotBySubtable": "Rapporten er blevet pivoteret %s Fortryd pivot.",
"UnFlattenDataTable": "Rapporten er ikke hierarkisk %s lav den hierakisk",
"ViewAllPiwikVideoTutorials": "Vis alle Piwik videoselvstudier",
"WebAnalyticsReports": "Webanalyse-rapporter",
diff --git a/plugins/CoreHome/lang/de.json b/plugins/CoreHome/lang/de.json
index 90a7cb7f41..24ca6e25a1 100644
--- a/plugins/CoreHome/lang/de.json
+++ b/plugins/CoreHome/lang/de.json
@@ -41,6 +41,7 @@
"PeriodWeeks": "Wochen",
"PeriodYear": "Jahr",
"PeriodYears": "Jahre",
+ "PivotBySubtable": "Kein Pivot erstellt für diesen Bericht %s Pivot erstellen mit %s",
"PluginDescription": "Webanalytik Berichts-Struktur",
"ReportGeneratedOn": "Bericht erzeugt am %s",
"ReportGeneratedXAgo": "Bericht erzeugt vor %s",
@@ -56,6 +57,7 @@
"SupportPiwik": "Unterstützen Sie Piwik!",
"TableNoData": "Keine Daten für diese Tabelle.",
"ThereIsNoDataForThisReport": "Es stehen keine Daten für diesen Bericht zur Verfügung.",
+ "UndoPivotBySubtable": "Pivot erstellt für diesen Bericht %s Pivot rückgängig machen",
"UnFlattenDataTable": "Der Bericht ist flach %s Hierarchisch anzeigen",
"ViewAllPiwikVideoTutorials": "Zeige alle Piwik Video Tutorials an",
"WebAnalyticsReports": "Webanalytik Berichte",
diff --git a/plugins/CoreHome/lang/el.json b/plugins/CoreHome/lang/el.json
index edbac45aec..3251141515 100644
--- a/plugins/CoreHome/lang/el.json
+++ b/plugins/CoreHome/lang/el.json
@@ -41,6 +41,7 @@
"PeriodWeeks": "εβδομάδων",
"PeriodYear": "Έτος",
"PeriodYears": "ετών",
+ "PivotBySubtable": "Η αναφορά αυτή δεν είναι θεμελιωμένη %s Να θεμελιωθεί από %s",
"PluginDescription": "Δομή Αναφορών Ανάλυσης Ιστού.",
"ReportGeneratedOn": "Η αναφορά δημιουργήθηκε στις %s",
"ReportGeneratedXAgo": "Η αναφορά δημιουργήθηκε πριν από %s",
@@ -56,6 +57,7 @@
"SupportPiwik": "Στηρίξτε το Piwik!",
"TableNoData": "Δεν υπάρχουν δεδομένα για τον πίνακα.",
"ThereIsNoDataForThisReport": "Δεν υπάρχουν δεδομένα για αυτή την αναφορά.",
+ "UndoPivotBySubtable": "Η αναφορά θεμελιώθηκε %s Αναίρεση της θεμελίωσης",
"UnFlattenDataTable": "Η αναφορά είναι επίπεδη %s Κάντε την ιεραρχημένη",
"ViewAllPiwikVideoTutorials": "Δείτε όλα τα βίντεο εκμάθησης του Piwik",
"WebAnalyticsReports": "Αναφορές Στατιστικών Ιστού",
diff --git a/plugins/CoreHome/lang/et.json b/plugins/CoreHome/lang/et.json
index 41bcc820ed..a91581a1af 100644
--- a/plugins/CoreHome/lang/et.json
+++ b/plugins/CoreHome/lang/et.json
@@ -7,6 +7,7 @@
"DateFormat": "%longDay% %day% %longMonth% %longYear%",
"Default": "vaikimisi",
"ExcludeRowsWithLowPopulation": "Kuvatakse kõiki ridu %s Eemalda ebapopulaarsemad",
+ "ExternalHelp": "Abi (avaneb uues aknas)",
"FlattenDataTable": "Antud raport on hierarhiline %s Tee see lamedaks",
"HowMuchIsPiwikWorth": "Kui palju on Piwik sulle väärt?",
"IncludeRowsWithLowPopulation": "Ebapopulaarsed read on peidetud %s Kuva kõik read",
diff --git a/plugins/CoreHome/lang/it.json b/plugins/CoreHome/lang/it.json
index 1e36eeb330..704abae336 100644
--- a/plugins/CoreHome/lang/it.json
+++ b/plugins/CoreHome/lang/it.json
@@ -41,6 +41,7 @@
"PeriodWeeks": "settimane",
"PeriodYear": "Anno",
"PeriodYears": "anni",
+ "PivotBySubtable": "Questo report non è imperniato al Pivot %s da %s",
"PluginDescription": "Struttura di base per i report di Web Analytics.",
"ReportGeneratedOn": "Report generato il %s",
"ReportGeneratedXAgo": "Report generato %s fa",
@@ -56,6 +57,7 @@
"SupportPiwik": "Sostieni Piwik!",
"TableNoData": "nessun dato per questa tabella.",
"ThereIsNoDataForThisReport": "Non c'è nessun dato in questo report.",
+ "UndoPivotBySubtable": "Questo report è stato imperniato al Pivot %s Undo",
"UnFlattenDataTable": "Il report è piatto %s Rendilo gerarchico",
"ViewAllPiwikVideoTutorials": "Vedi tutti i Video Tutorial di Piwik",
"WebAnalyticsReports": "Report Web Analytics",
diff --git a/plugins/CoreHome/lang/pt.json b/plugins/CoreHome/lang/pt.json
index fbb65ea1c1..e111bdcb06 100644
--- a/plugins/CoreHome/lang/pt.json
+++ b/plugins/CoreHome/lang/pt.json
@@ -1,6 +1,12 @@
{
"CoreHome": {
"CategoryNoData": "Sem dados nesta categoria. Tente o \"Incluir toda a população\".",
+ "DataTableExcludeAggregateRows": "Linhas agregadas encontram-se visíveis %s Esconda-as",
+ "DataTableIncludeAggregateRows": "Linhas agregadas encontram-se escondidas %s Mostre-as",
+ "Default": "defeito",
+ "DonateCall1": "O Piwik nunca lhe custará nada para usar, mas isso não quer dizer que não nos custe nada para o criar.",
+ "DonateCall2": "O Piwik presisa do seu contínuo suporte para crescer e brilhar.",
+ "DonateCall3": "Se você sente que o Piwik adicionou um valor significante ao seu negócio, %1$spor favor considere realizar um donativo!%2$s",
"JavascriptDisabled": "JavaScript tem que estar activado para poder usar Piwik no esquema padrão.<br \/>No entanto, parece que JavaScript está desactivado ou não é suportado pelo seu navegador.<br \/>Para usar o esquema padrão, active JavaScript nas opções do seu navegador, depois %1$stente de novo%2$s.<br \/>",
"PageOf": "%1$s de %2$s",
"PeriodDay": "Dia",
diff --git a/plugins/CoreUpdater/Commands/Update.php b/plugins/CoreUpdater/Commands/Update.php
index 108281c460..900de31a3d 100644
--- a/plugins/CoreUpdater/Commands/Update.php
+++ b/plugins/CoreUpdater/Commands/Update.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugins\CoreUpdater\Commands;
+use Piwik\Filesystem;
use Piwik\Plugin\ConsoleCommand;
use Piwik\Plugins\CoreUpdater\Controller;
use Piwik\Plugins\CoreUpdater\NoUpdatesFoundException;
@@ -35,6 +36,8 @@ class Update extends ConsoleCommand
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
+ $this->executeClearCaches();
+
$doDryRun = (bool) $input->getOption('dry-run');
try {
@@ -54,6 +57,11 @@ class Update extends ConsoleCommand
}
}
+ protected function executeClearCaches()
+ {
+ Filesystem::deleteAllCacheOnUpdate();
+ }
+
protected function makeUpdate(InputInterface $input, OutputInterface $output, $doDryRun)
{
$this->checkAllRequiredOptionsAreNotEmpty($input);
diff --git a/plugins/CoreUpdater/lang/es.json b/plugins/CoreUpdater/lang/es.json
index 0a71529f2c..b3210a311b 100644
--- a/plugins/CoreUpdater/lang/es.json
+++ b/plugins/CoreUpdater/lang/es.json
@@ -38,7 +38,7 @@
"PiwikUpdatedSuccessfully": "¡Piwik actualizado con éxito!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "La base de datos de Piwik será actualizada desde la versión %1$s a la nueva versión %2$s.",
"PluginDescription": "mecanismo de actualización de Piwik",
- "ReadyToGo": "Listo?",
+ "ReadyToGo": "¿Listo?",
"TheFollowingPluginsWillBeUpgradedX": "Los siguientes plugins serán actualizados: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Algunos plugins que utilizas han sido actualizados en el Marketplace:",
"ThereIsNewVersionAvailableForUpdate": "Hay una nueva versión de Piwik disponible para actualizar",
diff --git a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
index 13c153f89c..f6fe938c6a 100644
--- a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
+++ b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
@@ -18,7 +18,8 @@
{% else %}
{%- for rowId, row in dataTable.getRows() -%}
{%- set rowHasSubtable = not subtablesAreDisabled and row.getIdSubDataTable() and properties.subtable_controller_action is not null -%}
- {%- set shouldHighlightRow = rowId == constant('Piwik\\DataTable::ID_SUMMARY_ROW') and properties.highlight_summary_row -%}
+ {%- set isSummaryRow = rowId == constant('Piwik\\DataTable::ID_SUMMARY_ROW') -%}
+ {%- set shouldHighlightRow = isSummaryRow and properties.highlight_summary_row -%}
{# display this row if it doesn't have a subtable or if we don't replace the row with the subtable #}
{%- set showRow = subtablesAreDisabled
@@ -28,7 +29,7 @@
{% if showRow %}
<tr {% if rowHasSubtable %}id="{{ row.getIdSubDataTable() }}"{% endif %}
- class="{{ row.getMetadata('css_class') }} {% if rowHasSubtable %}subDataTable{% endif %}{% if shouldHighlightRow %} highlight{% endif %}"
+ class="{{ row.getMetadata('css_class') }} {% if rowHasSubtable %}subDataTable{% endif %}{% if shouldHighlightRow %} highlight{% endif %}{% if isSummaryRow %} summaryRow{% endif %}"
{% if rowHasSubtable %}title="{{ 'CoreHome_ClickRowToExpandOrContract'|translate }}"{% endif %}>
{% for column in properties.columns_to_display %}
<td>
diff --git a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
index a61cb11554..a02dc66b3a 100644
--- a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
@@ -120,7 +120,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
diff --git a/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml b/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
index a61cb11554..a02dc66b3a 100644
--- a/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
@@ -120,7 +120,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
diff --git a/plugins/DevicesDetection/lang/de.json b/plugins/DevicesDetection/lang/de.json
index 431728a5bb..34f16e5736 100644
--- a/plugins/DevicesDetection/lang/de.json
+++ b/plugins/DevicesDetection/lang/de.json
@@ -16,8 +16,8 @@
"DevicesDetection": "Geräte der Besucher",
"DeviceType": "Gerätetyp",
"FeaturePhone": "Feature-Phone",
- "OperatingSystemFamilies": "Betriebssystem Familie",
- "OperatingSystemVersions": "Betriebssystem Familien",
+ "OperatingSystemFamilies": "Betriebssystem Familien",
+ "OperatingSystemVersions": "Betriebssystem Versionen",
"PluginDescription": "Dieses Plugin stellt erweiterte Informationen über mobile Geräte, wie Marke (Hersteller), Modell (Geräteversion), bessere Gerätetyperkennung (TV, Konsolen, Smartphones, Desktop, etc) und mehr bereit. Dieses Plugin fügt einen neuen Bericht unter 'Besucher > Geräte' hinzu.",
"SmartDisplay": "Smart Display",
"Smartphone": "Smartphone",
diff --git a/plugins/Events/lang/pl.json b/plugins/Events/lang/pl.json
index 24ff7eb981..9fc090435d 100644
--- a/plugins/Events/lang/pl.json
+++ b/plugins/Events/lang/pl.json
@@ -16,6 +16,7 @@
"MaxValueDocumentation": "Maksymalna wartość dla tego zdarzenia",
"MinValue": "Minimalna wartość",
"MinValueDocumentation": "Minimalna wartość tego wydarzenia",
+ "SecondaryDimension": "Drugi wymiar to %s.",
"TopEvents": "Najważniejsze wydarzenia",
"TotalEvents": "Liczba zdarzeń",
"TotalEventsDocumentation": "Łączna liczba zdarzeń",
diff --git a/plugins/Goals/lang/es.json b/plugins/Goals/lang/es.json
index 48d0d23238..bd78837b19 100644
--- a/plugins/Goals/lang/es.json
+++ b/plugins/Goals/lang/es.json
@@ -10,6 +10,7 @@
"BestKeywords": "Tus mejores palabras de búsqueda son:",
"BestReferrers": "Tus mejores palabras de búsqueda son:",
"CaseSensitive": "Coincidir mayúsculas y minúsculas",
+ "ChooseGoal": "Elegir Objetivo",
"ClickOutlink": "Clic en un Enlace a un sitio web externo",
"ColumnAverageOrderRevenueDocumentation": "Valor Medio del Pedido (VMP) es el valor obtenido dividiendo los ingresos totales de todos los pedidos entre el número de pedidos.",
"ColumnAveragePriceDocumentation": "El promedio de ingresos para este %s.",
diff --git a/plugins/Goals/lang/et.json b/plugins/Goals/lang/et.json
index 1e015d9940..32a485f663 100644
--- a/plugins/Goals/lang/et.json
+++ b/plugins/Goals/lang/et.json
@@ -10,6 +10,7 @@
"BestKeywords": "Sinu parimad tulutoovad märksõnad on:",
"BestReferrers": "Sinu parimad tulutoovad veebilehtede suunajad on:",
"CaseSensitive": "Tähtede tõusutundlik võrdlus",
+ "ChooseGoal": "Vali eesmärk",
"ClickOutlink": "Klikivad välise lehe lingile",
"ColumnConversions": "Tulu tekitamised",
"ColumnVisits": "Külastuste koguarv, hoolimata sellest, kas eesmärgini jõuti või ei.",
diff --git a/plugins/Goals/lang/ja.json b/plugins/Goals/lang/ja.json
index 6c7c37bd80..71be9dc192 100644
--- a/plugins/Goals/lang/ja.json
+++ b/plugins/Goals/lang/ja.json
@@ -65,7 +65,12 @@
"Manually": "手動",
"ManuallyTriggeredUsingJavascriptFunction": "JavaScript API の trackGoal() を使用した手動トリガー",
"MatchesExpression": "正規表現 %s に一致する",
+ "NewGoalDescription": "Piwik での目標とは、あなたの戦略や優先事項のことです。例えば、以下を含みます。:「パンフレットのダウンロード」、「ニュースレターの登録」、「services.html ページへの訪問」等",
+ "NewGoalIntro": "目標コンバージョントラッキングは、あなたのビジネス目標の測定や改善のために、最も効率的な方法の一つです。",
+ "NewGoalYouWillBeAbleTo": "各目標に対するパフォーマンスの確認や分析を行い、コンバージョンやコンバージョンレート、訪問数あたりの収益を上げる方法を知ることができます。",
"NewVisitorsConversionRateIs": "新規ビジターのコンバージョン率は %s です",
+ "NewWhatDoYouWantUsersToDo": "ウェブサイトビジターに、何をしてもらいたいですか?",
+ "NoGoalsNeedAccess": "管理者またはスーパーユーザーアクセス権限を持つユーザーのみが、指定のウェブサイトに目標を追加できます。ウェブサイトに目標を設定するには、Piwik 管理者にお問い合わせください。<br> 目標の追跡は、あなたのウェブサイトへの理解を深め、パフォーマンスを最大化させるために、非常に良い方法です。",
"Optional": "(オプション)",
"OverallConversionRate": "%s 総コンバージョン率(目標達成ビジット)",
"OverallRevenue": "%s 総収益",
@@ -77,6 +82,7 @@
"Products": "製品",
"ProductSKU": "製品番号",
"ReturningVisitorsConversionRateIs": "リピーターのコンバージョン率は %s です",
+ "SendEvent": "イベントを送信",
"SingleGoalOverviewDocumentation": "これは単一の目標のコンバージョンの概観です。 %s グラフの下のスパークラインは、クリックして拡大できます。",
"UpdateGoal": "目標を更新",
"URL": "URL",
diff --git a/plugins/ImageGraph/lang/ja.json b/plugins/ImageGraph/lang/ja.json
index 6b3aad8c3d..492ff339e0 100644
--- a/plugins/ImageGraph/lang/ja.json
+++ b/plugins/ImageGraph/lang/ja.json
@@ -1,5 +1,6 @@
{
"ImageGraph": {
+ "ColumnOrdinateMissing": "列 '%s' は、このレポートで見つかりませんでした。%s のいずれかをお試しください。",
"PluginDescription": "Piwikリポートの美しい静的PNGグラフ画像を生成します。"
}
} \ No newline at end of file
diff --git a/plugins/Insights/lang/et.json b/plugins/Insights/lang/et.json
new file mode 100644
index 0000000000..6a83802c17
--- /dev/null
+++ b/plugins/Insights/lang/et.json
@@ -0,0 +1,5 @@
+{
+ "Insights": {
+ "Filter": "Filter"
+ }
+} \ No newline at end of file
diff --git a/plugins/Insights/lang/ja.json b/plugins/Insights/lang/ja.json
index ce74cdcf84..93d1bf2325 100644
--- a/plugins/Insights/lang/ja.json
+++ b/plugins/Insights/lang/ja.json
@@ -1,6 +1,8 @@
{
"Insights": {
"ControlComparedToDescription": "比較する実績値は",
+ "ControlFilterByDescription": "すべて、変動のみ、新規のみ、削除のみを表示",
+ "DatePeriodCombinationNotSupported": "この日付と期間の組み合わせに対するインサイトは作成できません。",
"DayComparedToPreviousDay": "前の日",
"DayComparedToPreviousWeek": "前週の同じ日",
"DayComparedToPreviousYear": "去年の同じ日",
@@ -11,9 +13,17 @@
"FilterOnlyIncreaser": "増加した値のみ",
"FilterOnlyMovers": "変化のあった値のみ",
"FilterOnlyNew": "新しい値のみ",
+ "IgnoredChanges": "訪問数 %s 未満の影響を及ぼす変更は無視されました。",
"MonthComparedToPreviousMonth": "前の月",
"MonthComparedToPreviousYear": "去年の同じ月",
+ "MoversAndShakersWidgetTitle": "変動レポート",
+ "NoResultMatchesCriteria": "基準に一致する列がありません。",
"OverviewWidgetTitle": "インサイトの概要",
+ "TitleConsideredInsightsChanges": "列が少なくとも %1$s 訪問 ( 合計訪問数 %3$s の %2$s%% ) 増加または減少しました。",
+ "TitleConsideredInsightsGrowth": "次の列は %2$s に比べて少なくとも %1$s%% の成長があります。",
+ "TitleRowDisappearedDetails": "%2$s によって '%1$s' は減少し、%4$s に比べ、%3$s で消滅した",
+ "TitleRowMoverAndShaker": "この列は、平均より高い影響を与えました。",
+ "TitleRowNewDetails": "'%2$s によって '%1$s' が増加し、%3$s に比べて新しい",
"WeekComparedToPreviousWeek": "前の週",
"WidgetCategory": "インサイト",
"YearComparedToPreviousYear": "前の年"
diff --git a/plugins/Installation/lang/es.json b/plugins/Installation/lang/es.json
index 74b759f550..84d8bec7e1 100644
--- a/plugins/Installation/lang/es.json
+++ b/plugins/Installation/lang/es.json
@@ -1,5 +1,6 @@
{
"Installation": {
+ "CannotConnectToDb": "No se puedo conectar con la base de datos",
"CollaborativeProject": "Piwik es un proyecto de colaboración, creado con amor por personas de todo el mundo",
"ConfigurationHelp": "Su archivo de configuración de Piwik parece estar desconfigurado. Puede remover el archivo config\/config.ini.php y seguir la instalación, o corregir la configuración de conexión de la base de datos.",
"ConfirmDeleteExistingTables": "¿Está seguro de que desea borrar las tablas: %s de su base de datos? ADVERTENCIA: ¡LOS DATOS DE ESTAS TABLAS NO SE PUEDEN RECUPERAR!",
@@ -34,6 +35,7 @@
"NfsFilesystemWarningSuffixAdmin": "Esto significa que Piwik será extremadamente lento cuando se utilice sesiones basadas en archivos.",
"NfsFilesystemWarningSuffixInstall": "Utilizando sesiones basadas en archivos sobre NFS es extremadamente lento, por lo tanto, Piwik utilizará sesiones basada en base de datos. Si tiene varios usuarios de panel, puede que necesite incrementar el número máximo de conexiones de clientes al servidor de la base de datos.",
"NoConfigFound": "El archivo de configuración de Piwik no se ha encontrado y está intentando acceder a una página de Piwik.<br \/><b>  » Puede <a href='index.php'>instalar Piwik ahora<\/a><\/b><br \/><small>¡Si ha instalado Piwik antes y tiene algunas tablas en su BD, no se preocupe, usted puede reutilizar las mismas tablas y mantener sus datos existentes!<\/small>",
+ "NotSupported": "no soportado",
"Optional": "Opcional",
"Password": "Contraseña",
"PasswordDoNotMatch": "las contraseñas no coinciden",
diff --git a/plugins/Installation/lang/ja.json b/plugins/Installation/lang/ja.json
index 51945d8fed..2a3052923c 100644
--- a/plugins/Installation/lang/ja.json
+++ b/plugins/Installation/lang/ja.json
@@ -1,9 +1,13 @@
{
"Installation": {
+ "CannotConnectToDb": "データベースに接続できません。",
+ "CannotConnectToDbResolvingExplanation": "これは一時的な問題の可能性があります。%1$srefreshing the page%2$s をお試しください。問題が続く場合、Piwik 管理者にお問い合わせください。",
+ "CollaborativeProject": "Piwik は、世界中の人々に愛され、構築されている共同プロジェクトです。",
"ConfigurationHelp": "Piwik 設定ファイルが誤設定されているようです。 config\/config.ini.php を削除してインストールを再開するか、データベースの接続設定を修正してください。",
"ConfirmDeleteExistingTables": "本当にデータベースからテーブル %s を削除しますか? 警告: これらのテーブルのデータを復旧することはできません!",
"Congratulations": "おめでとうございます",
"CongratulationsHelp": "<p>おめでとうございます! Piwik のインストールは完了しました。<\/p><p>javascript コードをウェブサイトのページに埋め込み、最初のビジターをお待ちください!<\/p>",
+ "DatabaseAbilities": "データベースアビリティ",
"DatabaseCreation": "データベースの作成",
"DatabaseErrorConnect": "データベースサーバーへの接続中にエラーが発生しました",
"DatabaseServerVersion": "データベースサーバーのバージョン",
@@ -16,13 +20,23 @@
"Email": "メールアドレス",
"Extension": "エクステンション",
"Filesystem": "ファイルシステム",
+ "GetInvolved": "もし Piwik を気にって頂けたら、是非 %1$sget involved%2$s 。",
"GoBackAndDefinePrefix": "戻って、Piwik テーブルのプレフィックスを定義する",
"HappyAnalysing": "ハッピーな解析を!",
"Installation": "インストール",
"InstallationStatus": "インストール状況",
"InsufficientPrivilegesHelp": "phpMyAdminのようなツールを使用するか、正しいSQLクエリを実行することにより、これらの権限を追加できます。やり方がわからない場合は、システム管理者に依頼して、権限を付与してもらってください。",
+ "InsufficientPrivilegesMain": "データベースが存在しない ( および作成できない ) 、または具体的なユーザーが十分な権限を持っていない可能性があります。データベースユーザーは、次の権限を有する必要があります。: %s",
+ "JsTagArchivingHelp1": "中~高トラフィックのウェブサイトのために、Piwik をより早く(例えば %1$ssetting up auto-archiving%2$s のように) 実行するための最適化の手段があります。",
+ "JSTracking_EndNote": "注:インストールの処理後、%1$sTracking Code%2$s の管理セクションで、トラッキングコードのカスタマイズを行うことができます。",
+ "JSTracking_Intro": "Piwik でウェブトラフィックの追跡をするには、一部の特別なコードが各 web ページに追加されているかどうかを確認する必要があります。",
"LargePiwikInstances": "高トラフィック環境で Piwik を使用するためのヒント",
"Legend": "説明",
+ "LoadDataInfileRecommended": "あなたの Piwik サーバーが高いトラフィックのウェブサイト ( 例、1 ヶ月あたり 100,000 ページ以上 ) を追跡している場合、この問題の解決をお勧めします。",
+ "LoadDataInfileUnavailableHelp": "%1$s を使用すると、Piwik のアーカイブプロセスを大幅に高速化させます。それを Piwik で利用可能にするには、お使いの PHP と MySQL ソフトウェアのアップデートをお試しください。またデータベースユーザーが %2$s 権限を持っているかどうかご確認ください。",
+ "NfsFilesystemWarning": "あなたのサーバーは、NFS ファイルシステムを使用しています。",
+ "NfsFilesystemWarningSuffixAdmin": "これは、ファイルベースのセッションを利用する際、Piwik が極端に遅くなることを意味します。",
+ "NfsFilesystemWarningSuffixInstall": "NFS 上でファイルベースのセッションを利用すると極端に遅いので、Piwik はデータベースセッションを使用します。同時に多くのダッシュボードユーザーがいる場合、データベースサーバーへのクライアント接続の最大数を増やす必要があります。",
"NoConfigFound": "Piwik の設定ファイルを見つけることができませんでしたが、あなたは Piwik ページにアクセスしようとしています。<br \/><b>  »<a href='index.php'>ただちに Piwik をインストール<\/a>することができます。<\/b><br \/><small>以前に Piwik をインストールしたことがあり、DB に多少のデータがある場合でも心配しないでください。 既存のデータを保持したまま、同じテーブルを再利用することができます!<\/small>",
"NotSupported": "サポートされていません",
"Optional": "オプション",
@@ -30,22 +44,30 @@
"PasswordDoNotMatch": "パスワードが一致しませんでした",
"PasswordRepeat": "パスワード(再入力)",
"PercentDone": "%s %% 完了",
+ "PiwikOrgNewsletter": "私に Piwik コミュニティの最新情報をメールで送る",
+ "PiwikProNewsletter": "%sPiwik PRO%s サービス( 月1回以下のメール受信 ) に興味があります。",
"PleaseFixTheFollowingErrors": "次のエラーを修正してください",
"PluginDescription": "Piwik のインストール処理を行います。 インストールは通常1回のみですが、設定ファイル(config\/config.inc.php)が削除された場合は、インストールが再度開始されます。",
"Requirements": "Piwik の動作環境",
"RestartWebServer": "この変更を行った後、ウェブサーバーを再起動してください。",
+ "ReusingTables": "表の再利用",
+ "SeeBelowForMoreInfo": "詳細は、以下をご確認ください。",
"SetupWebsite": "ウェブサイトのセットアップ",
"SetupWebsiteError": "ウェブサイトを追加する際にエラーが発生しました",
"SetupWebSiteName": "ウェブサイトの名前",
"SetupWebsiteSetupSuccess": "ウェブサイト %s は正常に作成されました!",
"SetupWebSiteURL": "ウェブサイトの URL",
+ "SiteSetup": "Piwik で追跡・分析したい初めのウェブサイトを設定してください。",
+ "SiteSetupFootnote": "注: Piwik のインストールが完了すると、さらに追跡対象のウェブサイトを追加することができるようになります!",
"SuperUser": "スーパーユーザー",
"SuperUserLogin": "スーパーユーザーのログイン",
+ "SuperUserSetupError": "スーパーユーザーの追加時に、エラーが発生しました。",
"SuperUserSetupSuccess": "スーパーユーザーの作成に成功しました!",
"SystemCheck": "システムの確認",
"SystemCheckAutoUpdateHelp": "注意: Piwik のワンクリックアップデートには、Piwik のフォルダとその内容に書き込み権限が必要となります。",
"SystemCheckCreateFunctionHelp": "Piwik はコールバックに匿名関数を使用します。",
"SystemCheckCronArchiveProcess": "アーカイブ cron",
+ "SystemCheckCronArchiveProcessCLI": "CLI を経由して処理を管理する",
"SystemCheckDatabaseHelp": "Piwik には、mysqli エクステンションか、PDO と pdo_mysql エクステンションの両方の、どちらかが必要です。",
"SystemCheckDebugBacktraceHelp": "View::factory はコール側モジュールのビューを作成することができません。",
"SystemCheckError": "エラー発生 - 次の処理へ進む前に修正する必要があります。",
@@ -53,13 +75,16 @@
"SystemCheckExtensions": "その他の必須エクステンション",
"SystemCheckFileIntegrity": "ファイルの整合性",
"SystemCheckFunctions": "必須関数",
+ "SystemCheckGDFreeType": "GD > 2.x + Freetype (graphics)",
"SystemCheckGDHelp": "スパークライン(小さなグラフ)は動作しません。",
"SystemCheckGlobHelp": "この組み込み関数はホストで無効化されています。 Piwik はこの関数のエミュレートを試みますが、さらなるセキュリティ制限に遭遇する場合があります。 また、機能性にも影響を与える場合があります。",
"SystemCheckGzcompressHelp": "zlib エクステンションと gzcompress() 関数を有効にする必要があります。",
"SystemCheckGzuncompressHelp": "zlib エクステンションと gzuncompress() 関数を有効にする必要があります。",
"SystemCheckIconvHelp": "\"iconv\" のサポートを有効にして、PHP の再構築と設定を行う必要があります(--with-iconv)。",
+ "SystemCheckJsonHelp": "JSON データの読取と書込には、Piwik に php5-json の拡張モジュールが必要です。",
"SystemCheckMailHelp": "mail() 関数がない場合、フィードバックとパスワード紛失のメッセージを送信することができません。",
"SystemCheckMbstring": "mbstring",
+ "SystemCheckMbstringHelp": "拡張モジュール mbstring は、ユーザインタフェースと API レスポンスで、マルチバイト文字を処理するために必要です。また、php.ini で mbstring.func_overload が「 0 」に設定されていることを確認してください。",
"SystemCheckMemoryLimit": "メモリー制限",
"SystemCheckMemoryLimitHelp": "アクセス数の多いウェブサイトでは、アーカイブ処理の実行に、現在許可されている以上に多くのメモリを必要とする場合があります。<br \/>必要であれば、php.ini ファイルのディレクティブ memory_limit を参照してください。",
"SystemCheckOpenURL": "オープン URL",
diff --git a/plugins/LeftMenu/lang/es.json b/plugins/LeftMenu/lang/es.json
new file mode 100644
index 0000000000..e4156feb2e
--- /dev/null
+++ b/plugins/LeftMenu/lang/es.json
@@ -0,0 +1,5 @@
+{
+ "LeftMenu": {
+ "GlobalSettingTitle": "Menú izquierdo activado por defecto"
+ }
+} \ No newline at end of file
diff --git a/plugins/Login/lang/pl.json b/plugins/Login/lang/pl.json
index e277d958b5..8a43531505 100644
--- a/plugins/Login/lang/pl.json
+++ b/plugins/Login/lang/pl.json
@@ -3,6 +3,7 @@
"ConfirmationLinkSent": "Potwierdzenie zostało wysłane na skrzynkę odbiorczą. Sprawdź swój e-mail i odwiedzić link do autoryzacji żądania zmiany hasła.",
"ContactAdmin": "Prawdopodobny powód: twój host mógł wyłączyć działanie funkcji mail(). <br \/>Skontaktuj się w tej sprawie ze swoim administratorem statystyk Piwik.",
"ExceptionPasswordMD5HashExpected": "Oczekiwanym parametrem hasła jest hash z MD5 uzyskany z hasła.",
+ "InvalidNonceOrHeadersOrReferrer": "Błąd zabezpieczeń formularza. Proszę przeładować stronę z formularzem i upewnić się, że obsługa ciasteczek jest włączona. Jeśli korzystasz z serwera proxy, należy %s skonfigurować Piwik, tak aby akceptował nagłówek serwera proxy%s, który przekazuje nagłówek serwera docelowego. Ponadto sprawdź, czy naglówek Referrer jest poprawnie wysyłany.",
"InvalidOrExpiredToken": "Token jest błędny lub już wygasł.",
"InvalidUsernameEmail": "Błędna nazwa użytkownika i\/lub adres e-mail",
"LogIn": "Zaloguj się",
diff --git a/plugins/MobileMessaging/MobileMessaging.php b/plugins/MobileMessaging/MobileMessaging.php
index 884ff9b63a..ed57c259f9 100644
--- a/plugins/MobileMessaging/MobileMessaging.php
+++ b/plugins/MobileMessaging/MobileMessaging.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\MobileMessaging;
use Piwik\Option;
+use Piwik\Period;
use Piwik\Piwik;
use Piwik\Plugins\API\API as APIPlugins;
use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging;
@@ -177,7 +178,7 @@ class MobileMessaging extends \Piwik\Plugin
}
public function sendReport($reportType, $report, $contents, $filename, $prettyDate, $reportSubject, $reportTitle,
- $additionalFiles)
+ $additionalFiles, Period $period = null, $force)
{
if (self::manageEvent($reportType)) {
$parameters = $report['parameters'];
diff --git a/plugins/MobileMessaging/lang/pl.json b/plugins/MobileMessaging/lang/pl.json
index eaf82a7798..859635f564 100644
--- a/plugins/MobileMessaging/lang/pl.json
+++ b/plugins/MobileMessaging/lang/pl.json
@@ -1,11 +1,13 @@
{
"MobileMessaging": {
"PhoneNumbers": "Numery telefonu",
+ "Settings_APIKey": "Klucz API",
"Settings_CountryCode": "Kod Państwa",
"Settings_DeleteAccountConfirm": "Czy jesteś pewny, że chcesz skasowac to konto SMS?",
"Settings_ManagePhoneNumbers": "Zarządzaj numerami telefonów",
"Settings_PhoneNumber": "Numer telefonu",
"Settings_PhoneNumbers_Add": "Dodaj nowy numer telefonu",
+ "Settings_SMSProvider": "Dostawca usługi SMS",
"Settings_ValidatePhoneNumber": "Zatwierdź",
"SMS_Content_Too_Long": "[zbyt długie]",
"TopMenu": "Raporty Email & SMS"
diff --git a/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php b/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
index 6d2eb9849b..f387534bf3 100644
--- a/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
+++ b/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
@@ -255,7 +255,7 @@ class MobileMessagingTest extends IntegrationTestCase
\Piwik\Plugins\MobileMessaging\API::setSingletonInstance($stubbedAPIMobileMessaging);
$mobileMessaging = new MobileMessaging();
- $mobileMessaging->sendReport(MobileMessaging::MOBILE_TYPE, $report, $reportContent, null, null, $reportSubject, null, null);
+ $mobileMessaging->sendReport(MobileMessaging::MOBILE_TYPE, $report, $reportContent, null, null, $reportSubject, null, null, null, false);
\Piwik\Plugins\MobileMessaging\API::unsetInstance();
}
diff --git a/plugins/Morpheus/stylesheets/general/_forms.less b/plugins/Morpheus/stylesheets/general/_forms.less
index ea75691a78..475c72d9f7 100644
--- a/plugins/Morpheus/stylesheets/general/_forms.less
+++ b/plugins/Morpheus/stylesheets/general/_forms.less
@@ -23,6 +23,7 @@ button[type="button"],
font-weight: normal;
padding: 5px 15px !important;
text-align: center;
+ text-decoration: none !important;
cursor: pointer;
border: 0px !important;
&:hover {
diff --git a/plugins/Morpheus/templates/javascriptCode.tpl b/plugins/Morpheus/templates/javascriptCode.tpl
index 344e6d0311..125259b807 100644
--- a/plugins/Morpheus/templates/javascriptCode.tpl
+++ b/plugins/Morpheus/templates/javascriptCode.tpl
@@ -5,11 +5,11 @@
_paq.push(['enableLinkTracking']);
(function() {
{$setTrackerUrl}
- _paq.push(['setTrackerUrl', u+'piwik.php']);
+ {$optionsBeforeTrackerUrl}_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', {$idSite}]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
-<noscript><p><img src="//{$piwikUrl}/piwik.php?idsite={$idSite}" style="border:0;" alt="" /></p></noscript>
+<noscript><p><img src="{$protocol}{$piwikUrl}/piwik.php?idsite={$idSite}" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
diff --git a/plugins/MultiSites/lang/pl.json b/plugins/MultiSites/lang/pl.json
index 2999d348d5..a3557cd8a8 100644
--- a/plugins/MultiSites/lang/pl.json
+++ b/plugins/MultiSites/lang/pl.json
@@ -2,6 +2,7 @@
"MultiSites": {
"Evolution": "Postęp",
"LoadingWebsites": "Ładowanie stron",
+ "Pagination": "%s - %s z %s",
"PluginDescription": "Wyświetla wielostronicowe podsumowania\/statystyki. Obecnie zastosowane jako wtyczka jądra Piwik."
}
} \ No newline at end of file
diff --git a/plugins/PrivacyManager/javascripts/privacySettings.js b/plugins/PrivacyManager/javascripts/privacySettings.js
index 4f0260e7d6..f40985b984 100644
--- a/plugins/PrivacyManager/javascripts/privacySettings.js
+++ b/plugins/PrivacyManager/javascripts/privacySettings.js
@@ -93,7 +93,10 @@ $(document).ready(function () {
toggleBlock("deleteLogSettings", $("input[name=deleteEnable]:checked").val());
toggleBlock("anonymizeIPenabled", $("input[name=anonymizeIPEnable]:checked").val());
toggleBlock("deleteReportsSettings", $("input[name=deleteReportsEnable]:checked").val());
- toggleBlock("deleteOldReportsMoreInfo", $("input[name=deleteReportsEnable]:checked").val());
+ // This one is in an AngularJS directive, so is generated later
+ setTimeout(function () {
+ toggleBlock("deleteOldReportsMoreInfo", $("input[name=deleteReportsEnable]:checked").val());
+ }, 500);
toggleOtherDeleteSections();
});
diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php
index dd367fc21b..c7e7cd11c8 100644
--- a/plugins/Provider/API.php
+++ b/plugins/Provider/API.php
@@ -34,7 +34,7 @@ class API extends \Piwik\Plugin\API
$dataTable->queueFilter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\getPrettyProviderName'));
$dataTable->queueFilter('ReplaceColumnNames');
$dataTable->queueFilter('ReplaceSummaryRowLabel');
+ $dataTable->queueFilter('GroupBy', array('label'));
return $dataTable;
}
}
-
diff --git a/plugins/Provider/Reports/GetProvider.php b/plugins/Provider/Reports/GetProvider.php
index 9323deccf1..739124088c 100644
--- a/plugins/Provider/Reports/GetProvider.php
+++ b/plugins/Provider/Reports/GetProvider.php
@@ -8,11 +8,13 @@
*/
namespace Piwik\Plugins\Provider\Reports;
+use Piwik\Common;
use Piwik\Piwik;
+use Piwik\Plugin\Report;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\Provider\Columns\Provider;
-class GetProvider extends \Piwik\Plugin\Report
+class GetProvider extends Report
{
protected function init()
{
@@ -28,6 +30,14 @@ class GetProvider extends \Piwik\Plugin\Report
{
$view->requestConfig->filter_limit = 5;
$view->config->addTranslation('label', $this->dimension->getName());
- }
+ $message = Piwik::translate("General_Note") . ': ' . Piwik::translate('Provider_ProviderReportFooter', '');
+ if (! Common::getRequestVar('disableLink', 0, 'int')) {
+ $message .= ' ' . Piwik::translate(
+ 'General_SeeThisFaq',
+ array('<a href="http://piwik.org/faq/general/faq_52/" target="_blank">', '</a>')
+ );
+ }
+ $view->config->show_footer_message = $message;
+ }
}
diff --git a/plugins/Provider/Visitor.php b/plugins/Provider/Visitor.php
index 0efbb92eb3..c11f1e3a9b 100644
--- a/plugins/Provider/Visitor.php
+++ b/plugins/Provider/Visitor.php
@@ -25,9 +25,8 @@ class Visitor
{
if (isset($this->details['location_provider'])) {
return $this->details['location_provider'];
- } else {
- return Piwik::translate('General_Unknown');
}
+ return Piwik::translate('General_Unknown');
}
public function getProviderName()
diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php
index 110b54a359..3e2c4a2da8 100644
--- a/plugins/Provider/functions.php
+++ b/plugins/Provider/functions.php
@@ -20,12 +20,9 @@ use Piwik\Piwik;
*/
function getHostnameName($in)
{
- if (empty($in)) {
+ if (empty($in) || strtolower($in) === 'ip') {
return Piwik::translate('General_Unknown');
}
- if (strtolower($in) === 'ip') {
- return "IP";
- }
if (($positionDot = strpos($in, '.')) !== false) {
return ucfirst(substr($in, 0, $positionDot));
}
@@ -40,14 +37,8 @@ function getHostnameName($in)
*/
function getHostnameUrl($in)
{
- if ($in == DataTable::LABEL_SUMMARY_ROW) {
- return false;
- }
- if (empty($in)
- || strtolower($in) === 'ip'
- ) {
- // link to "what does 'IP' mean?"
- return "http://piwik.org/faq/general/#faq_52";
+ if ($in == DataTable::LABEL_SUMMARY_ROW || empty($in) || strtolower($in) === 'ip') {
+ return null;
}
// if the name looks like it can be used in a URL, use it in one, otherwise link to startpage
diff --git a/plugins/Provider/lang/en.json b/plugins/Provider/lang/en.json
index d27bb96363..f634e2eda7 100644
--- a/plugins/Provider/lang/en.json
+++ b/plugins/Provider/lang/en.json
@@ -4,6 +4,7 @@
"PluginDescription": "Reports the Provider of the visitors.",
"ProviderReportDocumentation": "This report shows which Internet Service Providers your visitors used to access the website. You can click on a provider name for more details. %s If Piwik can't determine a visitor's provider, it is listed as IP.",
"SubmenuLocationsProvider": "Locations & Provider",
- "WidgetProviders": "Providers"
+ "WidgetProviders": "Providers",
+ "ProviderReportFooter": "Unknown provider means the IP address could not be looked up."
}
} \ No newline at end of file
diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php
index a42b5bb209..92acbd2c8d 100644
--- a/plugins/ScheduledReports/API.php
+++ b/plugins/ScheduledReports/API.php
@@ -466,7 +466,7 @@ class API extends \Piwik\Plugin\API
}
}
- public function sendReport($idReport, $period = false, $date = false)
+ public function sendReport($idReport, $period = false, $date = false, $force = false)
{
Piwik::checkUserIsNotAnonymous();
@@ -527,6 +527,9 @@ class API extends \Piwik\Plugin\API
* @param string $reportTitle The scheduled report's given title (given by a Piwik user).
* @param array $additionalFiles The list of additional files that should be
* sent with this report.
+ * @param \Piwik\Period $period The period for which the report has been generated.
+ * @param boolean $force A report can only be sent once per period. Setting this to true
+ * will force to send the report even if it has already been sent.
*/
Piwik::postEvent(
self::SEND_REPORT_EVENT,
@@ -538,7 +541,9 @@ class API extends \Piwik\Plugin\API
$prettyDate,
$reportSubject,
$reportTitle,
- $additionalFiles
+ $additionalFiles,
+ \Piwik\Period\Factory::build($report['period'], $date),
+ $force
)
);
@@ -560,7 +565,7 @@ class API extends \Piwik\Plugin\API
private static function getReportSubjectAndReportTitle($websiteName, $reports)
{
// if the only report is "All websites", we don't display the site name
- $reportTitle = Piwik::translate('General_Website') . " " . $websiteName;
+ $reportTitle = $websiteName;
$reportSubject = $websiteName;
if (count($reports) == 1
&& $reports[0] == 'MultiSites_getAll'
diff --git a/plugins/ScheduledReports/ScheduledReports.php b/plugins/ScheduledReports/ScheduledReports.php
index e59e9140ab..4b8190fead 100644
--- a/plugins/ScheduledReports/ScheduledReports.php
+++ b/plugins/ScheduledReports/ScheduledReports.php
@@ -10,7 +10,10 @@ namespace Piwik\Plugins\ScheduledReports;
use Exception;
use Piwik\Db;
+use Piwik\Log;
use Piwik\Mail;
+use Piwik\Option;
+use Piwik\Period;
use Piwik\Piwik;
use Piwik\Plugins\MobileMessaging\MobileMessaging;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
@@ -63,6 +66,8 @@ class ScheduledReports extends \Piwik\Plugin
ReportRenderer::CSV_FORMAT => 'plugins/Morpheus/images/export.png',
);
+ const OPTION_KEY_LAST_SENT_DATERANGE = 'report_last_sent_daterange_';
+
/**
* @see Piwik\Plugin::getListHooksRegistered
*/
@@ -117,37 +122,39 @@ class ScheduledReports extends \Piwik\Plugin
public function validateReportParameters(&$parameters, $reportType)
{
- if (self::manageEvent($reportType)) {
- $reportFormat = $parameters[self::DISPLAY_FORMAT_PARAMETER];
- $availableDisplayFormats = array_keys(self::getDisplayFormats());
- if (!in_array($reportFormat, $availableDisplayFormats)) {
- throw new Exception(
- Piwik::translate(
- // General_ExceptionInvalidAggregateReportsFormat should be named General_ExceptionInvalidDisplayFormat
- 'General_ExceptionInvalidAggregateReportsFormat',
- array($reportFormat, implode(', ', $availableDisplayFormats))
- )
- );
- }
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- // emailMe is an optional parameter
- if (!isset($parameters[self::EMAIL_ME_PARAMETER])) {
- $parameters[self::EMAIL_ME_PARAMETER] = self::EMAIL_ME_PARAMETER_DEFAULT_VALUE;
- } else {
- $parameters[self::EMAIL_ME_PARAMETER] = self::valueIsTrue($parameters[self::EMAIL_ME_PARAMETER]);
- }
+ $reportFormat = $parameters[self::DISPLAY_FORMAT_PARAMETER];
+ $availableDisplayFormats = array_keys(self::getDisplayFormats());
+ if (!in_array($reportFormat, $availableDisplayFormats)) {
+ throw new Exception(
+ Piwik::translate(
+ // General_ExceptionInvalidAggregateReportsFormat should be named General_ExceptionInvalidDisplayFormat
+ 'General_ExceptionInvalidAggregateReportsFormat',
+ array($reportFormat, implode(', ', $availableDisplayFormats))
+ )
+ );
+ }
- // evolutionGraph is an optional parameter
- if (!isset($parameters[self::EVOLUTION_GRAPH_PARAMETER])) {
- $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::EVOLUTION_GRAPH_PARAMETER_DEFAULT_VALUE;
- } else {
- $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::valueIsTrue($parameters[self::EVOLUTION_GRAPH_PARAMETER]);
- }
+ // emailMe is an optional parameter
+ if (!isset($parameters[self::EMAIL_ME_PARAMETER])) {
+ $parameters[self::EMAIL_ME_PARAMETER] = self::EMAIL_ME_PARAMETER_DEFAULT_VALUE;
+ } else {
+ $parameters[self::EMAIL_ME_PARAMETER] = self::valueIsTrue($parameters[self::EMAIL_ME_PARAMETER]);
+ }
- // additionalEmails is an optional parameter
- if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
- $parameters[self::ADDITIONAL_EMAILS_PARAMETER] = self::checkAdditionalEmails($parameters[self::ADDITIONAL_EMAILS_PARAMETER]);
- }
+ // evolutionGraph is an optional parameter
+ if (!isset($parameters[self::EVOLUTION_GRAPH_PARAMETER])) {
+ $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::EVOLUTION_GRAPH_PARAMETER_DEFAULT_VALUE;
+ } else {
+ $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::valueIsTrue($parameters[self::EVOLUTION_GRAPH_PARAMETER]);
+ }
+
+ // additionalEmails is an optional parameter
+ if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+ $parameters[self::ADDITIONAL_EMAILS_PARAMETER] = self::checkAdditionalEmails($parameters[self::ADDITIONAL_EMAILS_PARAMETER]);
}
}
@@ -159,22 +166,26 @@ class ScheduledReports extends \Piwik\Plugin
public function getReportMetadata(&$reportMetadata, $reportType, $idSite)
{
- if (self::manageEvent($reportType)) {
- $availableReportMetadata = \Piwik\Plugins\API\API::getInstance()->getReportMetadata($idSite);
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- $filteredReportMetadata = array();
- foreach ($availableReportMetadata as $reportMetadata) {
- // removing reports from the API category and MultiSites.getOne
- if (
- $reportMetadata['category'] == 'API' ||
- $reportMetadata['category'] == Piwik::translate('General_MultiSitesSummary') && $reportMetadata['name'] == Piwik::translate('General_SingleWebsitesDashboard')
- ) continue;
+ $availableReportMetadata = \Piwik\Plugins\API\API::getInstance()->getReportMetadata($idSite);
- $filteredReportMetadata[] = $reportMetadata;
+ $filteredReportMetadata = array();
+ foreach ($availableReportMetadata as $reportMetadata) {
+ // removing reports from the API category and MultiSites.getOne
+ if (
+ $reportMetadata['category'] == 'API' ||
+ $reportMetadata['category'] == Piwik::translate('General_MultiSitesSummary') && $reportMetadata['name'] == Piwik::translate('General_SingleWebsitesDashboard')
+ ) {
+ continue;
}
- $reportMetadata = $filteredReportMetadata;
+ $filteredReportMetadata[] = $reportMetadata;
}
+
+ $reportMetadata = $filteredReportMetadata;
}
public function getReportTypes(&$reportTypes)
@@ -198,53 +209,57 @@ class ScheduledReports extends \Piwik\Plugin
public function processReports(&$processedReports, $reportType, $outputType, $report)
{
- if (self::manageEvent($reportType)) {
- $displayFormat = $report['parameters'][self::DISPLAY_FORMAT_PARAMETER];
- $evolutionGraph = $report['parameters'][self::EVOLUTION_GRAPH_PARAMETER];
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- foreach ($processedReports as &$processedReport) {
- $metadata = $processedReport['metadata'];
+ $displayFormat = $report['parameters'][self::DISPLAY_FORMAT_PARAMETER];
+ $evolutionGraph = $report['parameters'][self::EVOLUTION_GRAPH_PARAMETER];
- $isAggregateReport = !empty($metadata['dimension']);
+ foreach ($processedReports as &$processedReport) {
+ $metadata = $processedReport['metadata'];
- $processedReport['displayTable'] = $displayFormat != self::DISPLAY_FORMAT_GRAPHS_ONLY;
+ $isAggregateReport = !empty($metadata['dimension']);
- $processedReport['displayGraph'] =
- ($isAggregateReport ?
- $displayFormat == self::DISPLAY_FORMAT_GRAPHS_ONLY || $displayFormat == self::DISPLAY_FORMAT_TABLES_AND_GRAPHS
- :
- $displayFormat != self::DISPLAY_FORMAT_TABLES_ONLY)
- && \Piwik\SettingsServer::isGdExtensionEnabled()
- && \Piwik\Plugin\Manager::getInstance()->isPluginActivated('ImageGraph')
- && !empty($metadata['imageGraphUrl']);
+ $processedReport['displayTable'] = $displayFormat != self::DISPLAY_FORMAT_GRAPHS_ONLY;
- $processedReport['evolutionGraph'] = $evolutionGraph;
+ $processedReport['displayGraph'] =
+ ($isAggregateReport ?
+ $displayFormat == self::DISPLAY_FORMAT_GRAPHS_ONLY || $displayFormat == self::DISPLAY_FORMAT_TABLES_AND_GRAPHS
+ :
+ $displayFormat != self::DISPLAY_FORMAT_TABLES_ONLY)
+ && \Piwik\SettingsServer::isGdExtensionEnabled()
+ && \Piwik\Plugin\Manager::getInstance()->isPluginActivated('ImageGraph')
+ && !empty($metadata['imageGraphUrl']);
- // remove evolution metrics from MultiSites.getAll
- if ($metadata['module'] == 'MultiSites') {
- $columns = $processedReport['columns'];
+ $processedReport['evolutionGraph'] = $evolutionGraph;
- foreach (\Piwik\Plugins\MultiSites\API::getApiMetrics($enhanced = true) as $metricSettings) {
- unset($columns[$metricSettings[\Piwik\Plugins\MultiSites\API::METRIC_EVOLUTION_COL_NAME_KEY]]);
- }
+ // remove evolution metrics from MultiSites.getAll
+ if ($metadata['module'] == 'MultiSites') {
+ $columns = $processedReport['columns'];
- $processedReport['metadata'] = $metadata;
- $processedReport['columns'] = $columns;
+ foreach (\Piwik\Plugins\MultiSites\API::getApiMetrics($enhanced = true) as $metricSettings) {
+ unset($columns[$metricSettings[\Piwik\Plugins\MultiSites\API::METRIC_EVOLUTION_COL_NAME_KEY]]);
}
+
+ $processedReport['metadata'] = $metadata;
+ $processedReport['columns'] = $columns;
}
}
}
public function getRendererInstance(&$reportRenderer, $reportType, $outputType, $report)
{
- if (self::manageEvent($reportType)) {
- $reportFormat = $report['format'];
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- $reportRenderer = ReportRenderer::factory($reportFormat);
+ $reportFormat = $report['format'];
- if ($reportFormat == ReportRenderer::HTML_FORMAT) {
- $reportRenderer->setRenderImageInline($outputType != API::OUTPUT_SAVE_ON_DISK);
- }
+ $reportRenderer = ReportRenderer::factory($reportFormat);
+
+ if ($reportFormat == ReportRenderer::HTML_FORMAT) {
+ $reportRenderer->setRenderImageInline($outputType != API::OUTPUT_SAVE_ON_DISK);
}
}
@@ -256,132 +271,148 @@ class ScheduledReports extends \Piwik\Plugin
}
public function sendReport($reportType, $report, $contents, $filename, $prettyDate, $reportSubject, $reportTitle,
- $additionalFiles)
+ $additionalFiles, Period $period = null, $force)
{
- if (self::manageEvent($reportType)) {
- $periods = self::getPeriodToFrequencyAsAdjective();
- $message = Piwik::translate('ScheduledReports_EmailHello');
- $subject = Piwik::translate('General_Report') . ' ' . $reportTitle . " - " . $prettyDate;
-
- $mail = new Mail();
- $mail->setDefaultFromPiwik();
- $mail->setSubject($subject);
- $attachmentName = $subject;
-
- $this->setReplyToAsSender($mail, $report);
-
- $displaySegmentInfo = false;
- $segmentInfo = null;
- $segment = API::getSegment($report['idsegment']);
- if ($segment != null) {
- $displaySegmentInfo = true;
- $segmentInfo = Piwik::translate('ScheduledReports_SegmentAppliedToReports', $segment['name']);
- }
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- switch ($report['format']) {
- case 'html':
+ // Safeguard against sending the same report twice to the same email (unless $force is true)
+ if (!$force && $this->reportAlreadySent($report, $period)) {
+ Log::warning(
+ 'Preventing the same scheduled report from being sent again (report #%s for period "%s")',
+ $report['idreport'],
+ $prettyDate
+ );
+ return;
+ }
- // Needed when using images as attachment with cid
- $mail->setType(Zend_Mime::MULTIPART_RELATED);
- $message .= "<br/>" . Piwik::translate('ScheduledReports_PleaseFindBelow', array($periods[$report['period']], $reportTitle));
+ $periods = self::getPeriodToFrequencyAsAdjective();
+ $message = Piwik::translate('ScheduledReports_EmailHello');
+ $subject = Piwik::translate('General_Report') . ' ' . $reportTitle . " - " . $prettyDate;
- if ($displaySegmentInfo) {
- $message .= " " . $segmentInfo;
- }
+ $mail = new Mail();
+ $mail->setDefaultFromPiwik();
+ $mail->setSubject($subject);
+ $attachmentName = $subject;
- $mail->setBodyHtml($message . "<br/><br/>" . $contents);
- break;
+ $this->setReplyToAsSender($mail, $report);
- case 'csv':
- $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
+ $displaySegmentInfo = false;
+ $segmentInfo = null;
+ $segment = API::getSegment($report['idsegment']);
+ if ($segment != null) {
+ $displaySegmentInfo = true;
+ $segmentInfo = Piwik::translate('ScheduledReports_SegmentAppliedToReports', $segment['name']);
+ }
- if ($displaySegmentInfo) {
- $message .= " " . $segmentInfo;
- }
+ switch ($report['format']) {
+ case 'html':
- $mail->setBodyText($message);
- $mail->createAttachment(
- $contents,
- 'application/csv',
- Zend_Mime::DISPOSITION_INLINE,
- Zend_Mime::ENCODING_BASE64,
- $attachmentName . '.csv'
- );
- break;
+ // Needed when using images as attachment with cid
+ $mail->setType(Zend_Mime::MULTIPART_RELATED);
+ $message .= "<br/>" . Piwik::translate('ScheduledReports_PleaseFindBelow', array($periods[$report['period']], $reportTitle));
- default:
- case 'pdf':
- $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
+ if ($displaySegmentInfo) {
+ $message .= " " . $segmentInfo;
+ }
- if ($displaySegmentInfo) {
- $message .= " " . $segmentInfo;
- }
+ $mail->setBodyHtml($message . "<br/><br/>" . $contents);
+ break;
- $mail->setBodyText($message);
- $mail->createAttachment(
- $contents,
- 'application/pdf',
- Zend_Mime::DISPOSITION_INLINE,
- Zend_Mime::ENCODING_BASE64,
- $attachmentName . '.pdf'
- );
- break;
- }
+ case 'csv':
+ $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
- foreach ($additionalFiles as $additionalFile) {
- $fileContent = $additionalFile['content'];
- $at = $mail->createAttachment(
- $fileContent,
- $additionalFile['mimeType'],
+ if ($displaySegmentInfo) {
+ $message .= " " . $segmentInfo;
+ }
+
+ $mail->setBodyText($message);
+ $mail->createAttachment(
+ $contents,
+ 'application/csv',
Zend_Mime::DISPOSITION_INLINE,
- $additionalFile['encoding'],
- $additionalFile['filename']
+ Zend_Mime::ENCODING_BASE64,
+ $attachmentName . '.csv'
);
- $at->id = $additionalFile['cid'];
+ break;
- unset($fileContent);
- }
+ default:
+ case 'pdf':
+ $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
- // Get user emails and languages
- $reportParameters = $report['parameters'];
- $emails = array();
+ if ($displaySegmentInfo) {
+ $message .= " " . $segmentInfo;
+ }
- if (isset($reportParameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
- $emails = $reportParameters[self::ADDITIONAL_EMAILS_PARAMETER];
- }
+ $mail->setBodyText($message);
+ $mail->createAttachment(
+ $contents,
+ 'application/pdf',
+ Zend_Mime::DISPOSITION_INLINE,
+ Zend_Mime::ENCODING_BASE64,
+ $attachmentName . '.pdf'
+ );
+ break;
+ }
- if ($reportParameters[self::EMAIL_ME_PARAMETER] == 1) {
- if (Piwik::getCurrentUserLogin() == $report['login']) {
- $emails[] = Piwik::getCurrentUserEmail();
- } else {
- try {
- $user = APIUsersManager::getInstance()->getUser($report['login']);
- } catch (Exception $e) {
- return;
- }
- $emails[] = $user['email'];
- }
- }
+ foreach ($additionalFiles as $additionalFile) {
+ $fileContent = $additionalFile['content'];
+ $at = $mail->createAttachment(
+ $fileContent,
+ $additionalFile['mimeType'],
+ Zend_Mime::DISPOSITION_INLINE,
+ $additionalFile['encoding'],
+ $additionalFile['filename']
+ );
+ $at->id = $additionalFile['cid'];
+
+ unset($fileContent);
+ }
- foreach ($emails as $email) {
- if (empty($email)) {
- continue;
- }
- $mail->addTo($email);
+ // Get user emails and languages
+ $reportParameters = $report['parameters'];
+ $emails = array();
+
+ if (isset($reportParameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+ $emails = $reportParameters[self::ADDITIONAL_EMAILS_PARAMETER];
+ }
+ if ($reportParameters[self::EMAIL_ME_PARAMETER] == 1) {
+ if (Piwik::getCurrentUserLogin() == $report['login']) {
+ $emails[] = Piwik::getCurrentUserEmail();
+ } else {
try {
- $mail->send();
+ $user = APIUsersManager::getInstance()->getUser($report['login']);
} catch (Exception $e) {
+ return;
+ }
+ $emails[] = $user['email'];
+ }
+ }
- // If running from piwik.php with debug, we ignore the 'email not sent' error
- if (!isset($GLOBALS['PIWIK_TRACKER_DEBUG']) || !$GLOBALS['PIWIK_TRACKER_DEBUG']) {
- throw new Exception("An error occured while sending '$filename' " .
- " to " . implode(', ', $mail->getRecipients()) .
- ". Error was '" . $e->getMessage() . "'");
- }
+ if (! $force) {
+ $this->markReportAsSent($report, $period);
+ }
+
+ foreach ($emails as $email) {
+ if (empty($email)) {
+ continue;
+ }
+ $mail->addTo($email);
+
+ try {
+ $mail->send();
+ } catch (Exception $e) {
+
+ // If running from piwik.php with debug, we ignore the 'email not sent' error
+ if (!isset($GLOBALS['PIWIK_TRACKER_DEBUG']) || !$GLOBALS['PIWIK_TRACKER_DEBUG']) {
+ throw new Exception("An error occured while sending '$filename' " .
+ " to " . implode(', ', $mail->getRecipients()) .
+ ". Error was '" . $e->getMessage() . "'");
}
- $mail->clearRecipients();
}
+ $mail->clearRecipients();
}
}
@@ -429,20 +460,22 @@ class ScheduledReports extends \Piwik\Plugin
public function getReportRecipients(&$recipients, $reportType, $report)
{
- if (self::manageEvent($reportType)) {
- $parameters = $report['parameters'];
- $eMailMe = $parameters[self::EMAIL_ME_PARAMETER];
+ if (! self::manageEvent($reportType)) {
+ return;
+ }
- if ($eMailMe) {
- $recipients[] = Piwik::getCurrentUserEmail();
- }
+ $parameters = $report['parameters'];
+ $eMailMe = $parameters[self::EMAIL_ME_PARAMETER];
- if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
- $additionalEMails = $parameters[self::ADDITIONAL_EMAILS_PARAMETER];
- $recipients = array_merge($recipients, $additionalEMails);
- }
- $recipients = array_filter($recipients);
+ if ($eMailMe) {
+ $recipients[] = Piwik::getCurrentUserEmail();
+ }
+
+ if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+ $additionalEMails = $parameters[self::ADDITIONAL_EMAILS_PARAMETER];
+ $recipients = array_merge($recipients, $additionalEMails);
}
+ $recipients = array_filter($recipients);
}
public static function template_reportParametersScheduledReports(&$out)
@@ -492,7 +525,6 @@ class ScheduledReports extends \Piwik\Plugin
}
$this->throwExceptionReportsAreUsingSegment($reportsNeedSegment);
-
}
public function segmentDeactivation($idSegment)
@@ -618,4 +650,20 @@ class ScheduledReports extends \Piwik\Plugin
}
}
}
+
+ private function reportAlreadySent($report, Period $period)
+ {
+ $key = self::OPTION_KEY_LAST_SENT_DATERANGE . $report['idreport'];
+
+ $previousDate = Option::get($key);
+
+ return $previousDate === $period->getRangeString();
+ }
+
+ private function markReportAsSent($report, Period $period)
+ {
+ $key = self::OPTION_KEY_LAST_SENT_DATERANGE . $report['idreport'];
+
+ Option::set($key, $period->getRangeString());
+ }
}
diff --git a/plugins/ScheduledReports/javascripts/pdf.js b/plugins/ScheduledReports/javascripts/pdf.js
index 59b16c9d08..da23deb4fd 100644
--- a/plugins/ScheduledReports/javascripts/pdf.js
+++ b/plugins/ScheduledReports/javascripts/pdf.js
@@ -142,6 +142,7 @@ function initManagePdf() {
var idReport = $(this).attr('idreport');
var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.sendReport');
parameters.idReport = idReport;
+ parameters.force = true;
var ajaxHandler = new ajaxHelper();
ajaxHandler.addParams(parameters, 'POST');
diff --git a/plugins/ScheduledReports/tests/Integration/ApiTest.php b/plugins/ScheduledReports/tests/Integration/ApiTest.php
index 419834a0e7..be13cb2b10 100644
--- a/plugins/ScheduledReports/tests/Integration/ApiTest.php
+++ b/plugins/ScheduledReports/tests/Integration/ApiTest.php
@@ -30,6 +30,7 @@ require_once PIWIK_INCLUDE_PATH . '/plugins/ScheduledReports/ScheduledReports.ph
* Class Plugins_ScheduledReportsTest
*
* @group Plugins
+ * @group ScheduledReportsTest
*/
class ApiTest extends IntegrationTestCase
{
@@ -405,8 +406,8 @@ class ApiTest extends IntegrationTestCase
public function getGetReportSubjectAndReportTitleTestCases()
{
return array(
- array('Piwik.org', 'General_Website Piwik.org', 'Piwik.org', array('UserSettings_getBrowserType')),
- array('Piwik.org', 'General_Website Piwik.org', 'Piwik.org', array('MultiSites_getAll', 'UserSettings_getBrowserType')),
+ array('<Piwik.org>', '<Piwik.org>', '<Piwik.org>', array('UserSettings_getBrowserType')),
+ array('Piwik.org', 'Piwik.org', 'Piwik.org', array('MultiSites_getAll', 'UserSettings_getBrowserType')),
array('General_MultiSitesSummary', 'General_MultiSitesSummary', 'Piwik.org', array('MultiSites_getAll')),
);
}
diff --git a/plugins/SegmentEditor/API.php b/plugins/SegmentEditor/API.php
index 699ad3a4ea..c08f302e73 100644
--- a/plugins/SegmentEditor/API.php
+++ b/plugins/SegmentEditor/API.php
@@ -77,22 +77,38 @@ class API extends \Piwik\Plugin\API
protected function checkAutoArchive($autoArchive, $idSite)
{
$autoArchive = (int)$autoArchive;
- if ($autoArchive) {
- $exception = new Exception(
- "Please contact Support to make these changes on your behalf. ".
- " To update (or create) a pre-processed segment, a user must have admin access or super user access. "
- );
-
- if (empty($idSite)) {
- if (!Piwik::hasUserSuperUserAccess()) {
- throw $exception;
- }
- } else {
- if (!Piwik::isUserHasAdminAccess($idSite)) {
- throw $exception;
- }
+ if (!$autoArchive) {
+ return $autoArchive;
+ }
+
+ $exception = new Exception(
+ "Please contact Support to make these changes on your behalf. ".
+ " To modify a pre-processed segment, a user must have admin access or super user access. "
+ );
+
+ // Segment 'All websites' and pre-processed requires Super User
+ if (empty($idSite)) {
+ if (!Piwik::hasUserSuperUserAccess()) {
+ throw $exception;
}
+ return $autoArchive;
}
+
+ // if real-time segments are disabled, then allow user to create pre-processed report
+ $realTimeSegmentsDisabled = !Config::getInstance()->General['enable_create_realtime_segments'];
+ if($realTimeSegmentsDisabled) {
+ // User is at least view
+ if(!Piwik::isUserHasViewAccess($idSite)) {
+ throw $exception;
+ }
+ return $autoArchive;
+ }
+
+ // pre-processed segment for a given website requires admin access
+ if(!Piwik::isUserHasAdminAccess($idSite)) {
+ throw $exception;
+ }
+
return $autoArchive;
}
diff --git a/plugins/UserCountryMap/lang/pl.json b/plugins/UserCountryMap/lang/pl.json
index c948f51bf0..1319e7f781 100644
--- a/plugins/UserCountryMap/lang/pl.json
+++ b/plugins/UserCountryMap/lang/pl.json
@@ -10,6 +10,7 @@
"Minutes": "minut",
"None": "Brak",
"NoVisit": "Brak wizyt",
+ "RealTimeMap": "Mapa czasu rzeczywistego",
"Regions": "Regiony",
"Searches": "%s wyszukań",
"Seconds": "sekund",
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 7a1c9faf7a..2281f36513 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -397,7 +397,12 @@ class API extends \Piwik\Plugin\API
{
Piwik::checkUserIsNotAnonymous();
- return $this->model->getUsersHavingSuperUserAccess();
+ $users = $this->model->getUsersHavingSuperUserAccess();
+ foreach($users as &$user) {
+ // remove token_auth in API response
+ unset($user['token_auth']);
+ }
+ return $users;
}
/**
diff --git a/plugins/UsersManager/Menu.php b/plugins/UsersManager/Menu.php
index 88aeb051f5..cf36392603 100644
--- a/plugins/UsersManager/Menu.php
+++ b/plugins/UsersManager/Menu.php
@@ -25,7 +25,7 @@ class Menu extends \Piwik\Plugin\Menu
public function configureUserMenu(MenuUser $menu)
{
if (!Piwik::isUserIsAnonymous()) {
- $menu->addItem('', 'General_Settings', $this->urlForAction('index'), 0);
+ $menu->addItem('', 'General_Settings', $this->urlForAction('userSettings'), 0);
}
}
}
diff --git a/plugins/UsersManager/Model.php b/plugins/UsersManager/Model.php
index 3d62ca61fd..1729d51c7d 100644
--- a/plugins/UsersManager/Model.php
+++ b/plugins/UsersManager/Model.php
@@ -190,9 +190,14 @@ class Model
);
}
+ /**
+ * Note that this returns the token_auth which is as private as the password!
+ *
+ * @return returns login, email and token_auth
+ */
public function getUsersHavingSuperUserAccess()
{
- $users = $this->getDb()->fetchAll("SELECT login, email
+ $users = $this->getDb()->fetchAll("SELECT login, email, token_auth
FROM " . Common::prefixTable("user") . "
WHERE superuser_access = 1
ORDER BY date_registered ASC");
diff --git a/plugins/UsersManager/javascripts/usersManager.js b/plugins/UsersManager/javascripts/usersManager.js
index b7e8ed04f3..51be3f8063 100644
--- a/plugins/UsersManager/javascripts/usersManager.js
+++ b/plugins/UsersManager/javascripts/usersManager.js
@@ -303,4 +303,12 @@ $(document).ready(function () {
piwik.broadcast.propagateNewPage('segment=&idSite=' + site.id, false);
}
});
+
+ // Show the token_auth
+ $('.token_auth').click(function () {
+ var token = $(this).data('token');
+ if ($(this).text() != token) {
+ $(this).text(token);
+ }
+ });
});
diff --git a/plugins/UsersManager/templates/index.twig b/plugins/UsersManager/templates/index.twig
index d411b6e02b..f102bce7e1 100644
--- a/plugins/UsersManager/templates/index.twig
+++ b/plugins/UsersManager/templates/index.twig
@@ -135,7 +135,7 @@
<td id="password" class="editable">-</td>
<td id="email" class="editable">{{ user.email }}</td>
<td id="alias" class="editable">{{ user.alias|raw }}</td>
- <td id="token_auth">{{ user.token_auth }}</td>
+ <td id="token_auth" class="token_auth" data-token="{{ user.token_auth }}">{{ user.token_auth|slice(0, 8) }}…</td>
{% if user.last_seen is defined %}
<td id="last_seen">{% if user.last_seen is empty %}-{% else %}{{ 'General_TimeAgo'|translate(user.last_seen)|raw }}{% endif %}</td>
{% endif %}
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
-Subproject 5385c1cf4f30878ddb9bc7f92fda3d1614e9779
+Subproject aea836e8702778a52a22c3453061c8066fd34cd
diff --git a/tests/PHPUnit/Impl/TestRequestResponse.php b/tests/PHPUnit/Impl/TestRequestResponse.php
index f71a430aa6..026f2c43b4 100644
--- a/tests/PHPUnit/Impl/TestRequestResponse.php
+++ b/tests/PHPUnit/Impl/TestRequestResponse.php
@@ -71,10 +71,17 @@ class TestRequestResponse
if ($expected->requestUrl['format'] == 'xml') {
Asserts::assertXmlStringEqualsXmlString($expectedText, $actualText, $message);
- } else {
+ return;
+ }
+
+ // check content size to get quick feedback and avoid lengthy diff
+ $checkSizeFirst = array('pdf', 'csv');
+ if(!empty($expected->requestUrl['reportFormat'])
+ && in_array($expected->requestUrl['reportFormat'], $checkSizeFirst)) {
Asserts::assertEquals(strlen($expectedText), strlen($actualText), $message);
- Asserts::assertEquals($expectedText, $actualText, $message);
}
+
+ Asserts::assertEquals($expectedText, $actualText, $message);
}
private function normalizeApiResponse($apiResponse)
diff --git a/tests/PHPUnit/Integration/PiwikTest.php b/tests/PHPUnit/Integration/PiwikTest.php
index 99262e56ba..c73f8bb0b4 100644
--- a/tests/PHPUnit/Integration/PiwikTest.php
+++ b/tests/PHPUnit/Integration/PiwikTest.php
@@ -68,6 +68,99 @@ class Core_PiwikTest extends IntegrationTestCase
}
/**
+ * Tests the generated JS code with protocol overwrite
+ * @group Core
+ */
+ public function testJavascriptTrackingCode_withAllOptionsAndProtocolOverwrite()
+ {
+ Piwik::addAction('Piwik.getJavascriptCode', function (&$codeImpl) {
+ $codeImpl['protocol'] = 'https://';
+ });
+
+ $jsTag = Piwik::getJavascriptCode($idSite = 1, $piwikUrl = 'http://localhost/piwik',
+ $mergeSubdomains = true, $groupPageTitlesByDomain = true, $mergeAliasUrls = true,
+ $visitorCustomVariables = array( array("name", "value"), array("name 2", "value 2") ),
+ $pageCustomVariables = array( array("page cvar", "page cvar value") ),
+ $customCampaignNameQueryParam = "campaignKey", $customCampaignKeywordParam = "keywordKey",
+ $doNotTrack = true);
+
+ $expected = "&lt;!-- Piwik --&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+ var _paq = _paq || [];
+ _paq.push([\"setDocumentTitle\", document.domain + \"/\" + document.title]);
+ // you can set up to 5 custom variables for each visitor
+ _paq.push([\"setCustomVariable\", 1, \"name\", \"value\", \"visit\"]);
+ _paq.push([\"setCustomVariable\", 2, \"name 2\", \"value 2\", \"visit\"]);
+ // you can set up to 5 custom variables for each action (page view, download, click, site search)
+ _paq.push([\"setCustomVariable\", 1, \"page cvar\", \"page cvar value\", \"page\"]);
+ _paq.push([\"setCampaignNameKey\", \"campaignKey\"]);
+ _paq.push([\"setCampaignKeywordKey\", \"keywordKey\"]);
+ _paq.push([\"setDoNotTrack\", true]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u=&quot;https://localhost/piwik/&quot;;
+ _paq.push(['setTrackerUrl', u+'piwik.php']);
+ _paq.push(['setSiteId', 1]);
+ var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+ g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+ })();
+&lt;/script&gt;
+&lt;noscript&gt;&lt;p&gt;&lt;img src=&quot;https://localhost/piwik/piwik.php?idsite=1&quot; style=&quot;border:0;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/noscript&gt;
+&lt;!-- End Piwik Code --&gt;
+";
+
+ $this->assertEquals($expected, $jsTag);
+ }
+
+ /**
+ * Tests the generated JS code with options before tracker url
+ * @group Core
+ */
+ public function testJavascriptTrackingCode_withAllOptionsAndOptionsBeforeTrackerUrl()
+ {
+ Piwik::addAction('Piwik.getJavascriptCode', function (&$codeImpl) {
+ $codeImpl['optionsBeforeTrackerUrl'] .= "_paq.push(['setAPIUrl', 'http://localhost/statistics']);\n ";
+ });
+
+ $jsTag = Piwik::getJavascriptCode($idSite = 1, $piwikUrl = 'http://localhost/piwik',
+ $mergeSubdomains = true, $groupPageTitlesByDomain = true, $mergeAliasUrls = true,
+ $visitorCustomVariables = array( array("name", "value"), array("name 2", "value 2") ),
+ $pageCustomVariables = array( array("page cvar", "page cvar value") ),
+ $customCampaignNameQueryParam = "campaignKey", $customCampaignKeywordParam = "keywordKey",
+ $doNotTrack = true);
+
+ $expected = "&lt;!-- Piwik --&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+ var _paq = _paq || [];
+ _paq.push([\"setDocumentTitle\", document.domain + \"/\" + document.title]);
+ // you can set up to 5 custom variables for each visitor
+ _paq.push([\"setCustomVariable\", 1, \"name\", \"value\", \"visit\"]);
+ _paq.push([\"setCustomVariable\", 2, \"name 2\", \"value 2\", \"visit\"]);
+ // you can set up to 5 custom variables for each action (page view, download, click, site search)
+ _paq.push([\"setCustomVariable\", 1, \"page cvar\", \"page cvar value\", \"page\"]);
+ _paq.push([\"setCampaignNameKey\", \"campaignKey\"]);
+ _paq.push([\"setCampaignKeywordKey\", \"keywordKey\"]);
+ _paq.push([\"setDoNotTrack\", true]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u=&quot;//localhost/piwik/&quot;;
+ _paq.push(['setAPIUrl', 'http://localhost/statistics']);
+ _paq.push(['setTrackerUrl', u+'piwik.php']);
+ _paq.push(['setSiteId', 1]);
+ var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+ g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+ })();
+&lt;/script&gt;
+&lt;noscript&gt;&lt;p&gt;&lt;img src=&quot;//localhost/piwik/piwik.php?idsite=1&quot; style=&quot;border:0;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/noscript&gt;
+&lt;!-- End Piwik Code --&gt;
+";
+
+ $this->assertEquals($expected, $jsTag);
+ }
+
+ /**
* Dataprovider for testIsNumericValid
*/
public function getValidNumeric()
diff --git a/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml b/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml
new file mode 100644
index 0000000000..a2de386f66
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml
new file mode 100644
index 0000000000..a2de386f66
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml
new file mode 100644
index 0000000000..a2de386f66
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml b/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml
new file mode 100644
index 0000000000..a2de386f66
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt b/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
index afc6e909b1..16bfe19f8c 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
@@ -1,73 +1,11 @@
-------------------------------------------------------
Using this 'archive.php' script is no longer recommended.
-Please use '/path/to/php /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console core:archive --url=http://localhost/tests/PHPUnit/proxy/index.php' instead.
-To get help use '/path/to/php /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console core:archive --help'
+Please use '/path/to/php /home/matt/dev/piwik-master/tests/PHPUnit/proxy/../../..//console core:archive --url=http://localhost/piwik-master/tests/PHPUnit/proxy/index.php' instead.
+To get help use '/path/to/php /home/matt/dev/piwik-master/tests/PHPUnit/proxy/../../..//console core:archive --help'
See also: http://piwik.org/docs/setup-auto-archiving/
If you cannot use the console because it requires CLI
try 'php archive.php -- url=http://your.piwik/path'
-------------------------------------------------------
-
-INFO CoreConsole[2014-09-09 01:46:27] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:27] INIT
-INFO CoreConsole[2014-09-09 01:46:27] Piwik is installed at: http://localhost/tests/PHPUnit/proxy/index.php
-INFO CoreConsole[2014-09-09 01:46:27] Running Piwik 2.7.0-b2 as Super User
-DEBUG CoreConsole[2014-09-09 01:46:27] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.getDefaultMetricTranslations&format=original&serialize=1&trigger=archivephp&testmode=1&pid=2e1e341f728109bd9f2aa50667ff5ebd1334473b8e8026e85ab7850d28c9a2de11be5a02bbded91d38aab2870492ef77ebdd0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/2e1e341f728109bd9f2aa50667ff5ebd1334473b8e8026e85ab7850d28c9a2de11be5a02bbded91d38aab2870492ef77ebdd0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:28] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:28] NOTES
-INFO CoreConsole[2014-09-09 01:46:28] - If you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings.
-INFO CoreConsole[2014-09-09 01:46:28] See the doc at: http://piwik.org/docs/setup-auto-archiving/
-INFO CoreConsole[2014-09-09 01:46:28] - Reports for today will be processed at most every 150 seconds. You can change this value in Piwik UI > Settings > General Settings.
-INFO CoreConsole[2014-09-09 01:46:28] - Reports for the current week/month/year will be refreshed at most every 3600 seconds.
-INFO CoreConsole[2014-09-09 01:46:28] - Will process 0 websites with new visits since 7 days 0 hours
-INFO CoreConsole[2014-09-09 01:46:28] - Will process 2 other websites because some old data reports have been invalidated (eg. using the Log Import script) , IDs: 1, 2
-INFO CoreConsole[2014-09-09 01:46:28] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:28] START
-INFO CoreConsole[2014-09-09 01:46:28] Starting Piwik reports archiving...
-DEBUG CoreConsole[2014-09-09 01:46:28] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=85cfb29c2e26e4c8440e7e33d55e413d39509345117eb194d4ba3b2459213c11737c71fb534b13d060ee3a51686d040bcd780' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/85cfb29c2e26e4c8440e7e33d55e413d39509345117eb194d4ba3b2459213c11737c71fb534b13d060ee3a51686d040bcd780.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:29] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:29] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=e517450ff87813ef3b86a502f8e864d00e86570c4a62df480ab1e2c7d3e6233ca2de3e34d74a5f4601857ba97241fa7469ad0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/e517450ff87813ef3b86a502f8e864d00e86570c4a62df480ab1e2c7d3e6233ca2de3e34d74a5f4601857ba97241fa7469ad0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:31] Archived website id = 1, period = day, 0 visits in last last52 days, 0 visits today, Time elapsed: 3.438s
-INFO CoreConsole[2014-09-09 01:46:31] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:31] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=064eca2df6d0757ed6c729255a072f39dddcfb7132eede4fb060f3c000aaf06abc5b8d1e6a1d7f5a75191665e2ee17322fff0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/064eca2df6d0757ed6c729255a072f39dddcfb7132eede4fb060f3c000aaf06abc5b8d1e6a1d7f5a75191665e2ee17322fff0.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:46:31] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=05b992fcb7f031578d525e2a1f4f50c50ac40c0ca149c7c17243a57a96530a80c0d774430ed783c3bcb4ef9f1fc78b6054ce1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/05b992fcb7f031578d525e2a1f4f50c50ac40c0ca149c7c17243a57a96530a80c0d774430ed783c3bcb4ef9f1fc78b6054ce1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:50] Archived website id = 1, period = week, 40 visits in last last260 weeks, 0 visits this week, Time elapsed: 19.207s
-INFO CoreConsole[2014-09-09 01:46:50] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:50] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=b97b6610e36a1879beef58fa96cbbdb3fd16e27953fea563b080df5ec743f899de9cd189e99a522132b1affa42b39c368c830' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/b97b6610e36a1879beef58fa96cbbdb3fd16e27953fea563b080df5ec743f899de9cd189e99a522132b1affa42b39c368c830.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:46:50] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=9943bef019811f952ac8a2913efa0bf4c49862a24c78cbcda994890313db0cb693ce980e0ec5002f9d0501eb6df6218b370c1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/9943bef019811f952ac8a2913efa0bf4c49862a24c78cbcda994890313db0cb693ce980e0ec5002f9d0501eb6df6218b370c1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:01] Archived website id = 1, period = month, 40 visits in last last52 months, 0 visits this month, Time elapsed: 10.722s
-INFO CoreConsole[2014-09-09 01:47:01] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:47:01] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=773203159cb45b3702e6807c378c811f789b41f466570dec02f1558cb23d6eb7cb2163a52046dd2827ef68bed432b61818340' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/773203159cb45b3702e6807c378c811f789b41f466570dec02f1558cb23d6eb7cb2163a52046dd2827ef68bed432b61818340.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:47:01] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=63ed9ebfc2372a39e2c3111dd73fbfb529d5db843e728c09afdf8cf78f32983dabe42cbba513af309f04ae5e2ef664eada8a1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/63ed9ebfc2372a39e2c3111dd73fbfb529d5db843e728c09afdf8cf78f32983dabe42cbba513af309f04ae5e2ef664eada8a1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:03] Archived website id = 1, period = year, 40 visits in last last7 years, 12 visits this year, Time elapsed: 2.326s
-INFO CoreConsole[2014-09-09 01:47:03] Archived website id = 1, 8 API requests, Time elapsed: 35.697s [1/2 done]
-DEBUG CoreConsole[2014-09-09 01:47:03] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=db38d41d3398b809310cc0d63ba1d3ee0d4726acaaea720b3412a9e5fa6311d88c6752611e6104270c047e0ecebed37db2fc0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/db38d41d3398b809310cc0d63ba1d3ee0d4726acaaea720b3412a9e5fa6311d88c6752611e6104270c047e0ecebed37db2fc0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:05] Archived website id = 2, period = day, 0 visits in last last52 days, 0 visits today, Time elapsed: 1.618s
-DEBUG CoreConsole[2014-09-09 01:47:05] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=e1d0a7846bb142eded2edc12020f04b70b85023db70ea1b590d8e0f955277003fa45b8bff24756e6db5154e9bc3cbd2777700' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/e1d0a7846bb142eded2edc12020f04b70b85023db70ea1b590d8e0f955277003fa45b8bff24756e6db5154e9bc3cbd2777700.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:18] Archived website id = 2, period = week, 1 visits in last last260 weeks, 0 visits this week, Time elapsed: 13.418s
-DEBUG CoreConsole[2014-09-09 01:47:18] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=81840a421ef9c17763c65ef8c899601470ae84add7097344023dc8876451749d42fbf4ea653a5498f8bd8358032bdc7a28f10' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/81840a421ef9c17763c65ef8c899601470ae84add7097344023dc8876451749d42fbf4ea653a5498f8bd8358032bdc7a28f10.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:25] Archived website id = 2, period = month, 1 visits in last last52 months, 0 visits this month, Time elapsed: 6.115s
-DEBUG CoreConsole[2014-09-09 01:47:25] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=087c4f9970b4fedb2cd40f0fe1b5da80c76b8a64e63cd7e7a93885147dc86e67b0b0f79ab52cd1769e2d6634b59ce1ffa56f0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/087c4f9970b4fedb2cd40f0fe1b5da80c76b8a64e63cd7e7a93885147dc86e67b0b0f79ab52cd1769e2d6634b59ce1ffa56f0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:26] Archived website id = 2, period = year, 1 visits in last last7 years, 0 visits this year, Time elapsed: 1.373s
-INFO CoreConsole[2014-09-09 01:47:26] Archived website id = 2, 4 API requests, Time elapsed: 22.528s [2/2 done]
-INFO CoreConsole[2014-09-09 01:47:26] Done archiving!
-INFO CoreConsole[2014-09-09 01:47:26] ---------------------------
-INFO CoreConsole[2014-09-09 01:47:26] SUMMARY
-INFO CoreConsole[2014-09-09 01:47:26] Total visits for today across archived websites: 0
-INFO CoreConsole[2014-09-09 01:47:26] Archived today's reports for 2 websites
-INFO CoreConsole[2014-09-09 01:47:26] Archived week/month/year for 2 websites
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites: no new visit since the last script execution
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites day archiving: existing daily reports are less than 150 seconds old
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites week/month/year archiving: existing periods reports are less than 3600 seconds old
-INFO CoreConsole[2014-09-09 01:47:26] Total API requests: 12
-INFO CoreConsole[2014-09-09 01:47:26] done: 2/2 100%, 0 vtoday, 2 wtoday, 2 wperiods, 12 req, 58327 ms, no error
-INFO CoreConsole[2014-09-09 01:47:26] Time elapsed: 58.328s
-INFO CoreConsole[2014-09-09 01:47:26] ---------------------------
-INFO CoreConsole[2014-09-09 01:47:26] SCHEDULED TASKS
-INFO CoreConsole[2014-09-09 01:47:26] Starting Scheduled tasks...
-DEBUG CoreConsole[2014-09-09 01:47:26] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=CoreAdminHome.runScheduledTasks&format=csv&convertToUnicode=0&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=334d2f79cda2d2f08e0357c080f38cf6fe90f1248ebb91af3cea79e4593d1c4feff96328b77d32ce1fe9cfcd6e434b11dca50' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/334d2f79cda2d2f08e0357c080f38cf6fe90f1248ebb91af3cea79e4593d1c4feff96328b77d32ce1fe9cfcd6e434b11dca50.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:26] No task to run
-INFO CoreConsole[2014-09-09 01:47:26] done
-INFO CoreConsole[2014-09-09 01:47:26] --------------------------- \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
index d7dfbaef5a..89cd627339 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
@@ -2,6 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_users>0</nb_users>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<nb_visits_converted>1</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
index e949f7b041..dc70f24c00 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
@@ -2,6 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>6</nb_uniq_visitors>
+ <nb_users>0</nb_users>
<nb_visits>6</nb_visits>
<nb_actions>6</nb_actions>
<nb_visits_converted>6</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
index 4e3f9c3a15..09a9dec19a 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
@@ -2,6 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_users>0</nb_users>
<nb_visits>5</nb_visits>
<nb_actions>5</nb_actions>
<nb_visits_converted>5</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
index 88e4c569eb..06d553899c 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
@@ -98,7 +98,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -246,7 +246,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1055,7 +1055,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1180,7 +1180,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1600,7 +1600,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1739,7 +1739,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -1856,7 +1856,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1981,7 +1981,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2293,7 +2293,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -2535,7 +2535,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2674,7 +2674,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2813,7 +2813,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2952,7 +2952,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -3083,7 +3083,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3208,7 +3208,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3333,7 +3333,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3458,7 +3458,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3583,7 +3583,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3739,7 +3739,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3895,7 +3895,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4051,7 +4051,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -4199,7 +4199,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4324,7 +4324,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4449,7 +4449,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4574,7 +4574,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4699,7 +4699,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
index 61b4626535..20a321c37a 100644
--- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
@@ -49,7 +49,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -151,7 +151,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -321,7 +321,7 @@
<events>6</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -423,7 +423,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -760,7 +760,7 @@
<events>13</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -862,7 +862,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -960,7 +960,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1126,7 +1126,7 @@
<events>6</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1224,7 +1224,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1557,7 +1557,7 @@
<events>13</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
index 61b4626535..20a321c37a 100644
--- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
@@ -49,7 +49,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -151,7 +151,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -321,7 +321,7 @@
<events>6</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -423,7 +423,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -760,7 +760,7 @@
<events>13</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -862,7 +862,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -960,7 +960,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1126,7 +1126,7 @@
<events>6</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1224,7 +1224,7 @@
<events>1</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1557,7 +1557,7 @@
<events>13</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
index 06291c5c5f..0d3bdc865c 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
@@ -65,7 +65,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>blog.comperiosearch.com</referrerName>
@@ -203,7 +203,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -316,7 +316,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -462,7 +462,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
@@ -577,7 +577,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>musicforeveryoneradio.be</referrerName>
@@ -703,7 +703,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
@@ -836,7 +836,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
@@ -958,7 +958,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>berndjung.com</referrerName>
@@ -1072,7 +1072,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>forum.golem.de</referrerName>
@@ -1241,7 +1241,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
@@ -1359,7 +1359,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1485,7 +1485,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>musicforeveryoneradio.be</referrerName>
@@ -1769,7 +1769,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -1885,7 +1885,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>piwik.org</referrerName>
@@ -2002,7 +2002,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>sn110w.snt110.mail.live.com</referrerName>
@@ -2135,7 +2135,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2260,7 +2260,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2392,7 +2392,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2500,7 +2500,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2608,7 +2608,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2706,7 +2706,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2814,7 +2814,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -2922,7 +2922,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3026,7 +3026,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3130,7 +3130,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3234,7 +3234,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3338,7 +3338,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3442,7 +3442,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3546,7 +3546,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3650,7 +3650,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3754,7 +3754,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3858,7 +3858,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -3962,7 +3962,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4066,7 +4066,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4170,7 +4170,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4274,7 +4274,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4378,7 +4378,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4482,7 +4482,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4586,7 +4586,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -4690,7 +4690,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
index e248df22a8..8cc6494492 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
@@ -10,6 +10,6 @@
<nb_visits_converted>25</nb_visits_converted>
<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
- <url>http://piwik.org/faq/general/#faq_52</url>
+ <url />
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
index 02678e9aee..4bef268a9f 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
@@ -106,7 +106,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -260,7 +260,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -383,7 +383,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -537,7 +537,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -660,7 +660,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -814,7 +814,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -929,7 +929,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
index 47c2f38c4e..375e6853cd 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -246,7 +246,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
index 8c0eba69bb..b17d355a83 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
@@ -139,7 +139,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -264,7 +264,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -420,7 +420,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -559,7 +559,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -684,7 +684,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -809,7 +809,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -924,7 +924,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
index 47c2f38c4e..375e6853cd 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -246,7 +246,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
index ce1748a73a..83f8c16d70 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
<daysSinceLastVisit>0</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
</customVariables>
@@ -246,7 +246,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1055,7 +1055,7 @@
<daysSinceLastVisit>10</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1180,7 +1180,7 @@
<daysSinceLastVisit>11</daysSinceLastVisit>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<customVariables>
<row>
<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
index 7b9b086c44..6ca6cdbd81 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
@@ -9,6 +9,6 @@
<sum_visit_length>1621</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
- <url>http://piwik.org/faq/general/#faq_52</url>
+ <url />
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
index 2ceb5d70bf..1a94308fac 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
@@ -55,7 +55,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Yahoo!</referrerName>
@@ -243,7 +243,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>website</referrerType>
<referrerTypeName>Websites</referrerTypeName>
<referrerName>referrer.com</referrerName>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
index 7254c4a970..039448a1aa 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
@@ -10,6 +10,6 @@
<sum_visit_length>1621</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
- <url>http://piwik.org/faq/general/#faq_52</url>
+ <url />
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
index 9175168a74..4fc272c7ff 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
@@ -90,7 +90,7 @@
</customVariables>
<provider>Inconnu</provider>
<providerName>Inconnu</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
@@ -197,7 +197,7 @@
</customVariables>
<provider>Inconnu</provider>
<providerName>Inconnu</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
index f77489d7a3..a0db0d7c8e 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
@@ -49,7 +49,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -142,7 +142,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -235,7 +235,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
index 4d5a3bb878..d820d786ab 100644
--- a/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
@@ -44,7 +44,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
index fc803f8028..828f15f4aa 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Site 1
+ Site 1
</h1>
<p>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
index c5183f184f..88ed239c6d 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Site 1
+ Site 1
</h1>
<p>
@@ -5152,7 +5152,7 @@
<tr style="">
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
- <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+ <a style="color: rgb(68,68,68);" href='http://'>
Unknown </a>
</td>
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
index 8e8c6e7cd1..3dc09d6491 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Site 1
+ Site 1
</h1>
<p>
@@ -4924,7 +4924,7 @@
<tr style="">
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
- <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+ <a style="color: rgb(68,68,68);" href='http://'>
Unknown </a>
</td>
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf
index 7891c7d5ca..1fbdd629d8 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf
Binary files differ
diff --git a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv
index c287c4bf01..dc400d69e0 100644
--- a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv
+++ b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv
Binary files differ
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
index 25ac19a415..f8da6f787c 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
@@ -82,7 +82,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -293,7 +293,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
index 30ae50eb8f..75cf165e0c 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
@@ -158,7 +158,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -488,7 +488,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -704,7 +704,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
index 451b79191c..03178c7d32 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Piwik test
+ Piwik test
</h1>
<p>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
index b5f59686c4..4c0d5a3173 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Piwik test
+ Piwik test
</h1>
<p>
@@ -6827,7 +6827,7 @@
<tr style="">
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
- <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+ <a style="color: rgb(68,68,68);" href='http://'>
Unknown </a>
</td>
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
index 8283259e33..2c71900b41 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
<a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
<h1 style="color: rgb(126,115,99); font-size: 11pt;">
- Website Piwik test
+ Piwik test
</h1>
<p>
@@ -6521,7 +6521,7 @@
<tr style="">
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
- <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+ <a style="color: rgb(68,68,68);" href='http://'>
Unknown </a>
</td>
<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf
index e8e37848fd..3db8e7ed77 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf
Binary files differ
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
index 8112427124..9dec8f6d62 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
@@ -52,7 +52,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -167,7 +167,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -342,7 +342,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>search</referrerType>
<referrerTypeName>Search Engines</referrerTypeName>
<referrerName>Google</referrerName>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
index 20546709ec..949ab7b840 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
@@ -95,7 +95,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
@@ -211,7 +211,7 @@
<events>0</events>
<provider>Unknown</provider>
<providerName>Unknown</providerName>
- <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <providerUrl />
<referrerType>direct</referrerType>
<referrerTypeName>Direct Entry</referrerTypeName>
<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
index eb96e297f5..95d4b86627 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
@@ -34,6 +34,6 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
- <url>http://piwik.org/faq/general/#faq_52</url>
+ <url />
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php
index 3e2d0ec4c7..b2b875d7fc 100644
--- a/tests/PHPUnit/TestingEnvironment.php
+++ b/tests/PHPUnit/TestingEnvironment.php
@@ -88,7 +88,7 @@ class Piwik_TestingEnvironment
if (isset($_SERVER['QUERY_STRING'])
&& !$this->dontUseTestConfig
) {
- \Piwik\Log::verbose("Test Environment Variables for (%s):\n%s", $_SERVER['QUERY_STRING'], print_r($this->behaviorOverrideProperties, true));
+ @\Piwik\Log::verbose("Test Environment Variables for (%s):\n%s", $_SERVER['QUERY_STRING'], print_r($this->behaviorOverrideProperties, true));
}
} catch (Exception $ex) {
// ignore
diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI
-Subproject d98325f48a495a6d5d71cb1ffed231f6834f30b
+Subproject 6100f9642a51ee82b613d4f25595e4ee914878a
diff --git a/tests/README.md b/tests/README.md
index 2cc2c3180c..1e1299eae7 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -133,6 +133,10 @@ Some of these scheduled reports contain PNG graphs. Depending on the system unde
Therefore, PNG graphs are only tested and compared against "expected" graphs, if the system under test has the same characteristics as the integration server.
The characteristics of the integration server are described in `SystemTestCase::canImagesBeIncludedInScheduledReports()`
+### Running tests on Ubuntu
+
+If you use Ubuntu or another Linux distribution, you must make one change to the filesystem configuration to make tests run fast. [Read more here](https://github.com/piwik/piwik/blob/master/tests/README.troubleshooting.md#important-note-for-linux-users-fix-for-slow-tests).
+
## JavaScript Tests
piwik.js is unit tested and you can run the Javascript tests at: /piwik/tests/javascript/
diff --git a/tests/README.troubleshooting.md b/tests/README.troubleshooting.md
index a82c84a3da..7582b476e2 100644
--- a/tests/README.troubleshooting.md
+++ b/tests/README.troubleshooting.md
@@ -4,6 +4,19 @@ If you have problems with running Piwik tests see below.
If you cannot solve your issues please [ask in the forums](http://forum.piwik.org/list.php?9)
+
+## Important note for Linux users: fix for slow tests
+
+If the tests are running incredibly slow on your machine, maybe you are running mysql DB on an ext4 partition?
+Here is the tip that will save you hours of research: if you use Mysql on ext4 partition,
+make sure you add "nobarrier" option to /etc/fstab to disable some super slow IO feature.
+
+Change from:
+ `UUID=83237e54-445f-8b83-180f06459d46 / ext4 errors=remount-ro 0 1`
+to this:
+ `UUID=83237e54-445f-8b83-180f06459d46 / ext4 errors=remount-ro,nobarrier 0 1`
+
+
## Using latest GIT version
On ubuntu to use the latest GIT:
@@ -32,15 +45,3 @@ On your dev server, give your user permissions to write to the directory:
$ sudo chmod 777 -R piwik/tmp/
**If you get the MySQL error number `2002`**, try changing the `[database_tests] host` config option to `"127.0.0.1"`.
-
-## Troubleshooting SLOW tests
-
-If the tests are running incredibly slow on your machine, maybe you are running mysql DB on an ext4 partition?
-Here is the tip that will save you hours of research: if you use Mysql on ext4 partition,
-make sure you add "nobarrier" option to /etc/fstab to disable some super slow IO feature.
-
-Change from:
- `UUID=83237e54-445f-8b83-180f06459d46 / ext4 errors=remount-ro 0 1`
-to this:
- `UUID=83237e54-445f-8b83-180f06459d46 / ext4 errors=remount-ro,nobarrier 0 1`
-