protected function readDTO($dto) { if (!$dto->hasResults()) { return $this->noresultsResponse(); } $handler = $this->RequestContext->getControls()->getControl('view_handler'); switch ($handler) { case 'xml': $this->Response->addHeader('Content-Type', 'application/xml; charset="' . $this->charset . '"'); $s = '<?xml version="1.0"?> <NodeFindAll> <TotalRecords>' . $dto->getTotalRecords() . '</TotalRecords> <Nodes>'; foreach ($dto->getResults() as $result) { $s .= $this->xmlify(ArrayUtils::flattenObjectsUsingKeys($this->NodeMapper->populateNodeCheaters($result)->toArray(), $this->getEncodeKeys()), 'Node'); } $s .= ' </Nodes> </NodeFindAll>'; return $s; case 'json': default: $this->Response->addHeader('Content-Type', 'application/json; charset="' . $this->charset . '"'); $s = array('TotalRecords' => $dto->getTotalRecords(), 'Nodes' => array()); foreach ($dto->getResults() as $result) { $s['Nodes'][] = ArrayUtils::flattenObjectsUsingKeys($this->NodeMapper->populateNodeCheaters($result)->toArray(), $this->getEncodeKeys()); } return JSONUtils::encode($s); } }
public function xmlEncode() { $keys = $this->getEncodeKeys(); return $this->xmlify(ArrayUtils::flattenObjectsUsingKeys($this->locals, $keys), $this->getParameter('rootNodeName')); }