Pasar las variables globales a todos los includes de twig.
Actualmente las variables como fsc, i18n, template, etc que se usan en las plantillas twig se mandan a la plantilla principal por separado, que problema tiene esto. Que al incluir otra plantilla dentro de la padre las hijas por defecto no pueden acceder a dichas variables, se deben pasar manualmente a las hijas también, el problema es que todas las variables pricipales vienen sueltas y hat que agruparlas para poder enviarlas a las plantillas incluidas, un poco follón y repetitivo.
Solución En el archivo Core/App/AppController en la función renderHtml enviar además de las variables sueltas como hasta ahora todas juntas en otro parámetro como "tempVars".
$templateVars = [
'appSettings' => ToolBox::appSettings(),
'assetManager' => new AssetManager(),
'controllerName' => $controllerName,
'debugBarRender' => $this->debugBar(),
'fsc' => $this->controller,
'menuManager' => $this->menuManager,
'template' => $template
];
$templateVars['tempVars'] = $templateVars;
De este modo al hacer include de una plantilla twig sobre otra podrémos ir pasandole las variables.
{% include['ruta de mi plantilla twig'] with tempVars %}
Esto es una sugerencia a debatir. Está abierta a comentarios, votación y debate en la reunión semanal. Si se aprueba pasará a estado pendiente.
|
08-06-2023 10:40:17 daniel89fg_739 Está tarea ya no es necesaria, con la versión 3 de twig ya lo hace por defecto. |