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

    J’ai besoin d’une TV qui prends manuellement la largeur d’une vidéo afin de l’afficher correctement ds ma page.
    Je récupère cette chaine (de type "string") dans un snippet afin de faire des modification dessus.
    Je dois donc la passer en type "integer", mais probleme, la chaine retourné est toujours "0";

    Voyez-vous pourquoi?

    Voici mon snippet

    <?php
    
    // je recupere la valeur de ma TV
    $largeur = "[!GetField? &docid=`[*id*]` &parent=`0` &parentLevel=`0` &field=`largeurVideo` !]";
    
    // si j'affiche $largeur, il me renvoit bien par exempe : 400
    
    // la je la transforme en integer
    $output = (int) $largeur;
    
    // le return me renvoit 0 au lieur de 400
    return $output;
    ?>


    Merci, car je bloque sur cette petite erreur.

    abientot,

    Mylullul
      • 11975
      • 2,542 Posts
      Salut,

      j’ai pas vraiment de solution pour ta conversion de variables.

      Tu peux trouver qq pistes sur php.net en regardant settype mais personnellement j’ai pas trouvé de solution satisfaisante.

      Sinon pour ton snippet, j’ai modifié le code pour qu’il soit plus dans l’esprit MODx

      <?php //active la coloration syntaxique du code
      $gParams['docid'] = isset($docid) ? $docid : $modx->documentIdentifier;
      $gParams['parent'] = isset($parent) ? $parent : 0;
      $gParams['parentLevel'] = isset($parentLevel) ? $parentLevel : 0;
      $gParams['field'] = isset($field) ? $field : 'pagetitle';
      
      $output = $modx->runSnippet('GetField',gParams);
      
      return $output;
      
      


      [!monSnippet? &field=`largeurVideo` !]

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 20776
        • 36 Posts
        merci pour la syntaxe plus "modx", ca fait plus propre... c’est bien de me donner l’exemple, il faut que je m’y colle
          • 5422
          • 6 Posts
          Pour caster en entier est ce que tu as essayé de le multiplier par 1 ?

          Je sais que ca peut paraitre débile mais parfois ca suffit pour la conversion.

          $output = (int) $largeur; => $output = $largeur * 1;


            W3C Addict
            • 20776
            • 36 Posts
            merci pour l’aide, mais

            $output = $largeur * 1;

            renvoit toujours 0 en sortie!
              • 20776
              • 36 Posts
              j’ai finalement trouvé une solution sans chercher... utiliser PHx merci Perrine

              à l’affichage, j’utilise "math" pour effectuer mes calculs sur ma Tv

              à la base je voulais calculer une marge :

              [*maVariable:math=`((589-?)/2)`*]