summaryrefslogtreecommitdiffstats
path: root/codebase/mixed_connector.php
diff options
context:
space:
mode:
authorEgor <egor.26.93@gmail.com>2015-06-25 16:35:37 +0300
committerEgor <egor.26.93@gmail.com>2015-06-25 16:35:37 +0300
commitd66c1ce799ea4d773699e73f934db27e764d3f17 (patch)
tree50efb9388acf2289dde44f8d39f5ee5febd7a03f /codebase/mixed_connector.php
parentc5b18861823757d2632a06f13edb2ed639cf4ecd (diff)
downloadconnector-php-d66c1ce799ea4d773699e73f934db27e764d3f17.zip
connector-php-d66c1ce799ea4d773699e73f934db27e764d3f17.tar.gz
connector-php-d66c1ce799ea4d773699e73f934db27e764d3f17.tar.bz2
Added rendering data in xml for mix connector.
Diffstat (limited to 'codebase/mixed_connector.php')
-rw-r--r--codebase/mixed_connector.php63
1 files changed, 47 insertions, 16 deletions
diff --git a/codebase/mixed_connector.php b/codebase/mixed_connector.php
index 461d6ec..bbef8d4 100644
--- a/codebase/mixed_connector.php
+++ b/codebase/mixed_connector.php
@@ -7,22 +7,53 @@ require_once("base_connector.php");
class MixedConnector extends Connector {
- protected $connectors = array();
-
- public function add($name, $conn) {
- $this->connectors[$name] = $conn;
- }
-
- public function render() {
- $result = "{";
- $parts = array();
- foreach($this->connectors as $name => $conn) {
- $conn->asString(true);
- $parts[] = "\"".$name."\":".($conn->render())."\n";
- }
- $result .= implode(",\n", $parts)."}";
- echo $result;
- }
+ private $_data_type = null;
+
+ function __construct($dataType = "json") {
+ $this->_data_type = $dataType;
+ }
+
+ protected $attributes = array();
+ protected $connectors = array();
+
+ public function add($name, $conn) {
+ $this->connectors[$name] = $conn;
+ $conn->simple = true;
+ }
+
+ public function render() {
+ if($this->_data_type == "json")
+ $this->render_json();
+ else
+ $this->render_xml();
+ }
+
+ private function render_json() {
+ $result = "{";
+ $parts = array();
+ foreach($this->connectors as $name => $conn) {
+ $conn->asString(true);
+ $parts[] = "\"".$name."\":".($conn->render())."\n";
+ }
+ $result .= implode(",\n", $parts)."}";
+ echo $result;
+ }
+
+ private function render_xml() {
+ $result = "";
+ $parts = array();
+
+ foreach($this->connectors as $name => $conn) {
+ $conn->asString(true);
+ $parts[] = "<".$name.">".($conn->render())."</".$name.">\n";
+ }
+ $result .= implode("", $parts);
+ $this->output_as_xml($result);
+ }
+
+ protected function output_as_xml($res) {
+ echo "<?xml version='1.0' encoding='".$this->encoding."' ?>".$this->xml_start().$res.$this->xml_end();
+ }
}
?> \ No newline at end of file