Conflit jquery entre jacomment et cdscriptegrator

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

  • [Problème] Conflit jquery entre jacomment et cdscriptegrator

    Bonjour à tous et merci d'avance pour toute l'aide que vous pouvez m'apporter.
    - Le composant Jacomment a besoin d'une librairie jquery pour fonctionner
    - cdaccordion a également besoin d'une livrairie jquery qui est insérer dans le code par l'intermédiaire du plugin cdscriptegrator

    Après plusieurs tests, une solution peut se dégager puisque jacomment fonctionne du moment où une librairie jquery est chargée, par contre cdaccordion ne fonctionne que si cdscriptegrator charge la sienne.

    Donc est-il possible d'insérer un bout de code dans jacomment.php pour qu'il détecte que cdscriptegrator est actif à la lecture d'un article et qu'il n'insère pas la librairie jquery ?

    Voici la partie de jacomment.php du plugin associé au composant qui lance la librairie lors de l'affichage d'un article :
    Code PHP:
    if(!defined('JACOMMENT_GLOBAL_JS')){                    
                    
    JHTML::script(JURI::root().'components/com_jacomment/asset/js/jquery-1.4.2.js');
                    
    JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.comment.js');
                    
    JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.popup.js'); 
                    
    JHTML::script(JURI::root().'components/com_jacomment/asset/js/jquery-noconflict.js');                
                    
    define('JACOMMENT_GLOBAL_JS'true);
                } 
    Autres idées de résolution : est-il possible de détecter une suite de caractère
    Code:
    {accordion}xxxxx{/accordion}
    et de mettre en commentaire
    Code:
     /*JHTML::script(JURI::root().'components/com_jacomment/asset/js/jquery-1.4.2.js');*/
    si la suite est détecter dans l'article ?
    Dernière édition par kardo à 08/01/2012, 08h09 Raison: Oubli du préfixe

  • #2
    Re : Conflit jquery entre jacomment et cdscriptegrator

    Bonjour,

    Le problème JQuery est classique mais ne trouve aucune solution satisfaisante, sauf à modifier l'ensemble des plugins, modules et composants utilisant JQuery.

    Dans ce cas de figure, il y a vraisemblablement un conflit entre les versions de JQuery. Scriptegrator utilise maintenant JQuery 1.7, qui est partiellement incompatible et entre en conflit avec JQuery 1.4.

    Solution, modifier JaComment pour lui faire prendre en compte JQuery 1.7.

    Il n'existe aucun plusgin par contre permettant de commenter ou ignorer un plugin si un autre est présent.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Conflit jquery entre jacomment et cdscriptegrator

      Merci de ta réponse, après des essais, jacomment fonctionne avec la version jquery de cdscriptegrator mais un seul doit être déclaré. Ce que je souhaite est simplement pour quelqu'un si connaissant un peu en php, de faire une recherche dans le contenu de l'article et de vérifier si la balise {accordion} est présente dans ce cas, seulement, on empêche la déclaration du jquery de Jacomment.

      Jacomment utilise une méthode ci-dessus pour vérifier si une balise {jacomment off} est insérée dans l'article, si c'est le cas, le commentaire n'est pas affiché.

      Qui pourrait m'aider à m'inspirer de ce code pour rechercher la balise {accordion} dans l'article ?
      Code PHP:
      public function onContentAfterDisplay($context, &$row, &$params$limitstart=1)
          {        
              
      $app JFactory::getApplication();                        
              if ( 
      $app->isAdmin() ) { return; }
              
              if(!
      file_exists(JPATH_SITE.DS.'components'.DS.'com_jacomment'.DS.'jacomment.php')){
                  return 
      '';    
              }
              
              
      $option JRequest::getCmd('option');        
              
      $print    JRequest::getCmd('print'0);        
              if(
      $option != "com_content" || $print >0){
                  return 
      '';                
              }
                              
              
      $plgParams $this->plgParams;                
              
      //check category allow show comment        

              
      if($this->_isCheckShowComment == -|| !$this->checkShowComment($row)){        
                  if(
      $option != "com_k2"){
                      if(isset(
      $row->text)){
                          
      $row->text preg_replace($this->_plgCodeEnable""$row->text);                
                          
      $row->text preg_replace($this->_plgCodeDisable""$row->text);
                      }else if(isset(
      $row->introtext)){
                          
      $row->introtext preg_replace($this->_plgCodeEnable""$row->introtext);                
                          
      $row->introtext preg_replace($this->_plgCodeDisable""$row->introtext);
                      }
                  }
                  if(
      $plgParams->get('postion_add_button',0) == "onContentAfterDisplay") {
                      
      $this->checkShowComment($row);
                  }
                  return 
      '';
              }
              
              if(
      $plgParams->get('postion_add_button',0) == "onContentAfterDisplay" && $this->_isCheckShowComment != -1){
                  return 
      $this->showButton($row);
              }else{
                  return 
      '';
              }
          } 
      Si la balise est détecter je finis par :
      Code PHP:
      if($accordion != 0)
              {
          
      JHTML::script(JURI::root().'components/com_jacomment/asset/js/jquery-1.4.2.js');
              
      JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.comment.js');
          
      JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.popup.js');                  
          
      define('JACOMMENT_GLOBAL_JS'true);
          }else{
          
      /*JHTML::script(JURI::root().'components/com_jacomment/asset/js/jquery-1.4.2.js');*/
              
      JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.comment.js');
          
      JHTML::script(JURI::root().'components/com_jacomment/asset/js/ja.popup.js');                  
          
      define('JACOMMENT_GLOBAL_JS'true);

      Commentaire


      • #4
        Re : Conflit jquery entre jacomment et cdscriptegrator

        Ton idée est séduisante su rle papier, mais très délicate à mettre en oeuvre, puisqu'elle impliquerait que le plugin scriptegrator (et son accordion) soit systématiquement traité après JaComment, ce qui n'est absolument pas garanti.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X