Plantillas¶
Resumen¶
Esta página explica el sistema de plantillas de las apps: cómo acceder a los parámetros del controlador, imprimir valores de forma segura frente a XSS e incluir otras plantillas, CSS, JavaScript e imágenes. Está dirigida a quienes desarrollan apps.
Fuente: documentación de Nextcloud, «developer_manual/basics/front-end/templates», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
APS Conecta Gestión ofrece su propio sistema de plantillas, que básicamente es PHP plano con algunas funciones adicionales y variables predefinidas. Todos los parámetros que se han pasado desde el controlador están disponibles en un array llamado $_[], p. ej.:
array('key' => 'something')
se puede acceder mediante:
$_['key']
Nota
Para prevenir XSS, las siguientes funciones de PHP para imprimir están prohibidas: echo, print() y <?=. En su lugar, se usa la función p() para imprimir los valores. Si se necesita imprimir sin escapar, hay que revisar dos veces que no haya XSS y usar: print_unescaped().
Los valores se imprimen con la función p(), y el HTML se imprime con print_unescaped().
templates/main.php
<?php foreach($_['entries'] as $entry){ ?>
<p><?php p($entry); ?></p>
<?php
}
Incluir plantillas¶
Las plantillas también pueden incluir otras plantillas mediante el método $this->inc('templateName').
<?php print_unescaped($this->inc('sub.inc')); ?>
Las variables de la plantilla padre también estarán disponibles en las plantillas incluidas, pero, si se necesita, también se le pueden pasar variables nuevas mediante el segundo parámetro opcional de $this->inc, en forma de array.
templates/sub.inc.php
<div>I am included, but I can still access the parents variables!</div>
<?php p($_['name']); ?>
<?php print_unescaped($this->inc('other_template', array('variable' => 'value'))); ?>
Incluir CSS y JavaScript¶
Advertencia
Esto está obsoleto; en su lugar, hay que usar addScript y addStyle en el controlador.
Consultar JavaScript para más información.
Para incluir CSS o JavaScript se usan las funciones style y script:
<?php
script('myapp', 'script'); // add js/script.js
style('myapp', 'style'); // add css/style.css
Incluir imágenes¶
Para generar enlaces a imágenes se usa la función image_path:
<img src="<?php print_unescaped(image_path('myapp', 'app.png')); ?>" />