[Piwik-svn] r184 - in trunk: modules/API modules/DataTable/Renderer plugins/VisitsSummary tests/modules/DataTable
svnmaster at piwik.org
svnmaster at piwik.org
Fri Jan 18 14:38:57 CET 2008
Author: matt
Date: 2008-01-18 14:38:56 +0100 (Fri, 18 Jan 2008)
New Revision: 184
Modified:
trunk/modules/API/Request.php
trunk/modules/DataTable/Renderer/Php.php
trunk/modules/DataTable/Renderer/Xml.php
trunk/plugins/VisitsSummary/API.php
trunk/tests/modules/DataTable/Renderer.test.php
Log:
- Added <?xml version="1.0" encoding="utf-8" ?> in XML renderings
- added recursive search for a pattern over the lastN /previousN period
Modified: trunk/modules/API/Request.php
===================================================================
--- trunk/modules/API/Request.php 2008-01-18 06:28:19 UTC (rev 183)
+++ trunk/modules/API/Request.php 2008-01-18 13:38:56 UTC (rev 184)
@@ -304,8 +304,12 @@
)
{
return $this->getExceptionOutput( ' The API cannot handle this data structure. You can get the data internally by directly using the class.', $this->outputFormatRequested);
- }
- return $this->getStandardSuccessOutput($this->outputFormatRequested, $message = $toReturn);
+ }
+
+ require_once "DataTable/Simple.php";
+ $dataTable = new Piwik_DataTable_Simple();
+ $dataTable->loadFromArray( array($toReturn) );
+ $toReturn = $this->getRenderedDataTable($dataTable);
}
return $toReturn;
}
@@ -323,6 +327,7 @@
{
case 'xml':
@header('Content-type: text/xml');
+
$return =
'<?xml version="1.0" encoding="utf-8" ?>'.
'<result>'.
Modified: trunk/modules/DataTable/Renderer/Php.php
===================================================================
--- trunk/modules/DataTable/Renderer/Php.php 2008-01-18 06:28:19 UTC (rev 183)
+++ trunk/modules/DataTable/Renderer/Php.php 2008-01-18 13:38:56 UTC (rev 184)
@@ -103,7 +103,11 @@
$newRow = $row['columns'] + $row['details'];
if(isset($row['idsubdatatable']))
{
- $newRow += array('idsubdatatable' => $row['idsubdatatable']);
+ $newRow += array('idsubdatatable' => $row['idsubdatatable']);
+ if(isset($row['subtable']))
+ {
+ $newRow += array('subtable' => $row['subtable']);
+ }
}
$flatArray[] = $newRow;
}
@@ -167,8 +171,16 @@
$newRow = array(
'columns' => $row->getColumns(),
'details' => $row->getDetails(),
- 'idsubdatatable' => $row->getIdSubDataTable()
+ 'idsubdatatable' => $row->getIdSubDataTable(),
);
+
+ if($row->getIdSubDataTable() !== null)
+ {
+ $subTable = $this->renderTable( Piwik_DataTable_Manager::getInstance()->getTable($row->getIdSubDataTable()));
+
+ $newRow['subtable'] = $subTable;
+ }
+
$array[] = $newRow;
}
return $array;
Modified: trunk/modules/DataTable/Renderer/Xml.php
===================================================================
--- trunk/modules/DataTable/Renderer/Xml.php 2008-01-18 06:28:19 UTC (rev 183)
+++ trunk/modules/DataTable/Renderer/Xml.php 2008-01-18 13:38:56 UTC (rev 184)
@@ -211,7 +211,8 @@
protected function output( $xml )
{
// silent fail because otherwise it throws an exception in the unit tests
- @header('Content-type: text/xml');
+ @header('Content-type: text/xml');
+ $xml = '<?xml version="1.0" encoding="utf-8" ?>' . "\n" . $xml;
return $xml;
}
}
\ No newline at end of file
Modified: trunk/plugins/VisitsSummary/API.php
===================================================================
--- trunk/plugins/VisitsSummary/API.php 2008-01-18 06:28:19 UTC (rev 183)
+++ trunk/plugins/VisitsSummary/API.php 2008-01-18 13:38:56 UTC (rev 184)
@@ -36,45 +36,45 @@
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
-
- if(empty($toFetch))
- {
- $toFetch = array( 'max_actions',
- 'nb_uniq_visitors',
- 'nb_visits',
- 'nb_actions',
- 'sum_visit_length',
- 'bounce_count',
- );
- }
- else
- {
- $toFetch = array($toFetch);
- }
+
+ $toFetch = array( 'max_actions',
+ 'nb_uniq_visitors',
+ 'nb_visits',
+ 'nb_actions',
+ 'sum_visit_length',
+ 'bounce_count',
+ );
$dataTable = $archive->getDataTableFromNumeric($toFetch);
return $dataTable;
}
+ protected function getNumeric( $idSite, $period, $date, $toFetch )
+ {
+ Piwik::checkUserHasViewAccess( $idSite );
+ $archive = Piwik_Archive::build($idSite, $period, $date );
+ $dataTable = $archive->getNumeric($toFetch);
+ return $dataTable;
+ }
public function getVisits( $idSite, $period, $date )
{
- return $this->get( $idSite, $period, $date, 'nb_visits');
+ return $this->getNumeric( $idSite, $period, $date, 'nb_visits');
}
- public function getUniqueVisitors( $idSite, $period, $date )
+ public function getUniquesVisitors( $idSite, $period, $date )
{
- return $this->get( $idSite, $period, $date, 'nb_uniq_visitors');
+ return $this->getNumeric( $idSite, $period, $date, 'nb_uniq_visitors');
}
public function getMaxActions( $idSite, $period, $date )
{
- return $this->get( $idSite, $period, $date, 'max_actions');
+ return $this->getNumeric( $idSite, $period, $date, 'max_actions');
}
public function getSumVisitsLength( $idSite, $period, $date )
{
- return $this->get( $idSite, $period, $date, 'sum_visit_length');
+ return $this->getNumeric( $idSite, $period, $date, 'sum_visit_length');
}
public function getBounceCount( $idSite, $period, $date )
{
- return $this->get( $idSite, $period, $date, 'bounce_count');
+ return $this->getNumeric( $idSite, $period, $date, 'bounce_count');
}
}
Modified: trunk/tests/modules/DataTable/Renderer.test.php
===================================================================
--- trunk/tests/modules/DataTable/Renderer.test.php 2008-01-18 06:28:19 UTC (rev 183)
+++ trunk/tests/modules/DataTable/Renderer.test.php 2008-01-18 13:38:56 UTC (rev 184)
@@ -93,7 +93,8 @@
{
$dataTable = $this->getDataTableTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<result>
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<result>
<row>
<label>Google</label>
<nb_unique_visitors>11</nb_unique_visitors>
@@ -124,7 +125,8 @@
{
$dataTable = $this->getDataTableSimpleTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<result>
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<result>
<max_actions>14</max_actions>
<nb_uniq_visitors>57</nb_uniq_visitors>
<nb_visits>66</nb_visits>
@@ -138,14 +140,16 @@
{
$dataTable = $this->getDataTableSimpleOneRowTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<result>14</result>';
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<result>14</result>';
$this->assertEqual( $expected,$render->render());
}
function test_XML_test4()
{
$dataTable = $this->getDataTableEmpty();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<result />';
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<result />';
$this->assertEqual( $expected,$render->render());
}
@@ -153,7 +157,8 @@
{
$dataTable = $this->getDataTableSimpleOneZeroRowTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<result>0</result>';
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<result>0</result>';
$this->assertEqual( $expected,$render->render());
}
@@ -420,7 +425,8 @@
{
$dataTable = $this->getDataTableArrayTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<results>
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<results>
<result testKey="date1">
<row>
<label>Google</label>
@@ -463,7 +469,8 @@
{
$dataTable = $this->getDataTableSimpleArrayTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<results>
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<results>
<result testKey="row1">
<max_actions>14</max_actions>
<nb_uniq_visitors>57</nb_uniq_visitors>
@@ -480,7 +487,8 @@
{
$dataTable = $this->getDataTableSimpleOneRowArrayTest();
$render = new Piwik_DataTable_Renderer_Xml($dataTable);
- $expected = '<results>
+ $expected = '<?xml version="1.0" encoding="utf-8" ?>
+<results>
<result testKey="row1">14</result>
<result testKey="row2">15</result>
<result testKey="row3" />
More information about the Piwik-svn
mailing list