You are here

class TextListExporter in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/aklump/loft_data_grids/src/AKlump/LoftDataGrids/TextListExporter.php \AKlump\LoftDataGrids\TextListExporter

Class TextListExporter

Hierarchy

Expanded class hierarchy of TextListExporter

File

vendor/aklump/loft_data_grids/src/AKlump/LoftDataGrids/TextListExporter.php, line 7

Namespace

AKlump\LoftDataGrids
View source
class TextListExporter extends Exporter implements ExporterInterface {
  public $line_break = '-';
  public $separator = '  ';
  public $pad_char = ' ';
  protected $extension = '.txt';
  public function getInfo() {
    $info = parent::getInfo();
    $info = array(
      'name' => 'Plaintext List',
      'shortname' => 'List',
      'description' => 'Export data in plaintext list file format.',
    ) + $info;
    return $info;
  }
  public function compile($page_id = null) {
    $pages = $this
      ->getData()
      ->get();
    $this->output = '';
    $output = '';
    $longest_key = $longest_value = 0;

    // Determine spacing
    foreach ($pages as $page_id => $page) {
      foreach ($page as $record) {
        foreach ($record as $key => $value) {
          $longest_key = max($longest_key, strlen($key));
          $longest_value = max($longest_value, strlen($value));
        }
      }
    }

    // Apply spacing and build output
    foreach ($pages as $page_id => $page) {
      if ($this
        ->getShowPageIds()) {
        $output .= $page_id . PHP_EOL;
      }
      foreach ($page as $record) {
        $output .= "<hr />\n";
        foreach ($record as $key => $value) {
          $output .= str_pad($key, $longest_key, $this->pad_char) . $this->separator . $value . PHP_EOL;
        }
        $output .= "\n";
      }
      $output .= "\n";
    }
    $line_break = str_repeat($this->line_break, $longest_key + strlen($this->separator) + $longest_value + 2);
    $output = str_replace('<hr />', $line_break, $output);
    $this->output = $output;
    return $this;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Exporter::$export_data protected property
Exporter::$header protected property
Exporter::$settings protected property
Exporter::addSetting public function Adds/Updates a single setting by name. Overrides ExporterInterface::addSetting
Exporter::cssSafe protected function
Exporter::dataTransform protected function Iterate over all cells and transform data as appropriate.
Exporter::export public function Export data as a string Overrides ExporterInterface::export 1
Exporter::filenameSafe protected function Return a string as a safe filename
Exporter::formatColumn public function Format a single column with format by string Overrides ExporterInterface::formatColumn 1
Exporter::getData public function Return the ExportDataInterface object Overrides ExporterInterface::getData
Exporter::getDataAsTransformedArray protected function Convert ExportData to an array transforming every cell.
Exporter::getFilename public function Get the filename Overrides ExporterInterface::getFilename
Exporter::getHeader public function Return an array each of the keys present in the data on a page. Overrides ExporterInterface::getHeader
Exporter::getSettings public function Return the settings object. Overrides ExporterInterface::getSettings
Exporter::getShowPageIds public function Return the showPageIds. Overrides ExporterInterface::getShowPageIds
Exporter::getTitle public function Overrides ExporterInterface::getTitle
Exporter::hidePageIds public function Set the exporter to hide page ids. Overrides ExporterInterface::hidePageIds
Exporter::save public function Stream as a file to the server with headers. Overrides ExporterInterface::save 1
Exporter::saveFile public function Compile and and save to a filepath. Overrides ExporterInterface::saveFile 2
Exporter::setData public function Set the export data object Overrides ExporterInterface::setData
Exporter::setFilename public function Getter/Setter for the filename Overrides ExporterInterface::setFilename
Exporter::setSettings public function Set the settings object. Overrides ExporterInterface::setSettings
Exporter::setSettingsDefault protected function Setup default values on object data. 4
Exporter::setTitle public function Set a title for the exported document Overrides ExporterInterface::setTitle 1
Exporter::showPageIds public function Set the exporter to display page ids. Overrides ExporterInterface::showPageIds
Exporter::__construct public function Constructor 5
TextListExporter::$extension protected property
TextListExporter::$line_break public property
TextListExporter::$pad_char public property
TextListExporter::$separator public property
TextListExporter::compile public function Build the string content of $this->output and return $this for chaining. Overrides ExporterInterface::compile
TextListExporter::getInfo public function Return info about this class Overrides Exporter::getInfo