SSI en Prontus

Los SSI (Server Side Includes) son directivas insertadas en páginas HTML que te permiten insertar contenido generado dinámicamente en el sitio. El funcionamiento es similar a lenguajes interpretados como PHP pero sin la carga que genera ejecutar un script de este tipo.

Publicado: Martes 25 de Septiembre de 2018 por David García
Última modificación: Miércoles 14 de Noviembre de 2018

Prontus permite el uso de SSI. Este uso es muy frecuente en el caso de las plantillas, como por ejemplo, al incluir trozos de código que es común entre dos o más plantillas, como en el caso de los header, footer, estructura de artículos, entre otros. 

Configuración de SSI en NGINX

Para poder usar instrucciones SSI en tus documentos, primero es necesario habilitarlas en el servidor. En el caso de NGINX debes editar el archivo de configuración de directivas: 

location / {
    ssi on;
    ...
}

Ver Configuración ngx_http_ssi_module

Configuración de SSI en Apache

Para permitir SSI en tu servidor, debes tener la siguiente directiva en el fichero httpd.conf , o en el fichero .htaccess:

Options class="lit">+Includes
Sintaxis

Las instrucciones se embeben dentro de comentarios HTML, de este modo si se desactiva el soporte de SSI, los usuarios no verán las instrucciones en la página. Ejemplo: 

<!--#instruccion parametro=valor parametro=valor -->
Include 

Esta instrucción es probablemente la más usada en los sitios Prontus, dado que se emplea para embeber los header, footer y demás módulos comunes dentro de artículos y plantillas. Se describe el uso en el artículo sobre inclusión de archivos en plantillas.

<!--# include virtual="/%%_prontus_id%%/site/edic/base/port/_m_header_interna.html" -->

En el caso anterior puedes ver como en la instrucción "include", la variable "virtual" es asignada con el valor "/%%_prontus_id%%/site/edic/base/port/_m_header.html" el cual es la ruta donde Prontus está generando el archivo que contiene el parcial del header del sitio en este caso. 

Al momento de que un usuario realice una petición al servidor web, este reemplaza la instrucción include por el contenido del archivo _m_header.html.

 Además de estas, cabe notar que el lenguaje permite usar estructuras de control básicas.

set y echo 

La instrucción "set" permite especificar el valor de una variable SSI. Es útil por ejemplo en una plantilla de portada para tener una variable con el nombre de esa portada.

<!--#set var="portada" value="inicio" -->

Los valores de las variables asignados con "set" pueden ser desplegados o impresos con la instrucción "echo". También se pueden visualizar los valores de una variable de ambiente HTTP.

<!--#echo var="portada" -->
condicionales IF, ELSE, ELIF

Las sentencias condicionales permiten mostrar u ocultar un contenido de acuerdo a una expresión a evaluar.


<!--#if expr="$DOCUMENT_NAME = /home.shtml/" -->
  <b>Inicio</b>
<!--#else -->
  <a href="/home.shtml">Inicio</a>
<!--#endif -->