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'] . ']'); } }
/** * 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'] . ']'); } }
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(); }
/** * 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; }
/** * 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(); }