예제 #1
0
 function renderLayout($content_for_layout, $layout = null)
 {
     $layout_fn = $this->_getLayoutFileName($layout);
     $data_for_layout = array_merge($this->viewVars, array('content_for_layout' => $content_for_layout));
     if (empty($this->loaded) && !empty($this->helpers)) {
         $loadHelpers = true;
     } else {
         $loadHelpers = false;
         $data_for_layout = array_merge($data_for_layout, $this->loaded);
     }
     if (substr($layout_fn, -3) === 'ctp' || substr($layout_fn, -5) === 'thtml') {
         $this->output = MyView::_render($layout_fn, $data_for_layout, $loadHelpers, true);
     } else {
         $this->output = $this->_render($layout_fn, $data_for_layout, $loadHelpers);
     }
     //		$out = $this->_render($layout_fn, $data_for_layout, $loadHelpers);
     if ($this->output === false) {
         $this->output = $this->_render($layout_fn, $data_for_layout);
         trigger_error(sprintf(__("Error in layout %s, got: <blockquote>%s</blockquote>", true), $layout_fn, $this->output), E_USER_ERROR);
         return false;
     }
     /*		if (!empty($this->loaded)) {
     			$helpers = array_keys($this->loaded);
     			foreach ($helpers as $helperName) {
     				$helper =& $this->loaded[$helperName];
     				if (is_object($helper)) {
     					if (is_subclass_of($helper, 'Helper') || is_subclass_of($helper, 'helper')) {
     						$helper->afterLayout();
     					}
     				}
     			}
     		}		*/
     return $this->output;
 }