IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

Conflits ExtJs 4.1.0 et Mootools sur Joomla


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut Conflits ExtJs 4.1.0 et Mootools sur Joomla
    Bonjour,

    j'ai récemment été mis en charge de mettre à jours un composant Joomla, qui utilise le framework ExtJs de Sencha. J'ai développé mon application et lors de son intégration au composant déjà existant j'ai eu plusieurs problèmes.
    La plupart ont été résolus en uploadant la version 4.1.0 de ExtJs (avant c'était la 4.0.X (je ne connais pas le nom de cette version exactement).

    Lorsque j'ai mis à jour la librairie donc, tout marchait bien jusqu'à ce que j'arrive à l'édition d'un article (toujours sous Joomla). L'application utilise Mootools pour détecter les évènements qui déclencheront l'enregistrement de l'article (enfin c'est ce que je pense avoir compris en ayant lu le code dans le composant com_content). Le message d'erreur que je reçoit est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: Property 'id' of object #<HTMLDocument> is not a function
    Mootools récupère le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    	Joomla.submitbutton = function(task) {
    		if (task == 'article.cancel' || document.formvalidator.isValid(document.id('item-form'))) {
    Uncaught TypeError: Property 'id' of object #<HTMLDocument> is not a function
    			if (tinyMCE.get("jform_articletext").isHidden()) {tinyMCE.get("jform_articletext").show()}; tinyMCE.get("jform_articletext").save();			Joomla.submitform(task, document.getElementById('item-form'));
    		} else {
    			alert('Formulaire invalide');
    		}
    	}
    </script>
    Ceci est le code du composant com_content, écrit par Joomla et je ne pense pas qu'il fasse y toucher. Le problème se passe au moment de la récupération du formulaire : document.id('item-form')).

    Un plugin est installé en même temps que le composant sur lequel j'interviens qui permet de rajouter un bouton dans la page d'édition des articles et qui fait apparaître une fenêtre créée à partir de ExtJs. Bref cette librairie est chargée au chargement de cette page. J'ai fait plusieurs tests : j'ai enlevé le code javascript qui faisait appel à ExtJs sans enlever la librairie, ça ne marche toujours pas. Lorsque j'enlève tout (le code ExtJs et la librairie), je récupère la possibilité d'enregistrer.

    Tout le long du développement de mon application sur Joomla, j'ai eu ce genre de message d'erreur mais ça n'a jamais perturbé le fonctionnement. Jusque là ...

    J’espère pouvoir trouver de l'aide et, pour ça, avoir été clair.
    Merci

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Il est toujours déconseillé de mélanger les frameworks. Oui je sais, ce n'est pas de votre fait.

    Apparemment il essaie de retrouver document.id dans les sources ExtJS sans chercher dans les sources MooTools. Plutôt étrange.

    Je proposerais bien de passer par :

    Mais à mon avis le résultat sera le même. Il y a peut-être un redéfinition des méthodes MooTools quelque part ou bien c'est le <HTMLDocument> qui pose problème.

    Au pire, essayez la méthode JavaScript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('item-form')
    Et finalement, mais je crains que ça ne fasse pas ce que l'on pense :


  3. #3
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Euh, oui. Ce qui ne vous arrange pas.

    Ceci est le code du composant com_content, écrit par Joomla et je ne pense pas qu'il fasse y toucher.
    Mieux vaut pas. On est d'accord. Mais alors je ne sais pas trop comment régler le problème. Inverser l'appel des bibliothèques ? Il y a un point de Faq qui parle de ça, mais pas sûr que ça concerne MooTools...

    Puis-je utiliser Ext-JS si j'ai inclus une autre bibliothèque ?

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    Bonjour,
    merci pour votre réponse.

    Je ne sais pas si changer le code du composant écrit par Joomla soit une bonne idée. C'est écrit par Joomla justement
    Quoi qu'il en soit j'ai essayé vos solutions et mon message d'erreur a changé et est le même pour les trois méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uncaught TypeError: Cannot call method 'isValid' of null
    L'erreur se déclenche exactement au même endroit. Il reconnait apparemment la fonction mais ne trouve pas l'élément.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    J'ai essayé de changer l'ordre d'appel au bibliothèque. Le soucis est que Mootools est appelé par Joomla de base donc l'ajout de ExtJs se fait tout le temps après. J'ai tout de même essayé de rapeller Mootools après l'appel de ExtJs (pas très propre mais bon, je test ) et le problème reste le même.

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Avez-vous bien un élément 'item-form' et celui-ci est-il unique ?

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    Oui,
    j'ai bien recherché. Cet élément est aussi créé par le composant com_content.
    En fait, le code initial fonctionne (même après l'installation de l'ancien plugin, et donc de l'ancienne librairie). Après l'ajout de la nouvelle version de la librairie ExtJs, ça bloque.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    J'ai aussi essayé l'adaptateur mootools pour ExtJs (http://www.joomlicious.com/ext-mootools-adapter/).
    Le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: Property 'id' of object #<HTMLDocument> is not a function
    est toujours là.

  9. #9
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Après quelque recherche, j'ai bien l'impression qu'avec la version 4.x extjs ne gère plus la compatibilité avec les autres librairies.

    En revanche dans la version 3.x c'est le cas. regarde peut être de ce coté

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. extJS 4 et format de date sur l'axe X
    Par lulug-29 dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 02/01/2012, 13h32
  2. [MooTools] Conflit entre deux scripts utilisant du Mootools
    Par kurkaine dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 24/02/2011, 19h59
  3. [MooTools] Fx.Slide Mootools sur plusieurs DIV
    Par Heilong dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 06/10/2008, 21h19
  4. un module sur joomla: pays et carte géo ca existe ou pas
    Par Nadjia.ccce dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/05/2007, 19h19
  5. [Joomla!] Documentation précise sur Joomla
    Par casawi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 10/04/2007, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo