コード例 #1
0
ファイル: Widget.php プロジェクト: zendmaniacs/zly-templater
 /**
  * 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);
 }
コード例 #2
0
ファイル: LayoutTest.php プロジェクト: hjr3/zf2
 /**
  * @return void
  */
 public function testLayoutPathAccessorsWork()
 {
     $layout = new Zend_Layout();
     $layout->setLayoutPath(dirname(__FILE__));
     $this->assertEquals(dirname(__FILE__), $layout->getLayoutPath());
 }