Project

General

Profile

Bug #7807

Mover los JS del template default a un archivo independiente

Added by Alex Aragon almost 5 years ago. Updated almost 5 years ago.

Status:
Assigned
Priority:
Normal
Assignee:
Category:
Styles, Layout & Accessibility
Target version:
Start date:
01/09/2015
Due date:
% Done:

0%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Recientemente hemos tenidos problemas cuando una variable o un scripts de javascripts en el template base, que representa una funcionalidad o arregla errores de determinada zona, estos se corrigen siempre en cuando el usuario este usando el tpl por defecto, pero que pasa con los usuarios que tiene sus tpls propios el error persisten y hay que volver a buscar en que linea de codio del tpl se modifico alguna variable del javascripts.

Por tal razon recomiendo que YA NO se escriba javascripts directamente a los templates, si no que este carge a un archivo js independiente, que puede estar en la carpeta css de su estilo personalizado (solo para js extras del usuario) en caso de chamilo tenerlo al costado del archivo base.css.

Mover los scripts actuales de los js colocados en el head.tpl y footer.tpl a un js independiente puede ser (head.js y footer.js)

Associated revisions

Revision c65dbc37 (diff)
Added by Julio Montoya almost 5 years ago

Move js code into 2 separate files see #7807

History

#1

Updated by Julio Montoya almost 5 years ago

  • Status changed from Assigned to Needs more info
  • Assignee changed from Julio Montoya to Alex Aragon

He movido el código en:

main/template/default/layout/footer.js.tpl
main/template/default/layout/header.js.tpl

Hay código js que necesita parámetros como el lenguage, y unas rutas por ello lo he puesto en un template.
Tal vez conviene este cambio o no?

https://github.com/chamilo/chamilo-lms/commit/c65dbc37821ea5893e5cdbdd7ac2e56e62968afd

#2

Updated by Alex Aragon almost 5 years ago

  • Assignee changed from Alex Aragon to Julio Montoya

No conviene ya que tiene el mismo comportamiento que el anterior estado, se que algunos scripts cargan según la pagina que se visualiza, en eso no hay problema, pero aca sigue el misma situación si un caso yo tengo 3 themeplates de proyectos diferentes, hay una actualización de chamilo donde se modifico el js del template default, al actualizar el portal de los 3 proyectos aún se veran afectados y hay que cambiar manualmente cada header.js.tpl y footer.js.tpl. a cada uno de ellos (es lo mismo como estuviera el scripts en head.tpl o footer.tpl).

Los que me refería es sacar el scripts global (que por alguna razón veo que carga en todas las paginas de chamilo) que se cargen en una ruta externa a la carpeta themplate por ejemplo 'main/inc/javascrips' o 'web/javascripts'

en el parametos de carga de los js {{ js_file_to_string }} y {{ extra_headers }} que se genera en el twig puede quedar en el head.tpl no hay problema, ya que en ese lugar se carga los js según la pagina que se necesita

#3

Updated by Yannick Warnier almost 5 years ago

Normalmente los templates pueden usar y extender un template por defecto. En este caso templates/game/layout/head.tpl puede "extender" templates/default/layout/head.tpl y solo definir unas cositas más. Creo que deberíamos, a parte del default, crear un template "scaffold" o algo así para crear nuevos templates mínimos en base a una copia de este scaffold, que por defecto solo tendría los archivos con un "extends" a dentro.

No se si es "extends" pero sí hay algo de este estilo en Twig, lo he visto.

#4

Updated by Julio Montoya almost 5 years ago

  • Assignee changed from Julio Montoya to Alex Aragon

Me puedes pasar un template con el problema (carpeta main/template/XX/) para hacer unas pruebillas :)

#6

Updated by Julio Montoya almost 5 years ago

Una solución es la siguiente no se si conviene :)

En main/template/games/layout/main_header.tpl

Cambiar:

<head>
{% block head %}
{% include template ~ "/layout/head.tpl" %}
{% endblock %}
</head>

por

<head>
{% block head %}
{% include "default/layout/head.tpl" %}
{% endblock %}
</head>

De esta manera tendré lo que está en head directo del default de Chamilo.

Luego agregar:

main/template/games/layout/header.js.tpl

con

{% include "default/layout/header.js.tpl" %}

y

main/template/games/layout/footer.js.tpl

con

{% include "default/layout/footer.js.tpl" %}

En estos 2 archivos es posible agregar más codigo en javascript tan solo agregar debajo del include

<script>
alert('hi');
</script>

#7

Updated by Yannick Warnier almost 5 years ago

A algo así me refería. Me parece bien como solución, pero más allá de solo JS, deberíamos hacerlo en una "plantilla de template" en una carpeta especial, cosa que al crear una nueva plantilla solo tengamos que modificar unos archivos (y no todos).

#8

Updated by Yannick Warnier almost 5 years ago

Puedo pasar esta a 2.0?

#9

Updated by Alex Aragon almost 5 years ago

  • Assignee changed from Alex Aragon to Yannick Warnier

Por el momento que se quede en header.js.tpl y footer.js.tpl en las plantillas, para la versión 2.0 se tendra que mover ya a un archivo independiente.

Donde o usuarios puedes agregar su propio js, si este se encuentra en la carpeta del theme css o que este e un apartado diferente a del template.

#10

Updated by Yannick Warnier almost 5 years ago

  • Status changed from Needs more info to Assigned
  • Assignee changed from Yannick Warnier to Alex Aragon
  • Target version changed from 1.10.0 to 2.0

Listo

Also available in: Atom PDF