¿Cómo utilizar unos scripts de JavaScript para todos los cursos?

¿Cómo utilizar unos scripts de JavaScript para todos los cursos?

de Mario Gayo -
Número de respuestas: 4

Hola, a ver si alguien me puede arrojar algo de luz:

Tenemos desarrollados unos cursos que hacen uso de pequeños scripts de JavaScript y jugando con los estilos CSS para mejorar la experiencia de usuario.

Que yo sepa existen dos estrategias:

  • Proporcionar esos archivos (*.js y *.css) con cada recurso que los use lo que genera el problema de las modificaciones. Un cambio en estos elementos supone la modificación de decenas de ficheros en cada curso. El tema de las hojas se puede hacer incorporándolas al tema utilizado, pero para los scripts no conozco un equivalente.
  • Otra opción es la utilización de una referencia externa. Es decir poner los ficheros en otro servidor (o en un espacio web del mismo servidor pero fuera de Moodle), de manera que podamos disponer de rutas absolutas utilizables desde los documentos HTML.

Con el sistema de archivos de las versiones anteriores a Moodle 2.0 esto era tremendamente simple porque se disponía de un espacio de almacenamiento común para todo el curso.

¿Existe alguna forma de que esos scripts puedan hacerse disponibles para todo el sitio en Moodle 2.3.1? 

O al menos para todo un curso. Esto ya simplificaría enormemente el problema, nada menos que entre uno y dos órdenes de magnitud.

Espero haberme explicado bien. Gracias.

Promedio de valoraciones: -
En respuesta a Mario Gayo

Re: ¿Cómo utilizar unos scripts de JavaScript para todos los cursos?

de David Hernández -

Hola Mario,

Según entiendo debieras hacer algo como esto...

1) En el tema de interés, crear la carpeta:

[moodle]/theme/MI_TEMA/javascript

2) Dentro de ella coloca la o las librerías necesarias (archivos .js).

3) En el "config.php" del tema en uso, coloca hasta abajo (supongo que son cuestiones de orden definidas en el tema "base") unas líneas como:

$THEME->javascripts = array();
$THEME->javascripts_footer = array();

Por ejemplo:

$THEME->javascripts_footer = array('libreria_uno', 'libreria_dos');

Nota que no debes incluir la extensión de los archivos (.js).

Mi impresión es que de esta manera lograrás lo que deseas.

Saludos

En respuesta a David Hernández

Re: ¿Cómo utilizar unos scripts de JavaScript para todos los cursos?

de Mario Gayo -

Muchas gracias David.

Por lo que me indicas, debo proceder con los ficheros JavaScript de manera similar a como ya hacía con las CSS. No pensé que se pudiera hacer de la misma forma.

Con esto además podría tener scripts distintos para distintos cursos, bastaría con adaptar el tema y permitir temas distintos.

Entiendo que cuando pones 'libreria_uno', 'libreria_dos' te refieres a distintos archivos *.js que cada uno puede contener varias funciones de JavaScript ¿cierto? o ¿debo separarlas en archivos independientes?

Esto parece justo lo que necesito. Lo probaré.

En respuesta a Mario Gayo

Re: ¿Cómo utilizar unos scripts de JavaScript para todos los cursos?

de David Hernández -

Hola Mario,

Entiendo que cuando pones 'libreria_uno', 'libreria_dos' te refieres a distintos archivos *.js que cada uno puede contener varias funciones de JavaScript ¿cierto?

Sí, perfecto.

De hecho puedes incluso colocar una librería como jQuery (un archivo o fichero JS con múltiples funciones) y algún plugin asociado a ésta (también un archivo o fichero JS con múltiples funciones).

Aquí el "límite" sería que tu código (tus funciones) no entraran en contradicción con las del JavaScript de Moodle (a saber, la libería YUI).

Por otra parte, según entiendo, debes refrescar el caché de temas para que el nuevo código JS sea reconocido como parte del tema en uso.

Saludos