public static function parseLayout($vars = array(), $options = array()) { $options += array('headAndFooter' => true, 'generatedIn' => Configure::read()); $_this = self::getInstance(); $vars += Sl::getInstance()->view->viewVars; $vars += array('lang' => SlConfigure::read('I18n.lang')); if ($options['headAndFooter']) { $vars['head'] = Sl::uniqid(); $vars['footer'] = Sl::uniqid(); } $_this->layout->blocks = array('body' => self::$body); if ($options['generatedIn']) { $_this->layout->blocks['generatedIn'] = new GeneratedInParser(); } $_this->layout->vars = $vars; $stack = PhemeParser::$parseCallStack; PhemeParser::$parseCallStack = array(self::$_core); $skin = $_this->layout->parse($_this->layoutSkin); PhemeParser::$parseCallStack = $stack; if ($options['headAndFooter']) { $skin = r(array($vars['head'], $vars['footer']), array(Sl::getInstance()->view->element('head', $vars), Sl::getInstance()->view->element('footer')), $skin); } $_this->layout->blocks['body'] = null; $_this->layout->vars = array(); return $skin; }