Skip to content

Commit

Permalink
Merge pull request #11427 from piwik/3.x-dev
Browse files Browse the repository at this point in the history
Release Piwik 3.0.2-rc1
  • Loading branch information
mattab committed Feb 28, 2017
2 parents 146201f + 615b7c6 commit c111745
Show file tree
Hide file tree
Showing 66 changed files with 210 additions and 109 deletions.
9 changes: 5 additions & 4 deletions CHANGELOG.md
Expand Up @@ -9,18 +9,19 @@ The Product Changelog at **[piwik.org/changelog](http://piwik.org/changelog)** l
### New Features
* A new SMS provider for sms reports has been added: [ASPSMS.com](http://www.aspsms.com/en/?REF=227830)

### Breaking Changes
* SMS provider now need to define their credential fields by overwriting `getCredentialFields()`. This allows to have SMS providers that require more than only an API key.
* Therefor the MobileMessaging API method `setSMSAPICredential()` now expects the second parameter to be an array filled with credentials (instead of a string containing an API key)

### New APIs
* The JavaScript Tracker now supports CrossDomain tracking. The following tracker methods were added for this: `enableCrossDomainLinking`, `disableCrossDomainLinking`, `isCrossDomainLinkingEnabled`
* Added JavaScript Tracker method `getLinkTrackingTimer` to get the value of the configured link tracking time
* Added JavaScript Tracker method `deleteCustomVariables` to delete all custom variables within a certain scope
* The method `enableLinkTracking` can now be called several times to make Piwik aware of newly added links when your DOM changes
* Added a new method `Piwik\Plugin\Report::getMetricNamesToProcessReportTotals()` that lets you define which metrics should show percentages in the table report visualization on hover. If defined, these percentages will be automatically calculated.
* The event `Tracker.newConversionInformation` now posts a new fourth parameter `$action`
* New HTTP API method `UserCountry.getCountryCodeMapping` to get a list of used country codes to country names

### Changes
* SMS provider now can define their credential fields by overwriting `getCredentialFields()`. This allows to have SMS providers that require more than only an API key.
* Therefore the MobileMessaging API method `setSMSAPICredential()` now takes the second parameter as an array filled with credentials (instead of a string containing an API key)

## Piwik 3.0.1

### New APIs
Expand Down
10 changes: 5 additions & 5 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/SettingsPiwik.php
Expand Up @@ -433,7 +433,7 @@ protected static function rewritePathAppendPiwikInstanceId($pathToRewrite, $lead
* @throws \Exception
* @return string or False if not set
*/
protected static function getPiwikInstanceId()
public static function getPiwikInstanceId()
{
// until Piwik is installed, we use hostname as instance_id
if (!self::isPiwikInstalled()
Expand Down
7 changes: 7 additions & 0 deletions core/Tracker/Action.php
Expand Up @@ -234,6 +234,13 @@ public function setCustomField($field, $value)
$this->customFields[$field] = $value;
}

public function getCustomField($field)
{
if (isset($this->customFields[$field])) {
return $this->customFields[$field];
}
}

public function getCustomFields()
{
return $this->customFields;
Expand Down
12 changes: 8 additions & 4 deletions core/Tracker/GoalManager.php
Expand Up @@ -336,7 +336,7 @@ protected function recordEcommerceGoal(VisitProperties $visitProperties, Request
$recorded = $this->getModel()->updateConversion(
$visitProperties->getProperty('idvisit'), self::IDGOAL_CART, $conversion);
} else {
$recorded = $this->insertNewConversion($conversion, $visitProperties->getProperties(), $request);
$recorded = $this->insertNewConversion($conversion, $visitProperties->getProperties(), $request, $action);
}

if ($recorded) {
Expand Down Expand Up @@ -676,7 +676,7 @@ protected function recordStandardGoals(VisitProperties $visitProperties, Request
$conversionDimensions = ConversionDimension::getAllDimensions();
$conversion = $this->triggerHookOnDimensions($request, $conversionDimensions, 'onGoalConversion', $visitor, $action, $conversion);

$this->insertNewConversion($conversion, $visitProperties->getProperties(), $request);
$this->insertNewConversion($conversion, $visitProperties->getProperties(), $request, $action);
}
}

Expand All @@ -685,9 +685,11 @@ protected function recordStandardGoals(VisitProperties $visitProperties, Request
*
* @param array $conversion
* @param array $visitInformation
* @param Request $request
* @param Action|null $action
* @return bool
*/
protected function insertNewConversion($conversion, $visitInformation, Request $request)
protected function insertNewConversion($conversion, $visitInformation, Request $request, $action)
{
/**
* Triggered before persisting a new [conversion entity](/guides/persistence-and-the-mysql-backend#conversions).
Expand All @@ -701,10 +703,12 @@ protected function insertNewConversion($conversion, $visitInformation, Request $
* @param array $visitInformation The visit entity that we are tracking a conversion for. See what
* information it contains [here](/guides/persistence-and-the-mysql-backend#visits).
* @param \Piwik\Tracker\Request $request An object describing the tracking request being processed.
* @param Action|null $action An action object like ActionPageView or ActionDownload, or null if no action is
* supposed to be processed.
* @deprecated
* @ignore
*/
Piwik::postEvent('Tracker.newConversionInformation', array(&$conversion, $visitInformation, $request));
Piwik::postEvent('Tracker.newConversionInformation', array(&$conversion, $visitInformation, $request, $action));

$newGoalDebug = $conversion;
$newGoalDebug['idvisitor'] = bin2hex($newGoalDebug['idvisitor']);
Expand Down
2 changes: 1 addition & 1 deletion core/Version.php
Expand Up @@ -20,7 +20,7 @@ final class Version
* The current Piwik version.
* @var string
*/
const VERSION = '3.0.2-b6';
const VERSION = '3.0.2-rc1';

public function isStableVersion($version)
{
Expand Down
18 changes: 12 additions & 6 deletions lang/es.json
Expand Up @@ -62,10 +62,11 @@
"ColumnNbActions": "Acciones",
"ColumnNbActionsDocumentation": "El número de acciones llevadas a cabo por sus visitantes. Las acciones incluyen cada vez que se ve una página, se descarga un archivo o se hace clic a un enlace externo.",
"ColumnNbUniqVisitors": "Visitantes únicos",
"ColumnNbUniqVisitorsDocumentation": "El número de visitantes únicos que vienen a tu sitio web. Aunque visite el sitio web varias veces al día, cada visitante se cuenta una sola vez.",
"ColumnNbUsers": "Usuarios",
"ColumnNbUsersDocumentation": "El número de usuarios conectados en su sitio de internet. Es el número de usuarios activos y únicos que poseen un ID de usuario (vía la función código de seguimiento 'setUserId').",
"ColumnNbVisits": "Visitas",
"ColumnNbVisitsDocumentation": "Si el visitante vuelve a tu web por primera vez o si visitan una página 30 minutos después de la última página vista, será almacenada como nueva visita.",
"ColumnNbVisitsDocumentation": "Se considerará como una nueva visita si el visitante viene a tu web por primera vez o si la visita se produce 30 minutos después de la última interacción",
"ColumnPageBounceRateDocumentation": "El porcentaje de visitas que empezaron en esta página y salieron del sitio de inmediato.",
"ColumnPageviews": "Páginas vistas",
"ColumnPageviewsDocumentation": "El número de veces que esta página fue visitada.",
Expand Down Expand Up @@ -160,8 +161,10 @@
"ExceptionLanguageFileNotFound": "Archivo de idioma '%s' no encontrado.",
"ExceptionMethodNotFound": "El método '%1$s' no existe o no está disponible en el módulo '%2$s'.",
"ExceptionMissingFile": "Archivo faltante:%s",
"ExceptionUnexpectedFilePleaseDelete": "Por favor elimina estos ficheros para prevenir errores.",
"ExceptionUnexpectedDirectoryPleaseDelete": "Por favor elimina estos directorios para prevenir errores.",
"ExceptionUnexpectedFile": "Se encontraron archivos que no esperábamos en tu instalación de Piwik",
"ExceptionUnexpectedFilePleaseDelete": "Por favor elimina estos ficheros para evitar errores.",
"ExceptionUnexpectedDirectory": "Se encontraron directorios que no esperábamos en tu instalación de Piwik",
"ExceptionUnexpectedDirectoryPleaseDelete": "Por favor elimina estos directorios para evitar errores.",
"ExceptionFileToDelete": "Archivo a eliminar: %s",
"ExceptionDirectoryToDelete": "Directorio a eliminar: %s",
"ExceptionNonceMismatch": "No se puede verificar la llave de seguridad en este formulario.",
Expand All @@ -180,7 +183,9 @@
"ExportAsImage": "Exportar como imagen",
"ExportThisReport": "Exportar este conjunto de datos en otros formatos",
"Faq": "FAQ",
"FileIntegrityWarningReuploadBis": "Prueba a recargar todos los ficheros de Piwik en modo binario.",
"FileIntegrityWarning": "La comprobación de la integridad del fichero ha fallado y se ha informado de algunos errores. Deberías corregir el problema y refrescar esta página hasta que se muestre sin error",
"FileIntegrityWarningReupload": "Los errores indicados abajo pueden ser debidos a que los ficheros de Piwik se han subido parcialmente o que la operación de subida ha fallado.",
"FileIntegrityWarningReuploadBis": "Prueba a subir de nuevo todos los ficheros de Piwik en modo binario.",
"First": "Primero",
"Flatten": "Aplanar",
"ForExampleShort": "ej.",
Expand Down Expand Up @@ -292,6 +297,7 @@
"Password": "Contraseña",
"Period": "Periodo",
"Piechart": "Gráfica circular",
"PiwikIsACollaborativeProjectYouCanContributeAndDonateNextRelease": "%1$sPiwik%2$s es un proyecto colaborativo dispuesto para tí por los %7$sPiwik team%8$s miembros y por muchos más alrededor del mundo. <br\/> Puedes ayudar si eres un fan de Piwik: Entérate %3$scómo participar en Piwik%4$s o, incluso, %5$s¡haz una donación ahora%6$s para ayudar con los fondos para la siguiente gran versión de Piwik!",
"PiwikXIsAvailablePleaseNotifyPiwikAdmin": "%1$s está disponible. Por favor alerte al %2$s administrador Piwik%3$s.",
"PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s está disponible. %2$s ¡Por favor, actualice ahora!%3$s (ver %4$scambios%5$s).",
"PleaseContactYourPiwikAdministrator": "Por favor contáctese con su administrador Piwik.",
Expand Down Expand Up @@ -364,8 +370,8 @@
"TimeAgo": "hace %s",
"TimeFormat": "Formato de hora",
"TimeOnPage": "Tiempo en la página",
"ToDeleteAllDirectoriesRunThisCommand": "Para eliminar todos los directorios de una vez, puedes utilizar este comando:",
"ToDeleteAllFilesRunThisCommand": "Para eliminar todos los ficheros de una vez, puedes utilizar este comando:",
"ToDeleteAllDirectoriesRunThisCommand": "Para eliminar todos estos directorios de una vez, puedes utilizar este comando:",
"ToDeleteAllFilesRunThisCommand": "Para eliminar todos estos ficheros de una vez, puedes utilizar este comando:",
"Total": "Total",
"TotalRatioTooltip": "Esto es %1$s de todos los %2$s %3$s.",
"TotalRevenue": "Ingresos totales",
Expand Down
16 changes: 15 additions & 1 deletion plugins/API/Glossary.php
Expand Up @@ -9,6 +9,8 @@

namespace Piwik\Plugins\API;

use Piwik\Metrics;

class Glossary
{
protected $metadata = array();
Expand Down Expand Up @@ -100,9 +102,21 @@ public function metricsGlossary($idSite)
}
}


$metricsTranslations = Metrics::getDefaultMetricTranslations();
foreach (Metrics::getDefaultMetricsDocumentation() as $metric => $translation) {
if (!isset($metrics[$metric]) && isset($metricsTranslations[$metric])) {
$metrics[$metric] = array(
'name' => $metricsTranslations[$metric],
'id' => $metric,
'documentation' => $translation
);
}
}

usort($metrics, function ($a, $b) {
return strcmp($a['name'], $b['name']);
});
return $metrics;
}
}
}
4 changes: 2 additions & 2 deletions plugins/Actions/API.php
Expand Up @@ -222,7 +222,7 @@ public function getPageTitle($pageName, $idSite, $period, $date, $segment = fals
public function getDownloads($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $flat = false)
{
$dataTable = Archive::createDataTableFromArchive('Actions_downloads', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable);
$this->filterActionsDataTable($dataTable, $expanded);
$this->filterActionsDataTable($dataTable);
return $dataTable;
}

Expand All @@ -237,7 +237,7 @@ public function getDownload($downloadUrl, $idSite, $period, $date, $segment = fa
public function getOutlinks($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $flat = false)
{
$dataTable = Archive::createDataTableFromArchive('Actions_outlink', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable);
$this->filterActionsDataTable($dataTable, $expanded);
$this->filterActionsDataTable($dataTable);
return $dataTable;
}

Expand Down
2 changes: 2 additions & 0 deletions plugins/Actions/lang/cs.json
Expand Up @@ -29,8 +29,10 @@
"ColumnIdPageview": "ID zobrazení stránky",
"ColumnInteractionPosition": "Pozice interakce",
"DownloadsReportDocumentation": "V tomto hlášení můžete vidět soubory, které byly staženy. %s Které Piwik počítá jako stažené jsou jen ty, na které bylo kliknuto. Bez ohledu na to, jestli bylo stažení dokončeno nebo přerušeno. To Piwik neumí zjistit.",
"EntryPagesReportDocumentation": "Toto hlášení obsahuje informace o vstupních stránkách, které byly za dané časové období použity. Vstupní stránka je první stránka, kterou uživatel navštíví. %s URL jsou zobrazeny ve složkové struktuře.",
"EntryPageTitles": "Titulky vstupních stránek",
"EntryPageTitlesReportDocumentation": "Toto hlášení obsahuje informace o titulcích vstupních stránek, které byly použity v daném období.",
"ExitPagesReportDocumentation": "Toto hlášení obsahujje informace o výstupních stránkách, které se za dané časové období vyskytly. Výstupní stránka je poslední stránka, kterou návštěvník během své návštěvy navštíví. %s URL jsou zobrazeny ve složkové struktuře.",
"ExitPageTitles": "Titulky výstupních stránek",
"ExitPageTitlesReportDocumentation": "Toto hlášení obsahuje informace o titulcích výstupních stránek za dané období.",
"LearnMoreAboutSiteSearchLink": "Zjistěte více o sledování toho, jak návštěvníci používají váš vyhledávač.",
Expand Down
6 changes: 5 additions & 1 deletion plugins/Actions/lang/es.json
@@ -1,6 +1,6 @@
{
"Actions": {
"AvgGenerationTimeTooltip": "Promedio basado en %1$s acceso(s) %2$s entre %3$s y %4$s",
"AvgGenerationTimeTooltip": "Promedio basado en %1$s hit(s) %2$s entre %3$s y %4$s",
"ColumnClickedURL": "URL elegida",
"ColumnActionURL": "URL de acción",
"ColumnClicks": "Clics",
Expand All @@ -18,6 +18,7 @@
"ColumnSearchCategory": "Categoría de búsqueda",
"ColumnSearches": "Búsquedas",
"ColumnSearchesDocumentation": "La cantidad de visitantes que buscaron esta palabra clave en el buscador de su sitio de internet.",
"ColumnSearchExits": "%% salidas por búsqueda",
"ColumnSearchExitsDocumentation": "El porcentaje de visitantes que dejó el sitio después de buscar esta palabra clave en el buscador interno de su sitio de internet.",
"ColumnSearchResultsCount": "Cantidad de resultados de la búsqueda",
"ColumnSiteSearchKeywords": "Palabras claves únicas",
Expand All @@ -26,9 +27,12 @@
"ColumnUniqueDownloads": "Descargas únicas",
"ColumnUniqueOutlinks": "Enlaces externos únicos",
"ColumnIdPageview": "ID Páginas vistas",
"ColumnInteractionPosition": "Posición de la interacción",
"DownloadsReportDocumentation": "En este informe, puede ver que archivos han descargado sus visitantes. %s Lo que Piwik cuenta como descarga es el clic en un enlace de descarga. Si la descarga fue completada o no, Piwik no puede saberlo.",
"EntryPagesReportDocumentation": "Este informe contiene información acerca de las páginas de entrada que fueron usadas durante el periodo de tiempo especificado. Una página de entrada es la primera página que un usuario ve durante su visita. %s Las URL de entrada se muestran como una estructura jerárquica de carpetas.",
"EntryPageTitles": "Títulos de páginas de entrada",
"EntryPageTitlesReportDocumentation": "Este informe contiene información sobre los títulos de las páginas de entrada que han sido utilizadas durante el período especificado.",
"ExitPagesReportDocumentation": "Este informe contiene información acerca de las páginas de salida durante el periodo de tiempo especificado. Una página de salida es la última página que un usuario ve durante su visita. %s Las URL de salida se muestran como una estructura jerárquica de carpetas.",
"ExitPageTitles": "Títulos de páginas de salida",
"ExitPageTitlesReportDocumentation": "Este reporte contiene información sobre los títulos de las páginas de salida que ocurrieron durante el período específicado.",
"LearnMoreAboutSiteSearchLink": "Aprende más sobre cómo realizar un seguimiento al uso que sus visitantes le dan a su motor de búsqueda.",
Expand Down
2 changes: 2 additions & 0 deletions plugins/Contents/lang/es.json
Expand Up @@ -2,6 +2,8 @@
"Contents": {
"PluginDescription": "El contenido y el seguimiento de anuncios le permite medir el rendimiento (visitas, clics, CTR) de cualquier pieza de contenido en sus páginas (anuncios publicitarios, imágenes, cualquier elemento).",
"Impressions": "Impresiones",
"ContentInteraction": "Interacción con el contenido",
"ContentInteractions": "Interacciones con el contenido",
"InteractionRate": "Nivel de interacción",
"ContentName": "Nombre del contenido",
"ContentPiece": "Pieza de contenido",
Expand Down

0 comments on commit c111745

Please sign in to comment.