2013-08-11 13:30:41 +02:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Json
|
|
|
|
* Builds a JSON string from $this->items and return it to browser.
|
|
|
|
*/
|
2016-09-10 20:41:11 +02:00
|
|
|
class JsonFormat extends FormatAbstract {
|
|
|
|
public function stringify(){
|
|
|
|
$items = $this->getItems();
|
2018-12-26 22:41:32 +01:00
|
|
|
$data = array();
|
|
|
|
|
|
|
|
foreach($items as $item) {
|
|
|
|
$data[] = $item->toArray();
|
|
|
|
}
|
|
|
|
|
|
|
|
$toReturn = json_encode($data, JSON_PRETTY_PRINT);
|
2016-11-07 20:49:44 +01:00
|
|
|
|
|
|
|
// Remove invalid non-UTF8 characters
|
|
|
|
ini_set('mbstring.substitute_character', 'none');
|
|
|
|
$toReturn = mb_convert_encoding($toReturn, $this->getCharset(), 'UTF-8');
|
|
|
|
return $toReturn;
|
2016-09-10 20:41:11 +02:00
|
|
|
}
|
2013-08-11 13:30:41 +02:00
|
|
|
|
2016-09-10 20:41:11 +02:00
|
|
|
public function display(){
|
|
|
|
$this
|
2016-11-07 20:49:44 +01:00
|
|
|
->setContentType('application/json; charset=' . $this->getCharset())
|
2016-09-10 20:41:11 +02:00
|
|
|
->callContentType();
|
2013-08-11 13:30:41 +02:00
|
|
|
|
2016-09-10 20:41:11 +02:00
|
|
|
return parent::display();
|
|
|
|
}
|
2016-02-19 17:15:06 +01:00
|
|
|
}
|