/** * Switch viewRenderer responseSegment to * segment received from request */ public function preDispatch() { /** * Custom action views placed in themes */ $viewRenderer = $this->getBroker()->load('viewRenderer'); $module = $this->getRequest()->getModuleName(); $options = $this->getOptions(); $viewPath = realpath($this->_layout->getLayoutPath() . '/../' . $options['view']['directory'] . '/' . $module . '/scripts/'); $existingPaths = array(); foreach ($this->_layout->getView()->resolver()->getPaths() as $path) { $existingPaths[] = $path; } if ($viewPath && !in_array($viewPath, $existingPaths)) { $this->_layout->getView()->resolver()->addPath($viewPath); } /** * Set widget markers into the new form parameters */ $widgetId = $this->getRequest()->getParam($this->_widgetIdName); if ($widgetId !== null) { $formHelper = $this->_layout->getView()->getBroker()->load('form'); if ($formHelper instanceof \Zly\View\Helper\Form) { $formHelper->setMarker($this->_widgetPostMarker, $widgetId); } } /** * Check post parameters */ $postFormMarker = $this->getRequest()->getParam($this->_widgetPostMarker); if ($this->getRequest()->isPost()) { if ($postFormMarker !== null && $widgetId === null) { //id not widget request and post marker found $_SERVER['REQUEST_METHOD'] = 'GET'; $this->_POST = $_POST; } elseif ($widgetId !== $postFormMarker) { //if post marker NOT of current widget request $_SERVER['REQUEST_METHOD'] = 'GET'; $this->_POST = $_POST; } } if ($postFormMarker !== null && $widgetId == $postFormMarker && !empty($this->_POST)) { $_SERVER['REQUEST_METHOD'] = 'POST'; $_POST = $this->_POST; $this->_POST = null; } /** * Set view renderer segment of current widget */ $slot = $this->getRequest()->getParam($this->_marker, null); $viewRenderer->setResponseSegment($slot); }
/** * @return void */ public function testLayoutPathAccessorsWork() { $layout = new Zend_Layout(); $layout->setLayoutPath(dirname(__FILE__)); $this->assertEquals(dirname(__FILE__), $layout->getLayoutPath()); }