forena-8.x-1.x-dev/src/FrxPlugin/Renderer/FrxXML.php

src/FrxPlugin/Renderer/FrxXML.php
<?php
/**
 * @file FrxXML
 * Just render the XML source data.
 * Look at the FrxRender class to see a full list of
 * properties that can be used here.
 */
namespace Drupal\forena\FrxPlugin\Renderer;
use Drupal\forena\Context\DataContext;
use Drupal\forena\FrxAPI;

/**
 * XML Data Renderer
 *
 * @FrxRenderer(id = "FrxXML")
 */
class FrxXML extends RendererBase {
  use FrxAPI; 
  public function render() {
    $output = '';
    $node = $this->reportNode;
    $options = $this->mergedAttributes();
    if (isset($options['context'])) {
      $xml = $this->getDataContext($options['context']);
    }
    else {
      $xml = $this->currentDataContext();
    }
    if (is_array($xml)) $xml = DataContext::arrayToXml($xml);
    if ($xml && is_callable(array($xml, 'asXML')))  {
        $dom = dom_import_simplexml($xml);
        $dom->ownerDocument->formatOutput = TRUE;
        $dom->ownerDocument->preserveWhiteSpace = TRUE;
        $output = $dom->ownerDocument->saveXML($dom->ownerDocument->documentElement);
    }
    if ($this->report->format != 'xml') $output = '<pre>' . htmlspecialchars($output) . '</pre>';
    return $output;
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc