Beispiel #1
0
 function test_API()
 {
     $dataTable = Piwik_SEO_API::getInstance()->getRank('http://forum.piwik.org/');
     $renderer = Piwik_DataTable_Renderer::factory('php');
     $renderer->setSerialize(false);
     $ranks = $renderer->render($dataTable);
     foreach ($ranks as $rank) {
         $this->assertTrue(!empty($rank['rank']), $rank['id'] . ' expected non-zero rank, got [' . $rank['rank'] . ']');
     }
 }
Beispiel #2
0
 /**
  * tell us when the API is broken
  *
  * @group Plugins
  * @group SEO
  */
 public function test_API()
 {
     $dataTable = Piwik_SEO_API::getInstance()->getRank('http://www.microsoft.com/');
     $renderer = Piwik_DataTable_Renderer::factory('php');
     $renderer->setSerialize(false);
     $ranks = $renderer->render($dataTable);
     foreach ($ranks as $rank) {
         $this->assertNotEmpty($rank['rank'], $rank['id'] . ' expected non-zero rank, got [' . $rank['rank'] . ']');
     }
 }
Beispiel #3
0
 function getRank()
 {
     $idSite = Piwik_Common::getRequestVar('idSite');
     $site = new Piwik_Site($idSite);
     $url = urldecode(Piwik_Common::getRequestVar('url', '', 'string'));
     if (!empty($url) && strpos($url, 'http://') !== 0 && strpos($url, 'https://') !== 0) {
         $url = 'http://' . $url;
     }
     if (empty($url) || !Piwik_Common::isLookLikeUrl($url)) {
         $url = $site->getMainUrl();
     }
     $dataTable = Piwik_SEO_API::getInstance()->getRank($url);
     $view = Piwik_View::factory('index');
     $view->urlToRank = Piwik_SEO_RankChecker::extractDomainFromUrl($url);
     $renderer = Piwik_DataTable_Renderer::factory('php');
     $renderer->setSerialize(false);
     $view->ranks = $renderer->render($dataTable);
     echo $view->render();
 }
	function getRank()
	{
		$idSite = Piwik_Common::getRequestVar('idSite'); 
		$site = new Piwik_Site($idSite);

		$url = urldecode(Piwik_Common::getRequestVar('url', '', 'string'));

		if(empty($url) || @parse_url($url) === false)
		{
			$url = $site->getMainUrl();
		}

		$dataTable = Piwik_SEO_API::getInstance()->getRank($url);
		
		$view = Piwik_View::factory('index');
		$view->urlToRank = $url;
		
		$renderer = Piwik_DataTable_Renderer::factory('php');
		$renderer->setSerialize(false);
		$view->ranks = $renderer->render($dataTable);
		echo $view->render();
	}
	/**
	 * Apply the specified renderer to the DataTable
	 * 
	 * @param Piwik_DataTable
	 * @return string
	 */
	protected function getRenderedDataTable($dataTable)
	{
		$format = strtolower($this->outputFormat);
		
		// if asked for original dataStructure
		if($format == 'original')
		{
			// if the original dataStructure is a simpleDataTable 
			// and has only one column, we return the value
			if($dataTable instanceof Piwik_DataTable_Simple)
			{
				$columns = $dataTable->getFirstRow()->getColumns();
				if(count($columns) == 1)
				{
					$values = array_values($columns);
					return $values[0];
				}
			}
			
			// by default "original" data is not serialized
			if($this->caseRendererPHPSerialize( $defaultSerialize = 0))
			{
				$dataTable = serialize($dataTable);
			}
			return $dataTable;
		}
		
		$renderer = Piwik_DataTable_Renderer::factory($format);
		$renderer->setTable($dataTable);
		$renderer->setRenderSubTables(Piwik_Common::getRequestVar('expanded', false, 'int', $this->request));
		$renderer->setHideIdSubDatableFromResponse(Piwik_Common::getRequestVar('hideIdSubDatable', false, 'int', $this->request));
		if($format == 'php')
		{
			$renderer->setSerialize( $this->caseRendererPHPSerialize());
			$renderer->setPrettyDisplay(Piwik_Common::getRequestVar('prettyDisplay', false, 'int', $this->request));
		}
		else if($format == 'html')
		{
			$renderer->setTableId($this->request['method']);
		}
		else if($format == 'csv')
		{
			$renderer->setConvertToUnicode( Piwik_Common::getRequestVar('convertToUnicode', true, 'int') );
		}
		
		return $renderer->render();
	}
