protected function renderTable($table) { $renderer = new Piwik_DataTable_Renderer_Php($table, $serialize = false); $array = $renderer->flatRender(null, (bool) Piwik_Common::getRequestVar('expanded', false)); // case DataTable_Array if ($table instanceof Piwik_DataTable_Array) { return $this->renderDataTableArray($table, $array); } // integer value of ZERO is a value we want to display if ($array != 0 && empty($array)) { $out = "<result />"; return $this->output($out); } if ($table instanceof Piwik_DataTable_Simple) { if (is_array($array)) { $out = $this->renderDataTableSimple($array); $out = "<result>\n" . $out . "</result>"; } else { $out = "<result>" . $array . "</result>"; } return $this->output($out); } if ($table instanceof Piwik_DataTable) { $out = $this->renderDataTable($array); $out = "<result>\n{$out}</result>"; return $this->output($out); } }
protected function getArrayFromDataTable($table) { $renderer = new Piwik_DataTable_Renderer_Php(); $renderer->setRenderSubTables($this->isRenderSubtables()); $renderer->setSerialize(false); $renderer->setTable($table); return $renderer->flatRender(); }
protected function renderTable($table) { $renderer = new Piwik_DataTable_Renderer_Php($table, $serialize = false); $array = $renderer->flatRender(null, (bool) Piwik_Common::getRequestVar('expanded', false)); if (!is_array($array)) { $array = array('value' => $array); } $str = json_encode($array); if (($jsonCallback = Piwik_Common::getRequestVar('jsoncallback', false)) !== false) { if (preg_match('/^[0-9a-zA-Z]*$/', $jsonCallback) > 0) { $str = $jsonCallback . "(" . $str . ")"; } } return $str; }
protected function renderTable($table) { $renderer = new Piwik_DataTable_Renderer_Php(); $renderer->setTable($table); $renderer->setRenderSubTables($this->isRenderSubtables()); $renderer->setSerialize(false); $array = $renderer->flatRender(); if (!is_array($array)) { $array = array('value' => $array); } $str = json_encode($array); if (($jsonCallback = Piwik_Common::getRequestVar('jsoncallback', false)) !== false) { if (preg_match('/^[0-9a-zA-Z]*$/', $jsonCallback) > 0) { $str = $jsonCallback . "(" . $str . ")"; } } return $str; }
protected function renderTable($table) { $renderer = new Piwik_DataTable_Renderer_Php(); $renderer->setTable($table); $renderer->setRenderSubTables($this->isRenderSubtables()); $renderer->setSerialize(false); $renderer->setHideIdSubDatableFromResponse($this->hideIdSubDatatable); $array = $renderer->flatRender(); if (!is_array($array)) { $array = array('value' => $array); } // decode all entities $callback = create_function('&$value,$key', 'if(is_string($value)){$value = html_entity_decode($value, ENT_QUOTES, "UTF-8");}'); array_walk_recursive($array, $callback); $str = Piwik_Common::json_encode($array); return $this->jsonpWrap($str); }
function test_PHP_Array_isMadeOfArray_test3() { $dataTable = $this->getDataTableArray_containsDataTableArray_simpleOneRow(); $render = new Piwik_DataTable_Renderer_Php(); $render->setTable($dataTable); $rendered = $render->render(); $expected = serialize(array('idSite' => array('row1' => 14.0, 'row2' => 15.0, 'row3' => array()))); $this->assertEqual($expected, $rendered); }
private function handleTableReport($idSite, $period, $dataTable, &$reportMetadata) { // displayed columns $columns = array_merge(array('label' => $reportMetadata['dimension']), $reportMetadata['metrics']); if (isset($reportMetadata['processedMetrics'])) { $processedMetricsAdded = $this->getDefaultProcessedMetrics(); foreach ($processedMetricsAdded as $processedMetricId => $processedMetricTranslation) { // this processed metric can be displayed for this report if (isset($reportMetadata['processedMetrics'][$processedMetricId])) { $columns[$processedMetricId] = $processedMetricTranslation; } } } // Display the global Goal metrics if (isset($reportMetadata['metricsGoal'])) { $metricsGoalDisplay = array('conversion_rate', 'revenue'); // Add processed metrics to be displayed for this report foreach ($metricsGoalDisplay as $goalMetricId) { if (isset($reportMetadata['metricsGoal'][$goalMetricId])) { $columns[$goalMetricId] = $reportMetadata['metricsGoal'][$goalMetricId]; } } } if (isset($reportMetadata['metricsGoal'])) { // To process conversion_rate, we need to apply the Goal processed filter // only requesting to process the basic metrics // This adds goal metrics as well as standard metrics $dataTable->filter('AddColumnsProcessedMetricsGoal', array($enable = true, Piwik_DataTable_Filter_AddColumnsProcessedMetricsGoal::GOALS_MINIMAL_REPORT)); } elseif (isset($reportMetadata['processedMetrics'])) { // Add processed metrics $dataTable->filter('AddColumnsProcessedMetrics'); } $renderer = new Piwik_DataTable_Renderer_Php(); $renderer->setTable($dataTable); $renderer->setSerialize(false); $reportTable = $renderer->render(); $rowsMetadata = array(); $newReport = array(); foreach ($reportTable as $rowId => $row) { // ensure all displayed columns have 0 values foreach ($columns as $id => $name) { if (!isset($row[$id])) { $row[$id] = 0; } } $newRow = array(); foreach ($row as $columnId => $value) { // Keep displayed columns if (isset($columns[$columnId])) { $newRow[$columnId] = Piwik::getPrettyValue($idSite, $columnId, $value, $htmlAllowed = false, $timeAsSentence = false); } elseif (!is_array($value) && strpos($columnId, '_') === false) { $rowsMetadata[$rowId][$columnId] = $value; } } $newReport[] = $newRow; } return array($newReport, $columns, $rowsMetadata); }