Plantillas en Yii Framework

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 &copy; <?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.
plantillas en yii framework twitter bootstrap 3

Si cambiamos al método pruebas, aparece con la plantilla que se le ha asignado.
plantillas en yii framework por defecto

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post