/**
  * Renders file and returns json-encoded response
  *
  * @param null $view
  * @param null $layout
  * @return string
  */
 public function render($view = null, $layout = null)
 {
     parent::render($view, $layout);
     $options = 0;
     if (version_compare(PHP_VERSION, '5.4.0', '>=') && Configure::read('debug')) {
         $options = JSON_PRETTY_PRINT;
     }
     return json_encode($this->dtResponse, $options);
 }
Beispiel #2
0
 /**
  * testRenderWithView method
  *
  * @return void
  */
 public function testRenderWithView()
 {
     App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)));
     $Request = new CakeRequest();
     $Response = new CakeResponse();
     $Controller = new Controller($Request, $Response);
     $Controller->name = $Controller->viewPath = 'Posts';
     $data = array('User' => array('username' => 'fake'), 'Item' => array(array('name' => 'item1'), array('name' => 'item2')));
     $Controller->set('user', $data);
     $View = new JsonView($Controller);
     $output = $View->render('index');
     $expected = json_encode(array('user' => 'fake', 'list' => array('item1', 'item2')));
     $this->assertIdentical($expected, $output);
     $this->assertIdentical('application/json', $Response->type());
 }
Beispiel #3
0
<?php

// inclue the various view classes
include 'views.php';
include 'actions.php';
// work out what format they want
$accept = explode(',', $_SERVER['HTTP_ACCEPT']);
if ($accept[0] == 'text/html') {
    $view = new HtmlView();
} elseif ($accept[0] == 'text/xml') {
    $view = new XmlView();
} else {
    $view = new JsonView();
}
// route the request (filter input!)
$action = $_GET['action'];
$library = new Actions();
// OBVIOUSLY you would filter input at this point
$data = $library->{$action}($_GET);
// output appropriately
$view->render($data);
Beispiel #4
0
<?php

require_once './ViewEngine.php';
require_once './JsonView.php';
require_once './HtmlView.php';
$json_view = new JsonView();
$json_view->render();
$html_view = new HtmlView();
$html_view->render();
 /**
  * testRenderWithView method
  *
  * @return void
  */
 public function testRenderWithView()
 {
     App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)));
     $Request = new CakeRequest(null, false);
     $Request->params['named'] = array('page' => 2);
     $Response = new CakeResponse();
     $Controller = new Controller($Request, $Response);
     $Controller->name = $Controller->viewPath = 'Posts';
     $data = array('User' => array('username' => 'fake'), 'Item' => array(array('name' => 'item1'), array('name' => 'item2')));
     $Controller->set('user', $data);
     $View = new JsonView($Controller);
     $View->helpers = array('Paginator');
     $output = $View->render('index');
     $expected = array('user' => 'fake', 'list' => array('item1', 'item2'), 'paging' => array('page' => 2));
     $this->assertSame(json_encode($expected), $output);
     $this->assertSame('application/json', $Response->type());
     $View->request->query = array('jsonCallback' => 'jfunc');
     $Controller->set('_jsonp', 'jsonCallback');
     $View = new JsonView($Controller);
     $View->helpers = array('Paginator');
     $output = $View->render('index');
     $expected['paging']['?']['jsonCallback'] = 'jfunc';
     $expected = 'jfunc(' . json_encode($expected) . ')';
     $this->assertSame($expected, $output);
     $this->assertSame('application/javascript', $Response->type());
 }
Beispiel #6
0
 /**
  * JsonViewTest::testRenderJSONBoolFalse()
  *
  * @return void
  */
 public function testRenderJSONBoolFalse()
 {
     $Request = new CakeRequest();
     $Response = new CakeResponse();
     $Controller = new Controller($Request, $Response);
     // encoding a false, ensure this doesn't trigger exception
     $data = false;
     $Controller->set($data);
     $Controller->set('_serialize', 'data');
     $View = new JsonView($Controller);
     $output = $View->render();
     $this->assertSame('null', $output);
 }
 /**
  * Renders file and returns json-encoded response
  *
  * @param null $view
  * @param null $layout
  * @return string
  */
 public function render($view = null, $layout = null)
 {
     parent::render($view, $layout);
     return json_encode($this->dtResponse);
 }