Las plantillas en Yii Framework así como en otros frameworks, nos permiten definir una pagina maestra, común a todas las páginas, que tenga elementos que necesitan todas las paginas por ejemplo un encabezado, los ficheros css y js, el pie de página, etc. En ella se “imprimen” las vistas de nuestra aplicación.
Las plantillas se crean en el directorio protected/views/layouts/
La plantilla por defecto utilizada por Yii está definida en el fichero protected/components/Controller.php y se puede cambiar sin mayor problema.
Veamos como puede estar compuesta una plantilla:
protected/views/layouts/plantilla.php
<!DOCTYPE html>
<html xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="es" />
<title><?php echo CHtml::encode($this->pageTitle); ?></title>
<!--jQuery 2.1-->
<script src="<?php echo Yii::app()->request->baseUrl;?> /js/jquery.min.js"></script>
<!--Twitter Bootstrap 3-->
<link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl; ?> /bootstrap/css/bootstrap.yeti.min.css">
<script src="<?php echo Yii::app()->request->baseUrl; ?>
/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container" id="page">
<nav class="navbar navbar-default" role="navigation">
<!--Menú de navegación-->
</nav>
<?php
//Cargamos el contenido o vista
echo $content;
?>
<div class="clear"></div>
<div id="footer" class="alert alert-info">
Copyright © <?php echo date('Y'); ?> by My Company.
All Rights Reserved.
<?php echo Yii::powered(); ?>
</div>
</div>
</body>
</html>
Podemos elegir la plantilla que va a utilizar un controlador o sus métodos de la siguiente manera:
<?php
//Controlador
class HolaMundoController extends Controller{
//Indicamos que este controlador utilizará la siguiente plantilla
public $layout="//layouts/plantilla";
//Método action
public function actionIndex(){
$hola="Hola mundo con Yii Framework!!! Soy Victor Robles";
//Renderizamos la vista llamada index y le pasamos el parametro hola
$this->render('index',array(
"hola"=>$hola
));
}
public function actionPruebas(){
//Le decimos que este método va a utilizar la plantilla main
$this->layout="//layouts/main";
$bruce = "Plantillas en Yii Framework Victor Robles";
$this->render('city',array(
"hola"=>$bruce
));
}
}
?>
Ahora si vamos al controlador holamundo, nos aparece la plantilla que le hemos asignado.

Si cambiamos al método pruebas, aparece con la plantilla que se le ha asignado.














