Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]SwitchContext
Forum PHP.pl > Forum > PHP > Frameworki
PanGuzol
Witam,

Chcę aby wszystkie akcje we wszystkich kontrolerach były wyświetlane w formacie json.
SwitchContext działa bez problemowo ale muszę definiować każdą akcję z osobna w kazdym kontrolerze w init().

Próbowałem napisać plugin ale nie za bardzo chce on działać.

  1. <?php
  2.  
  3.  
  4. class My_Plugin_SetFormat extends Zend_Controller_Plugin_Abstract
  5. {
  6. //all responses will be in json format
  7. public function preDispatch(Zend_Controller_Request_Abstract $request)
  8. {
  9. $request->setParam('format', 'json');
  10. $contextSwitch = Zend_Controller_Action_HelperBroker::getStaticHelper('ContextSwitch');
  11.  
  12. $contextSwitch->clearContexts()
  13. ->clearActionContexts()
  14. ->setContext('json', array())->initContext();
  15. }
  16. }
irmidjusz
Z 2010 roku, ciekawe, czy coś się do dzisiaj zmieniło:
http://zend-framework-community.634137.n4....-td1751964.html
PanGuzol
Dzięki za odpowiedź, wciąż niemożna tego zrobić w pluginie ale udało się w action helperze.

  1. <?php
  2.  
  3.  
  4. class My_Helper_SetFormat extends Zend_Controller_Action_Helper_Abstract
  5. {
  6. //all responses will be in json format
  7. public function preDispatch()
  8. {
  9. $this->getRequest()->setParam('format', 'json');
  10. $contextSwitch = Zend_Controller_Action_HelperBroker::getStaticHelper('ContextSwitch');
  11. $contextSwitch->setActionController($this->getActionController());
  12. $contextSwitch->addActionContext($this->getRequest()->getActionName(), 'json')->initContext();
  13. }
  14. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.