Exemplo n.º 1
0
 /**
  * Create JSON response
  *
  * Encodes and returns data to JSON. Content-Type header set to
  * 'application/json', and disables layouts and viewRenderer (if being
  * used).
  *
  * @param  mixed   $data
  * @param  boolean $keepLayouts
  * @param  boolean|array $keepLayouts
  * NOTE:   if boolean, establish $keepLayouts to true|false
  *         if array, admit params for Zend_Json::encode as enableJsonExprFinder=>true|false
  *         if $keepLayouts and parmas for Zend_Json::encode are required
  *         then, the array can contains a 'keepLayout'=>true|false
  *         that will not be passed to Zend_Json::encode method but will be passed
  *         to Zend_View_Helper_Json
  * @throws EvHttp_Controller_Action_Helper_Json
  * @return string
  */
 public function encodeJson($data, $keepLayouts = false)
 {
     /**
      * @see Zend_View_Helper_Json
      */
     require_once 'Zend/View/Helper/Json.php';
     $jsonHelper = new Zend_View_Helper_Json();
     $data = $jsonHelper->json($data, $keepLayouts);
     if (!$keepLayouts) {
         /**
          * @see EvHttp_Controller_Action_HelperBroker
          */
         require_once 'EvHttp/Controller/Action/HelperBroker.php';
         EvHttp_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true);
     }
     return $data;
 }
Exemplo n.º 2
0
 /**
  * Prepare data for autocompletion
  * 
  * @param  mixed   $data 
  * @param  boolean $keepLayouts 
  * @return string
  */
 public function prepareAutoCompletion($data, $keepLayouts = false)
 {
     if (!$data instanceof Zend_Dojo_Data) {
         require_once 'Zend/Dojo/Data.php';
         $items = array();
         foreach ($data as $key => $value) {
             $items[] = array('label' => $value, 'name' => $value);
         }
         $data = new Zend_Dojo_Data('name', $items);
     }
     if (!$keepLayouts) {
         require_once 'EvHttp/Controller/Action/HelperBroker.php';
         EvHttp_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true);
         require_once 'Zend/Layout.php';
         $layout = Zend_Layout::getMvcInstance();
         if ($layout instanceof Zend_Layout) {
             $layout->disableLayout();
         }
     }
     $response = EvHttp_Controller_Front::getInstance()->getResponse();
     $response->setHeader('Content-Type', 'application/json');
     return $data->toJson();
 }
Exemplo n.º 3
0
 /**
  * Encode data to JSON
  * 
  * @param  mixed $data 
  * @param  bool  $keepLayouts 
  * @throws EvHttp_Controller_Action_Exception
  * @return string
  */
 public function encodeJson($data, $keepLayouts = false)
 {
     if ($this->validateData($data)) {
         return EvHttp_Controller_Action_HelperBroker::getStaticHelper('Json')->encodeJson($data, $keepLayouts);
     }
     /**
      * @see EvHttp_Controller_Action_Exception
      */
     require_once 'EvHttp/Controller/Action/Exception.php';
     throw new EvHttp_Controller_Action_Exception('Invalid data passed for autocompletion');
 }
Exemplo n.º 4
0
 /**
  * Retrieve ViewRenderer
  *
  * @return EvHttp_Controller_Action_Helper_ViewRenderer Provides a fluent interface
  */
 protected function _getViewRenderer()
 {
     if (null === $this->_viewRenderer) {
         $this->_viewRenderer = EvHttp_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
     }
     return $this->_viewRenderer;
 }