renderTable($this->table); } /** * Sets the prefix to be used * * @param string $str new prefix */ public function setPrefixRow($str) { $this->prefixRows = $str; } /** * Computes the output of the given array of data tables * * @param DataTable\Map $map data tables to render * @param string $prefix prefix to output before table data * @return string */ protected function renderDataTableMap(DataTable\Map $map, $prefix) { $output = "Set
"; $prefix = $prefix . '      '; foreach ($map->getDataTables() as $descTable => $table) { $output .= $prefix . "" . $descTable . "
"; $output .= $prefix . $this->renderTable($table, $prefix . '      '); $output .= "
"; } return $output; } /** * Computes the given dataTable output and returns the string/binary * * @param DataTable $table data table to render * @param string $prefix prefix to output before table data * @return string */ protected function renderTable($table, $prefix = "") { if (is_array($table)) { // convert array to DataTable $table = DataTable::makeFromSimpleArray($table); } if ($table instanceof DataTable\Map) { return $this->renderDataTableMap($table, $prefix); } if ($table->getRowsCount() == 0) { return "Empty table
\n"; } static $depth = 0; $output = ''; $i = 1; foreach ($table->getRows() as $row) { $dataTableMapBreak = false; $columns = array(); foreach ($row->getColumns() as $column => $value) { if ($value instanceof DataTable\Map) { $output .= $this->renderDataTableMap($value, $prefix); $dataTableMapBreak = true; break; } if (is_string($value)) { $value = "'$value'"; } elseif (is_array($value)) { $value = var_export($value, true); } $columns[] = "'$column' => $value"; } if ($dataTableMapBreak === true) { continue; } $columns = implode(", ", $columns); $metadata = array(); foreach ($row->getMetadata() as $name => $value) { if (is_string($value)) { $value = "'$value'"; } elseif (is_array($value)) { $value = var_export($value, true); } $metadata[] = "'$name' => $value"; } $metadata = implode(", ", $metadata); $output .= str_repeat($this->prefixRows, $depth) . "- $i [" . $columns . "] [" . $metadata . "] [idsubtable = " . $row->getIdSubDataTable() . "]
\n"; if (!is_null($row->getIdSubDataTable())) { $subTable = $row->getSubtable(); if ($subTable) { $depth++; $output .= $this->renderTable($subTable, $prefix . '      '); $depth--; } else { $output .= "-- Sub DataTable not loaded
\n"; } } $i++; } $metadata = $table->getAllTableMetadata(); if (!empty($metadata)) { $output .= "
Metadata
"; foreach ($metadata as $id => $metadataIn) { $output .= "
"; $output .= $prefix . " $id
"; if (is_array($metadataIn)) { foreach ($metadataIn as $name => $value) { $output .= $prefix . $prefix . "$name => $value"; } } } } return $output; } }