You are here

class XMLExporter in Loft Data Grids 6.2

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

Class XMLExporter

Hierarchy

Expanded class hierarchy of XMLExporter

File

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

Namespace

AKlump\LoftDataGrids
View source
class XMLExporter extends Exporter implements ExporterInterface {
  protected $extension = '.xml';
  public function getInfo() {
    $info = parent::getInfo();
    $info = array(
      'name' => 'XML Format',
      'shortname' => 'XML',
      'description' => 'Export data in XML file format.',
    ) + $info;
    return $info;
  }
  public function compile($page_id = NULL) {
    $data = $this
      ->getData()
      ->get();
    $xml = new \SimpleXMLElement('<data/>');
    $pages = $this
      ->getData()
      ->get();
    if ($page_id && array_key_exists($page_id, $pages)) {
      $pages = array(
        $pages[$page_id],
      );
    }
    foreach ($pages as $page_id => $data) {
      $page = $xml
        ->addChild('page');
      $page
        ->addAttribute('id', $page_id);
      foreach ($data as $id => $data_set) {
        $set = $page
          ->addChild('record');
        $set
          ->addAttribute('id', $id);
        foreach ($data_set as $key => $value) {

          // make sure the key is in good format
          $key = preg_replace('/[^a-z0-9_-]/', '_', strtolower($key));

          // Wrap cdata as needed
          if (strstr($value, '<') || strstr($value, '&')) {
            $value = '<![CDATA[' . $value . ']]>';
          }
          $set
            ->addChild($key, $value);
        }
      }
    }
    $this->output = $xml
      ->asXML();
    $this->output = str_replace('&lt;![CDATA[', '<![CDATA[', $this->output);
    $this->output = str_replace(']]&gt;</', ']]></', $this->output);
  }

}

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::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::getFilename public function Get the filename Overrides ExporterInterface::getFilename
Exporter::getHeader public function Return an array containing the header row values for 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 Save as a file to the server Overrides ExporterInterface::save 1
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. 1
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 4
XMLExporter::$extension protected property
XMLExporter::compile public function Build $this->output in prep for export/save Overrides Exporter::compile
XMLExporter::getInfo public function Return info about this class Overrides Exporter::getInfo