RainTPL:
Es el motor de plantillas de FacturaScripts. Pero es una versión modificada para seguir el mismo orden de prioridad que los plugins. Por defecto busca el archivo html en el directorio del último plugin activado (el que tiene más prioridad). Si no lo encuentra, sigue con el siguiente plugin, y si no encuentra nada busca en la carpeta view de FacturaScripts o muestra un error.
Lo que debes saber de RainTPL es que es un motor de plantillas muy simple. Dispone de apenas 6 etiquetas: {include}, {if}, {loop}, {function}, {$variable} y {#constante#}. Más que suficiente para darle dinamismo a tu vista HTML.
¿Qué es $fsc?
$fsc es el controlador de FacturaScripts que se esté ejecutando. Lo tienes disponible en esa variable y puedes acceder a todas sus variables y funciones públicas.
{include}
Permite cargar un archivo .html indicando su nombre:
{include="header"}
Carga y procesa el archivo header.html de la carpeta view.
{if}
Comprueba la condición y ejecuta un trozo de código u otro:
{if="$fsc->empresa->nombre=='test'"}TEST{/if}
Si el nombre de la empresa es test, escribe TEST en el html.
Otras formas de {if}
{if="$fsc->empresa->nombre=='test'"}
TEST
{else}
NO TEST
{/if}
{if="$fsc->empresa->nombre=='test'"}
TEST
{elseif="$fsc->empresa->nombrecorto=='test'"}
TEST
{else}
NO TEST
{/if}
Cuidado con el =
Recuerda que para comparar si una variable es igual a otra, se usa un doble igual
==. Si utilizas solamente un = no estás comparando, sino asignando.
{loop}
Permite hacer un bucle sobre un array, además proporciona las siguientes variables:
- $value1: contiene el valor del elemento.
- $key1: la clave de ese valor en el array. Por defecto empieza por 0 y se suma uno en cada iteración.
- $counter1: un contador de resultados. Contiene el nº del resultado actual. Empieza en 0.
{loop="$fsc->resultados"}TU CÓDIGO{/loop}
Imaginemos que $fsc->resultados contiene array('pera','manzana'). Al ejecutarse tendremos estos datos:
- Primera iteración: $value1 = 'pera', $key1 = 0 y $counter = 0.
- Segunda iteración: $value1 = 'manzana', $key1 = 1 y $counter = 1.
{else}
Podemos ejecutar algo si no hay resultados en un bucle (por ejemplo escribir NADA) con la siguiente sintaxis:
{loop="$fsc->resultados"}TU CÓDIGO{else}NADA{/loop}
{loop} dentro de otro {loop}
Podemos tener un bucle dentro de otro, pero hay que tener en cuenta que en el segundo las variables serán $value2, $key2 y $counter2. Aunque $value funciona, es mejor que uses $value1 o $value2 para evitar confusiones.
{function}
Puedes ejecutar una función simplemente llamándola:
{function="tu_funcion()"}
{$variable}
Puedes mostrar el contenido de una variable simplemente poniéndola entre llaves
{$fsc->empresa->nombre}
Muestra el nombre de la empresa.
{#constante#}
Puedes mostrar el contenido de una constante con esta sintaxis:
{#FS_DB_NAME#}
Muestra el nombre de la base de datos.
Recomendaciones:
La vista es lo último que se ejecuta. No traslades todo a esta etapa, es mejor que hagas lo que tengas que hacer en el controlador, en la función private_core(), guardes los resultados en una variable de la clase y en la vista los muestres. Te será más sencillo solucionar errores.
Consulta la base de datos, guarda los resultados en una variable y muéstrala en la vista.
Todos los pasos necesarios para publicar y subir actualizaciones.