You are here

class FrxXMLDoc in Forena Reports 7.3

Same name and namespace in other branches
  1. 7.4 docformats/FrxXMLDoc.inc \FrxXMLDoc

@file FrxHtmlDoc Straight XML document with no wrapping theme. @author davidmetzler

Hierarchy

Expanded class hierarchy of FrxXMLDoc

1 string reference to 'FrxXMLDoc'
forena_forena_document_types in ./forena.module
Self register document formats with Forena

File

docformats/FrxXMLDoc.inc, line 8
FrxHtmlDoc Straight XML document with no wrapping theme. @author davidmetzler

View source
class FrxXMLDoc extends FrxDocument {
  public $root_tag = 'div';
  public $root_attributes = array();
  public function __construct() {
    $this->content_type = 'application/xml';
    $skin = Frx::Data()
      ->getContext('skin');
    if (isset($skin['FrxXMLDoc']['rootElementName'])) {
      $this->root_tag = $skin['FrxXMLDoc']['rootElementName'];
    }
    if (isset($skin['FrxXMLDoc']['rootElementAttributes'])) {
      if (is_array($skin['FrxXMLDoc']['rootElementAttributes'])) {
        $this->root_attributes = $skin['FrxXMLDoc']['rootElementAttributes'];
      }
    }
  }
  public function render($r, $format, $options = array()) {
    $body = $this
      ->check_markup($r->html);
    $output = '<?xml version="1.0"?>' . "\n";
    $opening_tag = $this
      ->_build_opening_root_tag_contents();
    $ending_tag = $this->root_tag;
    $output = '<?xml version="1.0"?>' . "\n";
    $output .= "<{$opening_tag}>\n  {$body}\n</{$ending_tag}>";
    return $output;
  }
  public function output($output) {
    header('Content-Type: ' . $this->content_type);
    header('Cache-Control:');
    header('Pragma:');
    header('Cache-Control: must-revalidate');
    print $output;
    return TRUE;
  }
  private function _build_opening_root_tag_contents() {
    $tag_contents = $this->root_tag;
    if (isset($this->root_attributes) && is_array($this->root_attributes)) {
      foreach ($this->root_attributes as $attr_key => $attr_val) {
        if (!empty($attr_key) && !empty($attr_val)) {
          $attr_val = addslashes($attr_val);
          $tag_contents .= " " . $attr_key . "=" . "'{$attr_val}'";
        }
      }
    }
    return $tag_contents;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FrxDocument::$charset public property
FrxDocument::$content_type public property
FrxDocument::$format public property
FrxDocument::check_markup public function Wrapper function for check output to default the right type.
FrxDocument::convertCharset public function
FrxDocument::loadCSSFiles public function
FrxXMLDoc::$root_attributes public property
FrxXMLDoc::$root_tag public property
FrxXMLDoc::output public function Overrides FrxDocument::output
FrxXMLDoc::render public function Overrides FrxDocument::render
FrxXMLDoc::_build_opening_root_tag_contents private function
FrxXMLDoc::__construct public function