jQuery ne se charge plus

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] jQuery ne se charge plus

    Bonjour,

    Sur un site utilisant un template datant d'octobre 2015 (sans mise à jour récente apparemment) et ne posant pas de problème jusqu'ici, DJ-Imageslider s'est mis récemment à ne plus afficher les images. Quelle mise à jour pourrait être en cause, mystère.

    En explorant d'abord la page d'accueil, la console signalait que jQuery n'était pas chargé. Le template charge pourtant lui-même une version 1.11 présente dans son propre dossier JS.
    Je n'ai trouvé aucune explication à cette absence de chargement.

    J'ai donc réglé le problème sur un clone du site en corrigeant également d'autres soucis (remplacement de http:// par https:// notamment dans le index.php du template), mais seule l'installation de jQuery Easy a permis de faire réapparaître les diaporamas. Les modifications ont été reportées sur le site de production : plus d'erreur.

    J'ai donc récupéré une copie du dossier du template utilisé par ces sites et l'ai utilisé sur un site de test, en version 3.9.4 puis 3.9.6, avec DJ-Imageslider dans sa dernière version stable, et ô miracle, pas de problème avec jQuery qui se charge bien depuis le template ! Versions de Joomla! identiques, même template, comportement différent vis à vis du chargement de jQuery !

    Si quelqu'un a une idée de ce qui pourrait provoquer l'erreur sur le site de production et son clone sur un autre serveur, je suis preneur. Merci d'avance !
    Robert
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Salut,
    quel template ?
    Comment est chargé jQuery dans ce template - cf la ligne de code.
    Si je te lis correctement, ce template charge sa propre version de jQuery, ce qui est un non-sens avec J3.9.6.

    Re : le module djimageslider
    même si le dev s'appuie un peu trop sur la "backward compatibility" de joomla à mon avis, cette partie, dans mod_djimageslider.php :

    Code PHP:
    $jquery version_compare(JVERSION'3.0.0''>=');

    ...

    if (
    $jquery) {
        
    JHTML::_('jquery.framework'); 
    devrait charger jQuery normalement.
    Cela dit, dans le choix de chargement de scripts externes, jQuery-dépendants, le code est assez approximatif.

    De manière générale, les devs joomla resserrent de plus en plus les boulons en ce qui concerne le javascript, à raison. Peut-être que, dans l'une des toutes dernières versions de Joomla, une restriction a été ajoutée, qui a généré ce bug.
    Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Bonjour,

      Joomla 4.0 ne souhaite plus utiliser jQuery : voir https://developer.joomla.org/roadmap.html où l'on parle de "Removal of jQuery from core".

      Restera aux extensions à faire la même chose et, là, j'ai du boulot

      Pascal
      If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

      Commentaire


      • #4
        Bonjour,

        Oui, mais ce qui est curieux, c'est qu'en copiant le template du site où il y a problème sur un 3.9.4 ou un 3.9.6 de test, jQuery se charge.
        Ce template est de Globberstheme et date, comme je l'ai dit, de trois ans et demi, ce qui peut expliquer des soucis sur le site de production, mais pas que ça fonctionne bien sur mon site de test.
        Le code de chargement (après des "unset" en début de fichier) :
        <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/javascript/jquery-1.11.0.min.js"></script>
        <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          Bonjour Pascal,

          Désolé, je n'avais pas vu ta réponse. Oui, cette disparition de jQuery dans Joomla 4 va poser des problèmes !
          Je l'ai vécu en essayant de modifier Joaktree il y a quelques mois... avant d'abandonner, d'autant que d'autres modifs adaptées à une alpha (4, je crois) ne fonctionnaient plus sur la suivante.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Envoyé par RobertG Voir le message
            Bonjour Pascal,

            Désolé, je n'avais pas vu ta réponse. Oui, cette disparition de jQuery dans Joomla 4 va poser des problèmes !
            Je l'ai vécu en essayant de modifier Joaktree il y a quelques mois... avant d'abandonner, d'autant que d'autres modifs adaptées à une alpha (4, je crois) ne fonctionnaient plus sur la suivante.
            JQuery est retiré du core de J4, et de boostrap4.
            Ce sont des choix techniques pour ne plus charger quelques Ko inutiles avec chaque page.
            Mais rien n'oblige à suivre ces choix, et en tous cas pas avec la même échéance.

            Moi aussi j'aurai besoin de Joaktree (mais que des fonctions d'import et d'affichage) sous J4.
            On verra cela en 2020....
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Oui, Roland, j'avais réussi dans un premier temps à modifier Joaktree pour l'installer et afficher son administration dans J! 4, mais j'ai bloqué sur le JS d'import (on en a parlé dans une autre discussion il y a quelques mois), puis lors d'un changement de version alpha, il me semble bien, la manière d'afficher les onglets d'administration, par exemple dans la définition des sources GedCom, a changé une nouvelle fois, ce qui m'a fait laisser tomber. Je ne m'y connais pas suffisamment en JS pour tenter un import externe de jQuery...

              Par contre, il m'a fallu faire des modifications sur l'appel de la géolocalisation Google dans la version 1.5.3, que je n'ai pas reportées pour J! 4 bien sûr.
              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

              Commentaire


              • #8
                re jQuery dans J4
                je travaille sur la J4 depuis un moment et jQuery est encore bien présent partout, en front et back. Ca m'étonnerait beaucoup que la version stable soit livrée sans.
                JQuery et bootstap sont le dossier /media/vendor/ maintenant.
                Bootstrap et fontawesome ont été updatés,
                bootstrap 4.3.1 et
                Font Awesome Free 5.8., qui a nécessité pas mal de changements

                En revanche, la couche de compatibilité (B/C) va avoir ses limites et les devs d'extensions tierces vont devoir changer leurs petites habitudes.
                Par exemple, l'essentiel de la gestion de fichiers externes (scripts JS, fichiers CSS, images) passe par :
                /libraries/src/HTML/HTMLHelper.php
                donc le namespace à utiliser est :
                Code PHP:
                use Joomla\CMS\HTML\HTMLHelper

                RobertG
                si tu vires les "unset" et la ligne
                Code:
                <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/javascript/jquery-1.11.0.min.js"></script>
                et que tu gardes:

                Code PHP:
                <jdoc:include type="head" /> 
                en en remettant une couche avec :
                JHtml::_('jquery.framework');
                au cas où - essaye sans d'abord.

                Joomla va charger la version jQuery correcte, ie, celle de /media/jui, v.1.12.4
                et
                jquery-migrate.js, pour la compatibilité avec des scripts dépendants de versions plus anciennes de jQuery.

                Pourquoi diable vas-tu chercher un jquery v. 2.1.3 ?

                J'aime bien l'esthétique des templates de globberstheme, mais les overrides de com_content sont à surveiller, ou plutôt il faut faire des réglages serrés.
                J'ai beaucoup travaillé sur beview.
                Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                Commentaire


                • #9
                  salut,
                  jquery vous manques ?
                  reservez lui un espace de nom et servez vous en dans vos composants......

                  Commentaire


                  • #10
                    Merci ghazal,

                    J'ai tenté de modifier l'index.php du template sur le site clone, mais j'obtiens une page blanche. Je n'ai pas insisté (j'ai juste donné un coup de main pour refaire fonctionner DJ-Imageslider sur ce site), dans la mesure où jQuery Easy règle le problème...
                    Où as-tu vu que je vais chercher un jQuery 2.1.3 ? J'imagine que la 1.11.0 qu'utilise le template est une version personnalisée.
                    Le site clone va être upgradé en 3.10.0 dev pour test, et si de nouveaux soucis apparaissent, le template sera remplacé.
                    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                    Commentaire


                    • #11
                      @ghazal :
                      salut,
                      tu oublies juste un petit truc, c'est que Bootstrap inclues aussi du javascript.
                      Et ce sont ses fonctionnalités qui sont utilisées à la place de Jquery. D'ou son abandon et son retrait du noyau Joomla.

                      Et pour les dev qui en ont besoin, bah il faut l'intégrer soi même pour son composant ou son application.

                      Commentaire

                      Annonce

                      Réduire
                      Aucune annonce pour le moment.

                      Partenaire de l'association

                      Réduire

                      Hébergeur Web PlanetHoster
                      Travaille ...
                      X