%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/components/rendering/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/components/rendering/LayoutRenderer.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2017 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\components\rendering; use Yii; /** * A LayoutRenderer subclass can be used to render layout based views by setting the $viewPath and $layout properties. * * The $viewPath defines the path where the target view file resides. * For a viewable with the viewName 'myView.php' the renderer will render the view: * * '<viewPath>/myView.php' * * where viewPath can also be provided as a Yii alias. * * The rendered view will be embeded into the given $layout which should point to the layout file * and can also be provided as a Yii alias e.g: * * '@myModule/views/layouts/myLayout.php' * * @author buddha * @since 1.2 */ class LayoutRenderer extends ViewPathRenderer { /** * @var string layout file path */ public $layout; /** * If a $layout is given the result will embed the rendered viewFile into the * given $layout. * * @param Viewable $viewable * @param array $params * @return string */ public function render(Viewable $viewable, $params = []) { $viewParams = $viewable->getViewParams($params); // Render the viewFile if (!isset($viewParams['content'])) { $viewParams['content'] = parent::renderView($viewable, $viewParams); } // Embed content in layout if valid layout is given. $layout = $this->getLayout($viewable); if ($layout) { return Yii::$app->getView()->renderFile($layout, $viewParams, $viewable); } else { return $viewParams['content']; } } /** * Returns the layout file path. * Subclasses may use the $viewable to determine the layout path. * * @param Viewable $viewable * @return string */ protected function getLayout(Viewable $viewable) { return $this->layout; } }