We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26827
    • 30 Posts
    Bonjour,

    j’ai voulu simplifier la création d’image et de lien pour une future soumission de page sur mon site et je suis bien évidemment passez par un snippet que j’ai tenté de créer moi-même

    voici le code du snippet
    # Boutons TestingCMS snippet
    # Snippet créer par Sfimx [ [email protected] ]
    # Dernière mise à jour : 18/03/06
    ###############
    # Paramètres
    ############
    # &url : vous permet de choisir le lien ou le bouton vous emmenera (indiquer une URL complète)
    # 
    # &type : type de bouton
    #     > telecharger : Affichera le bouton "télécharger"
    #     > gosite      : Affichera le bouton "voir le site"
    #     > gositeoff      : Affichera le bouton "voir le site officiel"
    #     > more        : Affichera le bouton "en savoir plus"
    #     
    # &typelien : type de lien (avec ou sans nouvelle fenêtre)
    #     > nouvelle : ouvre une nouvelle fenêtre
    #     > actuelle : garde la fenêtre existante
    #
    # Exemple de configuration
    ##########################
    #
    # [[BoutonsTCMS? &url=`http://monsite.com` &type=`more`]]
    #
    # Ce bouton vous renverra vers le site "http://monsite.com" avec une image sur laquelle est écrit "En savoir plus"
    #
    #
    ################## Le Code ci - dessous ne doit pas être édité, de toute façon c'est inutile :] ##############################
    
    
    # configuration et lien avec $type
    if ($type == 'gosite') 
    	$type = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gosite.png';
    
    elseif ($type == 'gositeoff') 
    	$type = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gositeof.png';
    
    elseif ($type == 'more') 
    	$type = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/more.png';
    
    elseif ($type == 'telecharger') 
    	$type = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/dl.png';
    
    
    
    # configuration et bonne balise avec $typeurl
    if ($typeurl == 'nouvelle') 
    	$typeurl = '_blank';
    
    else ($typeurl == 'actuelle') 
    	$typeurl = '_self';
    
    
    # production du code
    echo("<a href='$url' target='$typeurl"><img src='$type' /></a>");


    jusque là j’air réglé pas mal de problème, mais là il me sort ça :
    Parse error: syntax error, unexpected T_VARIABLE in /home/sfimx/public_html/testingcms/manager/includes/document.parser.class.inc.php(691) : eval()'d code on line 50


    je ne connais pas bien l’erreur, que se passe-t-il ?

    merci d’avance pour votre aide
    Sfimx
      • 18219
      • 826 Posts
      Ta dernière ligne compote une erreur d’interprétation :
      echo("<a href='$url' target='$typeurl"><img src='$type' /></a>");


      target=’$typeurl" commence avec une simple cote et fini avec une double cote.
      Tu peux utiliser le caractère d’echappement pour qu’une chaine de texte puisse contenir des double cote tu les précède d’un anti-slash : \

      Ce qui donne pour la même ligne :

      echo("<a href=\"$url\" target=\"$typeurl\"><img src=\"$type\" /></a>");
        Marc
        I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
        • 26827
        • 30 Posts
        rien a faire, toujours la meme erreure

        http://testingcms.sfimx.atoxx.net/indisponibilite

        Sfimx
          • 11975
          • 2,542 Posts
          salut,

          pas sur que ce soit lié mais n’appelle pas les fonctions "echo" ou "print" dans ton code php pour les snippets.
          Prefere leur une variable dans laquelle tu stocke le flux d’output et renvoie le avec return

          $monlien = "<a href=\"$url\" target=\"$typeurl\"><img src=\"$type\" /></a>";
          return $monlien;
            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 26827
            • 30 Posts
            j’ai essayé encore quelque mise à jour :
            # Boutons TestingCMS snippet
            # Snippet créer par Sfimx [ [email protected] ]
            # Dernière mise à jour : 18/03/06
            ###############
            # Paramètres
            ############
            # &url : vous permet de choisir le lien ou le bouton vous emmenera (indiquer une URL complète)
            # 
            # &type : type de bouton
            #     > telecharger : Affichera le bouton "télécharger"
            #     > gosite      : Affichera le bouton "voir le site"
            #     > gositeoff      : Affichera le bouton "voir le site officiel"
            #     > more        : Affichera le bouton "en savoir plus"
            #     
            # &typelien : type de lien (avec ou sans nouvelle fenêtre)
            #     > nouvelle : ouvre une nouvelle fenêtre
            #     > actuelle : garde la fenêtre existante
            #
            # Exemple de configuration
            ##########################
            #
            # [[BoutonsTCMS? &url=`http://monsite.com` &type=`more`]]
            #
            # Ce bouton vous renverra vers le site "http://monsite.com" avec une image sur laquelle est écrit "En savoir plus"
            #
            #
            ################## Le Code ci - dessous ne doit pas être édité, de toute façon c'est inutile :] ##############################
            
            
            # configuration et lien avec $type
            if ($type == 'gosite') {
            	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gosite.png'; 
            return $type2;}
            
            elseif ($type == 'gositeoff') {
            	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gositeof.png';
            return $type2;}
            
            elseif ($type == 'more'){
            	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/more.png';
            return $type2;}
            
            elseif ($type == 'telecharger') {
            	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/dl.png';
            return $type2;}
            
            
            
            # configuration et bonne balise avec $typeurl
            if ($typeurl == 'nouvelle') { 
            	$typeurl2 = '_blank'; 
            return $typeurl2; }
            
            else ($typeurl == 'actuelle')
            	$typeurl2 = '_self'; 
            return $typeurl2; }
            
            
            # production du code
            $monlien = "<a href=\"$url\" target=\"$typeurl2\"><img src=\"$type2\" /></a>";
            return $monlien;


            l’erreur vien de l’avant dernière ligne du bloc Typeurl, j’aimerai bien savoir ce que je fais de faux...

            Sfimx
              • 18219
              • 826 Posts
              ...
              # configuration et lien avec $type
              if ($type == 'gosite') {
              	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gosite.png'; 
              return $type2;}
              
              elseif ($type == 'gositeoff') {
              	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gositeof.png';
              return $type2;}
              
              elseif ($type == 'more'){
              	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/more.png';
              return $type2;}
              
              elseif ($type == 'telecharger') {
              	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/dl.png';
              return $type2;}
              

              Je te conseil d’utiliser les instructions CASE plus facile à maintenir plutôt que les if et les elseif wink
              Ceci dit ton code est bon jusqu’à maintenant

              # configuration et bonne balise avec $typeurl
              if ($typeurl == 'nouvelle') { 
              	$typeurl2 = '_blank'; 
              return $typeurl2; }
              
              else ($typeurl == 'actuelle')
              	$typeurl2 = '_self'; 
              return $typeurl2; }
              

              après l’instruction else on trouve du code et non une condition : elseif à la place cela devrait s’arranger laugh
              Même remarque que précédemment : utilise les instructions CASE
                Marc
                I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
                • 26827
                • 30 Posts
                j’ai corrigé ce problème merci,

                mais j’en ai toujours grin, maintenant il y a un résultat, il me sort l’url de l’image qu’il devrait affiché... pourtant la variable $type2 est bien spécifiée dans le champ src de la balise IMG, jme pose des question

                # Boutons TestingCMS snippet
                # Snippet créer par Sfimx [ [email protected] ]
                # Dernière mise à jour : 18/03/06
                ###############
                # Paramètres
                ############
                # &url : vous permet de choisir le lien ou le bouton vous emmenera (indiquer une URL complète)
                # 
                # &type : type de bouton
                #     > telecharger : Affichera le bouton "télécharger"
                #     > gosite      : Affichera le bouton "voir le site"
                #     > gositeoff      : Affichera le bouton "voir le site officiel"
                #     > more        : Affichera le bouton "en savoir plus"
                #     
                # &typelien : type de lien (avec ou sans nouvelle fenêtre)
                #     > nouvelle : ouvre une nouvelle fenêtre
                #     > actuelle : garde la fenêtre existante
                #
                # Exemple de configuration
                ##########################
                #
                # [[BoutonsTCMS? &url=`http://monsite.com` &type=`more`]]
                #
                # Ce bouton vous renverra vers le site "http://monsite.com" avec une image sur laquelle est écrit "En savoir plus"
                #
                #
                ################## Le Code ci - dessous ne doit pas être édité, de toute façon c'est inutile :] ##############################
                
                
                # configuration et lien avec $type
                if ($type == 'gosite') {
                	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gosite.png'; 
                return $type2;}
                
                elseif ($type == 'gositeoff') {
                	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/gositeof.png';
                return $type2;}
                
                elseif ($type == 'more'){
                	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/more.png';
                return $type2;}
                
                elseif ($type == 'telecharger') {
                	$type2 = 'http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/dl.png';
                return $type2;}
                
                
                
                # configuration et bonne balise avec $typeurl
                if ($typeurl == 'nouvelle') { 
                	$typeurl2 = '_blank'; 
                return $typeurl2; }
                
                elseif ($typeurl == 'actuelle'){
                	$typeurl2 = "_self"; 
                return $typeurl2; }
                
                
                # production du code
                $monlien = "<a href=\"$url\" target=\"$typeurl2\"><img src=\"$type2\" /></a>";
                return $monlien;


                donc voici la dernière mise à jour du code

                merci d’avance
                Sfimx
                  • 18219
                  • 826 Posts
                  Quand je disais que le code était bon jusqu’à maintenant, c’était sur le plan synthaxique.
                  En réalité, il ne peut pas donner satisfaction.

                  Dans chaque instruction IF ou ELSEIF, tu utilise l’instruction RETURN qui arrête l’execution de ton script et renvoie la valeur de la variable indiquée juste après (à l’occurence $type2 ou $typeurl2). Donc il est normal que l’affichage se limite au texte de l’url puisque c’est le contenu de la variable que tu retourne.

                  Supprime dans ton code les instruction RETURN et il donnera ce que tu cherche.

                  Pendant que j’y suis un autre petit conseil :
                  Evite d’utiliser l’adresse url complète (ou plus excatement url absolue) qui a pour conséquence d’appeler le serveur lui même. Un peu comme si tu prenait ton téléphone pour composer ton proopre numéro de téléphone. Conséquence : tu paie une communication suplémentaire et tu encombre le réseau.
                  Donc Utilise les chemins dit relatif : "assets/templates/testcms/bt/..." au lieu de "http://testingcms.sfimx.atoxx.net/assets/templates/testcms/bt/..."

                  Voilà ce que donne ton code (je ne l’ai pas testé) une fois appliqué les conseils donnés plus haut :
                  # Boutons TestingCMS snippet
                  # Snippet créer par Sfimx [ [email protected] ]
                  # Dernière mise à jour : 18/03/06
                  ###############
                  # Paramètres
                  ############
                  # &url : vous permet de choisir le lien ou le bouton vous emmenera (indiquer une URL complète)
                  # 
                  # &type : type de bouton
                  #     > telecharger : Affichera le bouton "télécharger"
                  #     > gosite      : Affichera le bouton "voir le site"
                  #     > gositeoff      : Affichera le bouton "voir le site officiel"
                  #     > more        : Affichera le bouton "en savoir plus"
                  #     
                  # &typelien : type de lien (avec ou sans nouvelle fenêtre)
                  #     > nouvelle : ouvre une nouvelle fenêtre
                  #     > actuelle : garde la fenêtre existante
                  #
                  # Exemple de configuration
                  ##########################
                  #
                  # [[BoutonsTCMS? &url=`http://monsite.com` &type=`more`]]
                  #
                  # Ce bouton vous renverra vers le site "http://monsite.com" avec une image sur laquelle est écrit "En savoir plus"
                  #
                  #
                  ################## Le Code ci - dessous ne doit pas être édité, de toute façon c'est inutile :] ##############################
                  
                  $output= "";
                  
                  # configuration et bonne balise avec $typeurl
                  switch ($typeurl) {
                  		case "nouvelle" :   $output = "<a href=\"$url\" target=\"_blank\">";
                  		case "ancienne" :   $output = "<a href=\"$url\" target=\"_self\">"; 
                  	}
                  
                  # configuration et lien avec $type
                  switch ($type) {
                  		case "gosite" :    $output = ."<img src=\"assets/templates/testcms/bt/gosite.png\" /></a>";
                  		case "gositeoff" : $output = ."<img src=\"assets/templates/testcms/bt/gositeof.png\" /></a>"; 
                  		case "more" :      $output = ."<img src=\"assets/templates/testcms/bt/more.png\" /></a>";
                  		case "telecharger" : $output = ."<img src=\"assets/templates/testcms/bt/dl.png\" /></a>";
                  	}
                  
                  return $output;
                  


                  Remarque que je n’ai utilisé qu’une seule variable $output, plus simple à maintenir
                  Tu peux améliorer ce bout de code en testant si les valeurs passées en paramètre sont renseignées avec l’instruction ISSET qui tu permet d’initier les variables par des valeurs par défaut.
                  Je te laisse chercher un peu wink
                    Marc
                    I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
                    • 26827
                    • 30 Posts
                    il a fallu mettre de l’absolu a cause de l’url rewriting qui faisait tout foirer :S

                    sinon j’ai du modifier un peu le code et créer plusieur variable yavais des erreur de "." alors j’ai deux variable et je veux les assembler, c’est possible ?

                    Sfimx
                      • 18219
                      • 826 Posts
                      Si cela fonctionne, pourquoi pas.
                      Ajouter des variables intermédiaires peut parfois faciliter la lecture du code et donc la maintenance.

                      Le principale est d’obtenir le résultat escompté.
                      As-tu pensé à tester l’existance de tes paramètres en entrée (avec la fonction isset) ?

                      Par contre, je ne vois pas où il y a des erreurs de "." ?
                        Marc
                        I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink