Mise au point plugin editors-xtd

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

  • Mise au point plugin editors-xtd

    Bonjour,

    J'ai réalisé un plugin qui insert automatiquement le titre de l'article dans le corps du texte (code fourni ci-dessous).
    Il fonctionne mais si le titre comporte un des caractères [ ' " \ ] alors il déclenche une erreur.

    Quelqu'un peut-il m'aider pour l'échappement à réaliser ?


    Code PHP:
    <?php
    defined
    '_JEXEC' ) or die( 'Restricted access' );
    jimport'joomla.plugin.plugin' );
    class 
    plgButtonFait extends JPlugin
    {
      function 
    onDisplay($name)
      {
        
    $id $_GET['id'];
        
    $dbJFactory::getDbo();
        
    $query'SELECT title FROM #__content WHERE id='.$id;
        
    $db->setQuery($query);
        
    $title$db->loadResult();
        
    $js "
        var titre = '
    $title';
        function xtdFaitClick(editor)
        {
        txt = '<p>'+titre+'</p>';
        if (!txt) return;
        jInsertEditorText(txt, editor);
      }"
    ;
        
    $doc JFactory::getDocument();
        
    $doc->addScriptDeclaration($js);
        
    $button = new JObject;
        
    $button->modal false;
        
    $button->class 'btn';
        
    $button->link '#';
        
    $button->text JText::_('Fait');
        
    $button->name 'pencil';
        
    $button->onclick 'xtdFaitClick(\''.$name.'\'); return false;';
        return 
    $button;
      }
    }
    ?>
    Cordialement
    jf.
    ---
    Dernière édition par jacfev à 16/12/2021, 14h59

  • #2
    Re : Mise au point plugin editors-xtd

    Bonjour
    Il faut donc échapper les caractères avant d'utiliser votre $title.
    essayez de remplacer
    Code PHP:
      $title$db->loadResult(); 
    par
    Code PHP:
      $titleaddslashes($db->loadResult()); 
    cours de SVT - infos scientifiques : www.nicolas-ogier.fr
    pas de demandes d'aide par mp, elles seront systématiquement refusées !
    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérer à l'AFUJ https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Re : Mise au point plugin editors-xtd

      opware2000
      merci de t'intéresser à mon sujet.
      OK avec addslashes
      Mais s'il y a un guillemet ("), la chaîne est tronquée àp du guillemet
      Pour que ça fonctionne dans ce cas, j'ai ajouté, bien que ce n'est pas très académique :
      Code PHP:
      $titlestr_replace('"'' '$title); 
      à défaut de mieux !

      Commentaire


      • #4
        Re : Mise au point plugin editors-xtd

        salut
        comme il y a imbrication entre les ' et les ", à un moment donné il faut les remplacer.
        Côté escape, il est bon de savoir également qu'on peut utiliser
        JText::_('STRING' true)
        le "true" permet d'échapper les caractères lors de l'utilisation en JS
        (voir un de mes vieux tutos pour plus de détails http://tutoriels-joomla.joomlack.fr/...vec-jtext.html)
        Tu peux toujours essayer
        $title= str_replace('"', '" ', $title);
        à tester, sans garantie
        CEd
        Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
        http://www.template-creator.com Outil de création de templates
        Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X