Por favor, consulte la nueva documentación desde la guía de programación
mi_controlador.html (la vista)
Por defecto se usa el mismo nombre para el archivo de html que para el controlador, pero lo puedes cambiar en cualquier momento en la propiedad template del controlador. Este código HTML se procesa previamente con nuestro motor de plantillas, que permite añadir bucles, condicionales, etc...
Ejemplo de código:
{include="header"}
<h1>Tu HTML aquí</h1>
{include="footer"}
Los archivos header.html y footer.html contienen el código html de la parte superior e inferior de FacturaScripts, es decir, el menú principal y los principales objetos de la interfaz. También dispones de los archivos header2.html y footer2.html si solamente quieres cargar el css necesario, pero no el menú superior y la parte de abajo.
RainTPL
FacturaScripts utiliza una versión personalizada de rainTPL. Este motor de plantillas es extremadamente rápido y simple. Dispone de apenas 6 etiquetas: {include}, {if}, {loop}, {function}, {$variable} y {#constante#}.
https://www.youtube.com/watch?v=9_V0ez8_iSM
¿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.
También puedes crear variables directamente en la vista:
<!--{$mivar="1234"}-->
Y puedes hacer que almacenen el resultado que te devuelve una función del controlador:
<!--{$mivar=$fsc->mi_funcion()}-->
{#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.