cargar siempre un archivo JS

Retomo este tema, el hilo original lo inicié en el foro equivocado, así que perdonen la duplicidad…

Consulto lo mismo que en (http://foro.comunidad.siu.edu.ar/index.php?topic=18796.msg82752).
La consulta es para encontrar la mejor manera de personalizar G3W3 de manera que SIEMPRE que se cargue (no importa qué operación sea) incluya un archivo JS específico que reciba data extra de un controlador también personalizado.
Lo anterior yo lo resolvería personalizando src/pers/xxxx/operaciones/_comun/templates/res.twig donde agregaría un poco de código JS entre unas tag el tema es el controlador php… acá por lo que veo si o si debo editar el controlador primario (src/siu/extension_kernel/controlador_g3w2.php). ¿o hay otra manera?

Hola Diego, tengo una alternativa:

  1. Agregar los valores como variables globales de Twig, en la función load_template de vendor/siu/chulupi-framework/src/SIU/Chulupi/kernel.php.

$env->addGlobal('variable_uno', "PHP");
$env->addGlobal('variable_dos', " is ");
$env->addGlobal('variable_tres', "great!!!");

Esto no es personalización es si, pero es la única forma que veo de pasar un valor desde un PHP a un JS de manera global.

  1. Personalizar src/siu/operaciones/_comun/templates/res.twig, seria crear el archivo src/pers/[nombre-pers]/operaciones/_comun/templates/res.twig. Luego cargar las variables globales junto al JS:

........................
{% set js_prueba = url_recursos ~ 'rs.php/js/prueba.js' %}
........................
        <script type='text/javascript'>
            var variable_uno = "{{ variable_uno }}";
            var variable_dos = "{{ variable_dos }}";
            var variable_tres = "{{ variable_tres }}";
        </script>
	<script type='text/javascript' src='{{ js_prueba }}' charset="{{encoding}}"></script>
........................

  1. Crear el archivo src/pers/[nombre-pers]/www/js/prueba.js, te dejo un ejemplo de como utilizar las variables:

$( document ).ready(function() {
    alert(variable_uno + variable_dos + variable_tres);
});

saludos.

Gracias por el aporte! Genial inicio de año!