Buenos días, me comunico en esta oportunidad porque nos vimos en la necesidad de personalizar el archivo selector_colegios.js que se encuentra dentro de la carpeta “www/js/_comun/selector_colegios”. Utilizamos la función " vinculo_js_por_personalizacion(“/_comun/selector_colegio/selector_colegio”,“pers_uncu”);“, pero tira el siguiente error " Uncaught exception ‘Exception’ with message ‘LOCALIZADOR: No existe el recurso solicitado. Nombre: ‘operaciones/js/_comun/selector_colegio/selector_colegio.js’’ in /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/localizador.php:217” evidentemente no arma la ruta correctamente y no se en que nos estaremos equivocando.
Buen día Fernando:
Lo que estamos haciendo es que si al buscar colegios no encuentra el colegio porque no esta cargado que es lo que normalmente pasa, hay muchos colegios de mendoza que no están, se rellene un campo y se envíe un email,al equipo central para que este lo agregue para la siguiente preinscripción. Básicamente agregamos un par de funciones al archivo js:
function agregar_colegio()
{
// alert ($(‘input[id=agregar_colegio-otro]’).val());
agregar_enviar_colegio($(‘input[id=agregar_colegio-otro]’).val());
cerrar_popup();
}
function agregar_enviar_colegio(_colegio)
{
$.ajax({
url: info.url_agregar_enviar_colegio,
dataType: ‘json’,
data: { colegio: _colegio},
type: ‘post’,
async: true,
success: function(data) {
//console.log(data);
alert("Tu petición de agregar colegio se realizó correctamente. En breve lo analizaremos.");
//$('#'+info.retorno_descr).val(data.colegio_descr);
}
});
}
Luego en el controlador se realizaría lo siguiente
//--------------------------------------------------------------------------
//---- Agregar Colegio para proxima preinscripcion y mandar mail ----------------------------------
//--------------------------------------------------------------------------
function accion__agregar_enviar_colegio()
{
$colegio=$this->get_param(‘colegio’, ‘post’);
$datos_propios[‘nombre’] = $colegio;
$alta = abm::alta(‘uncu_sga_coleg_para_agregar’,$datos_propios);
/**
*Envío mail a equipo central para que se agregue la escuela en la próxima preinscripción
*/
$envio_mail= $this->enviar_mail_agregar_colegio($colegio);
if ($envio_mail) {
$this->render_raw_json(array(‘colegio_descr’ => $colegio));
}
Buenas tardes, el método vinculo_js_por_personalizacion genera un vínculo a un archivo JS dentro de la carpeta www/js
si lo usan así
vinculo_js_por_personalizacion(“/_comun/selector_colegio/selector_colegio”,“pers_uncu”)
están pasando el path del archivo además del nombre del archivo
Prueben moviendo el archivo desde www/js/_comun/selector_colegio hasta www/js y usen el método sólo con el nombre y la personalización como parámetros
vinculo_js_por_personalizacion(“selector_colegio”,“pres_uncu”);
Esperamos el comentario de sus resultados.
Saludos.
Buenas, hicimos lo que nos mencionan, pero sigue sin funcionar:
Uncaught exception ‘Exception’ with message ‘LOCALIZADOR: No existe el recurso solicitado. Nombre: ‘operaciones/./__ignored__js/selector_colegio.js’’ in /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/localizador.php:217\nStack trace:\n#0 /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/recursos.php(24): kernel\nucleo\localizador->path_recurso(‘operaciones/./…', false)\n#1 /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/recursos.php(96): kernel\nucleo\recursos::get_full_path('operaciones/./…’)\n#2 /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/acceso_recurso.php(32): kernel\nucleo\recursos::get_pl_js(‘.’, ‘__ignored__js’, ‘selector_colegi…’)\n#3 /opt/proyectos/preinscripcion36/src/siu/www/rs.php(8): kernel\nucleo\acceso_recurso::procesar()\n#4 {main}\n thrown in /opt/proyectos/preinscripcion36/src/siu/lib/kernel/nucleo/localizador.php on line 217, referer: http://172.22.17777/preinscripcion/313/censo/datos_estudios
Hola, ¿Podrían compartirnos parte del código? Nos gustaría ver la función get_js_files() del archivo pagelet_datos_estudios.php que es desde donde se agregan los JS.
debería verse similar al esto
function get_js_files()
{
$files = parent::get_js_files();
$files = kernel::vinculador()->vinculo_recurso(“js/jqueryui.extra.js”);
$files = kernel::vinculador()->vinculo_recurso(“js/plugin_autosave.js”);
$files = kernel::vinculador()->vinculo_recurso(“js/jTPS.js”);
//$files = kernel::vinculador()->vinculo_recurso(“js/_comun/selector_colegio/selector_colegio.js”);
$files = kernel::vinculador()->vinculo_js_por_personalizacion(“selector_colegio”,“personalizacion”);
$files = kernel::vinculador()->vinculo_recurso(“js/_comun/selector_titulo_sec/selector_titulo_sec.js”);
return $files;
}
Buenos días, ya commiteamos la personalización, en la carpeta pers_uncu, hay varias mas pero para no crear conflictos subimos toda la carpeta. Dentro de esta carpeta hay una que se llama ‘scripts_bd_personalizada’, que son los que hay que correr para que funcione la personalización. El mensaje del commit es el siguiente
“UNCuyo - Personalizaciones de preinscripcion 3.6.0 a pedido de Jose Canteros en el foro en respuesta al Topic: Error al crear ruta para acceder a un recurso js” y el número de revisión es 14192.
Antes de probar hay que descomentar en el método:
function get_js_files()
{
$files = parent::get_js_files();
$files = kernel::vinculador()->vinculo_recurso(“js/plugin_autosave.js”);
$files = kernel::vinculador()->vinculo_recurso(“js/jTPS.js”);
$files = kernel::vinculador()->vinculo_recurso(“js/_comun/selector_colegio/selector_colegio.js”); //$files[] =kernel::vinculador()->vinculo_js_por_personalizacion(“selector_colegio”,“pers_uncu”);
$files = kernel::vinculador()->vinculo_recurso(“js/_comun/selector_titulo_sec/selector_titulo_sec.js”);
return $files;
}
ya que para poder seguir avanzando lo habiamos dejado en la carpeta original…
Estimados, descargamos, instalamos, actualizamos la base de datos y probamos su personalización.
No tuvimos ningún inconveniente y pudimos usar el script selector_colegio.js sólo descomentando la línea indicada.
Le sugerimos que lo vuelvan a probar en una nueva instalación desde cero.
Seguiremos en contacto por este medio y de ser necesario por GDS.