Estructura include

La esctructura simphple permite insertar plantillas dentro de otras plantillas, similar a la estructura include de php. Con esta estructura se puede modularizar y reutilizar el código php.

Formato

Formato
<!-- INCLUDE nombre_archivo[, expresion1expresion2, ...] -->

nombre_archivo es una expresión que contine el nombre de la plantilla que queremos incluir. Esta expresión puede ser una variable, una cadena, etc. Si se incluye un archivo que no existe entonces devuelve un error y detiene la ejecución del programa.

Las demás expresiones expresion1, expresion2, ... sirven como argumentos que se usan en la plantilla inlcuida, como en una función. Esto permite parametrizar las plantillas y ser reutilizadas de una forma más efectiva. Para acceder a los argumentos de la plantilla se usa la variable especial $_sphp_.argX, donde X es la posición del argumento en la estructura include.

Carpeta raiz y árbol de directorios

Todas las plantillas que se quieren ejecutar deben estar dentro de una carpeta raiz, es decir, no se puede usar como plantilla un archivo fuera de este directorio. La carpeta raiz se define en el constructor de la clase Sphp_Template, usando la opción template_dir_path.

Ejemplos

Ejemplo 1: Incluir archivos

principal.html
<div>
    <div>Vamos a incluir el archivo $archivo.</div>
    <!-- INCLUDE $archivo -->
</div>
archivo_incluido.html
<div>
    Yo soy el archivo incluido, mi nombre es $archivo.
</div>
principal.php
<?php
    //Creamo una variable con el nombre del archivo incluido.
    $tpl->add_variable('archivo''archivo_incluido.html');

    $tpl->display_file('principal.html');
?>
Salida al ejecutar el código principal.php
<div>
    <div>Vamos a incluir el archivo archivo_incluido.html.</div>
    <div>
        Yo soy el archivo incluido, mi nombre es archivo_incluido.html.
    </div>
</div>

Ejemplo 2: Uso de argumentos en las plantillas

imagen.html
<img alt="$_sphp_.arg2" class="imagen" src="$_sphp_.arg1"/>
principal.html
<div>
    <!-- INCLUDE 'imagen.html'"url-imagen1.jpg""alt-imagen1" -->
</div>
<div>
    <!-- INCLUDE 'imagen.html'$url_imagen2$alt_imagen2 -->
</div>
principal.php
<?php
    $tpl->add_variable('url_imagen2''url-imagen2.jpg');
    $tpl->add_variable('alt_imagen2''alt-imagen2');
    $tpl->display_file('principal.html');
?>
Resultado al ejecutar el archivo principal.php
<div>
    <img alt="alt-imagen1" class="imagen" src="url-imagen1.jpg"/>
</div>
<div>
    <img alt="alt-imagen2" class="imagen" src="url-imagen2.jpg"/>
</div>

Ejemplo 3: Directorio raiz

Definimos como carpeta raiz la carpeta template
Carpeta raiz de ejemplo
árbol de directorios
Acceso a los distintos archivos
<!-- INCLUDE 'test.html' -->
<!-- INCLUDE 'test/test2.html' -->
<!-- INCLUDE 'test/test3.html' -->
    
La ruta de los archivos que queremos incluir, 
siempre deben empezar en la carpeta raiz.

Historial

Versión Cambios
1.1.0 Se añadió los argumentos a la estructura include.

Comentarios

Añadir nuevo comentario