[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