Mam kontroler, który chciałem zmodyfikować.

1. Chcę do kontrolera przesłać dane metodą GET, tak aby zmodyfikować dane w tablicy $code_params. Jestem wstanie poprawnie przesłać dane, do demoAction, ale nie wiem w jaki sposób zmodyfikować $code_params
2. Wywołanie akcji download działa poprawnie. Zastanawiam się w jaki sposób zmodyfikować kontroler, aby pliki zapisywały się na serwer do późniejszego wykorzystania.

Z góry dzięki za wskazówki

  1. <?php
  2. class TestController extends Zend_Controller_Action
  3. {
  4. public $code_params = array('text' => 'http://www.google.com',
  5. 'backgroundColor' => '#FFFFFF',
  6. 'foreColor' => '#000000',
  7. 'padding' => 4, //array(10,5,10,5),
  8. 'moduleSize' => 8);
  9.  
  10.  
  11. public function demoAction ()
  12. {
  13. $this->_helper->layout()->disableLayout();
  14. }
  15.  
  16. public function embeddedImageAction ()
  17. {
  18. $this->_helper->layout()->disableLayout();
  19. $this->_helper->viewRenderer->setNoRender(true);
  20.  
  21. $renderer_params = array('imageType' => 'png');
  22. Zend_Matrixcode::render('qrcode', $this->code_params, 'image', $renderer_params);
  23. }
  24.  
  25. public function embeddedSvgAction ()
  26. {
  27. $this->_helper->layout()->disableLayout();
  28. $this->_helper->viewRenderer->setNoRender(true);
  29.  
  30. Zend_Matrixcode::render('qrcode', $this->code_params, 'svg');
  31. }
  32.  
  33. public function downloadAction ()
  34. {
  35. $type = $extension = $this->getRequest()->getParam('type', 'image');
  36. $this->_helper->layout()->disableLayout();
  37. $this->_helper->viewRenderer->setNoRender(true);
  38.  
  39. if ($type == 'image') {
  40. $renderer_params['imageType'] = 'png';
  41. $extension = 'png';
  42. } else if ($type == 'pdf') {
  43. $renderer_params['footnote'] = 'QR code demo';
  44. }
  45. $renderer_params['sendResult'] = array('Content-Disposition: attachment;filename="qrcode-demo.' . $extension . '"');
  46. Zend_Matrixcode::render('qrcode', $this->code_params, $type, $renderer_params);
  47. }
  48.  
  49. public function saveImageAction ()
  50. {
  51. $this->_helper->layout()->disableLayout();
  52. $this->_helper->viewRenderer->setNoRender(true);
  53.  
  54. $renderer_params = array('imageType' => 'png', 'sendResult' => false);
  55.  
  56. $res = Zend_Matrixcode::render('qrcode', $this->code_params, 'image', $renderer_params);
  57. imagepng($res, realpath(APPLICATION_PATH . '/../public/tmp') . DIRECTORY_SEPARATOR . 'qrcode_test.png');
  58. }
  59. }