Beispiel #6
0
 /**
  * Returns friendly php array from the Piwik_DataTable
  * @see Piwik_DataTable_Renderer_Php
  * @return array
  */
 protected function getPHPArrayFromDataTable()
 {
     $renderer = Piwik_DataTable_Renderer::factory('php');
     $renderer->setTable($this->dataTable);
     $renderer->setSerialize(false);
     // we get the php array from the datatable but conserving the original datatable format,
     // ie. rows 'columns', 'metadata' and 'idsubdatatable'
     $phpArray = $renderer->originalRender();
     return $phpArray;
 }
Beispiel #7
0
 /**
  * Apply the specified renderer to the DataTable
  * 
  * @param Piwik_DataTable
  * @return string
  */
 protected function getRenderedDataTable($dataTable)
 {
     // Renderer
     $format = Piwik_Common::getRequestVar('format', 'php', 'string', $this->requestToUse);
     $format = strtolower($format);
     // if asked for original dataStructure
     if ($format == 'original') {
         // if the original dataStructure is a simpleDataTable and has only one row, we return the value
         if ($dataTable instanceof Piwik_DataTable_Simple && $dataTable->getRowsCount() == 1) {
             return $dataTable->getRowFromId(0)->getColumn('value');
         }
         // the original data structure can be asked as serialized.
         // but by default it's not serialized
         if ($this->caseRendererPHPSerialize($defaultSerialize = 0)) {
             $dataTable = serialize($dataTable);
         }
         return $dataTable;
     }
     $renderer = Piwik_DataTable_Renderer::factory($format);
     $renderer->setTable($dataTable);
     if ($format == 'php') {
         $renderer->setSerialize($this->caseRendererPHPSerialize());
     }
     $toReturn = $renderer->render();
     return $toReturn;
 }
 /**
  * Apply the specified renderer to the DataTable
  * 
  * @param Piwik_DataTable
  * @return string
  */
 protected function getRenderedDataTable($dataTable)
 {
     $format = strtolower($this->outputFormat);
     // if asked for original dataStructure
     if ($format == 'original') {
         // if the original dataStructure is a simpleDataTable
         // and has only one column, we return the value
         if ($dataTable instanceof Piwik_DataTable_Simple) {
             $columns = $dataTable->getFirstRow()->getColumns();
             if (count($columns) == 1) {
                 $values = array_values($columns);
                 return $values[0];
             }
         }
         // by default "original" data is not serialized
         if ($this->caseRendererPHPSerialize($defaultSerialize = 0)) {
             $dataTable = serialize($dataTable);
         }
         return $dataTable;
     }
     $method = Piwik_Common::getRequestVar('method', '', 'string', $this->request);
     $renderer = Piwik_DataTable_Renderer::factory($format);
     $renderer->setTable($dataTable);
     $renderer->setRenderSubTables(Piwik_Common::getRequestVar('expanded', false, 'int', $this->request));
     $renderer->setHideIdSubDatableFromResponse(Piwik_Common::getRequestVar('hideIdSubDatable', false, 'int', $this->request));
     if ($format == 'php') {
         $renderer->setSerialize($this->caseRendererPHPSerialize());
         $renderer->setPrettyDisplay(Piwik_Common::getRequestVar('prettyDisplay', false, 'int', $this->request));
     } else {
         if ($format == 'html') {
             $renderer->setTableId($this->request['method']);
         } else {
             if ($format == 'csv' || $format == 'tsv') {
                 $renderer->setIncludeInnerNodes(Piwik_Common::getRequestVar('includeInnerNodes', true, 'int', $this->request));
                 $renderer->setConvertToUnicode(Piwik_Common::getRequestVar('convertToUnicode', true, 'int', $this->request));
                 if (substr($method, 0, 8) == 'Actions.') {
                     $renderer->setRecursiveLabelSeparator('/');
                 }
             }
         }
     }
     // prepare translation of column names
     if ($format == 'html' || $format == 'csv' || $format == 'tsv' || ($format = 'rss')) {
         $renderer->setApiMethod($method);
         $renderer->setIdSite(Piwik_Common::getRequestVar('idSite', false, 'int', $this->request));
         $renderer->setTranslateColumnNames(Piwik_Common::getRequestVar('translateColumnNames', false, 'int', $this->request));
     }
     return $renderer->render();
 }