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

Bibliothèques et frameworks PHP Discussion :

[Smarty] modifier truncate différent d'un substring javascript


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut [Smarty] modifier truncate différent d'un substring javascript
    Bonjour,

    Je remarque une différente entre le découpage des chaines javascript (substring) et celui de smarty (truncate)...

    Je découpe une chaine "ANGOULEME / LA COURONNE" lorsque celle-ci est trop grande par rapport à son conteneur, j'ai choisis 21 caractères à découper.

    (Sachant que Smarty et javascript indicent à partir de 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          mavar.substring(0,21)+"..."; // Javascript 
          // affiche : "ANGOULEME / LA COURO..." OK c'est bon !
          {$mavar|truncate:21:"...":true} // Smarty
          // affiche : "ANGOULEME / LA CO..." BAD...
    Le rendu est différent donc j'essaye de doser mon découpage sur smarty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          {$mavar|truncate:23:"...":true} // smarty 
          // affiche : "ANGOULEME / LA COUR..."
          // presque....encore une fois
          {$mavar|truncate:24:"...":true} // smarty 
          // affiche : "ANGOULEME / LA COURONNE"
          // HUH ? 8O
    J'ai regardé la fonction truncate et pourtant je passe les bons paramètres afin de ne demander qu'une césure de mot ($breakword=true et $middle=false).

    Bref je n'explique pas mon problème...

    Un coup de main ?

  2. #2
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Bonjour,

    Ta chaine compte 23 caractères.

    Le modificateur de variable trucate ne se contente pas d'un simple substring. Il coupe ta chaine (si et seulement si c'est nécéssaire).

    L'indice que tu indiques est l'endroit où la chaine est coupée avec les trois petits points compris (ou autres caractères si tu les as spécifiés) .

    Si la taille de ta chaine moins la chaine compémentaire (les ...) est >= à ton index (ce qui est le cas dans le dernier exemple) alors aucun tronquage n'est effectué.

    Dans ton cas cette instruction pourrait peut être suffire (les trois ... sont ajoutés obligatoirement à la suite) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$mavar|truncate:20:"":true:false}...
    Du coup les résultats que tu as sont cohérents.

    @++

  3. #3
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    avec les trois petits points compris
    Aaaah....si j'avais remarqué la différence de 3 caractères j'aurai peut-être pu y penser !

    C'est exact merci !

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

Discussions similaires

  1. méthode substring javascript
    Par babalastar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/02/2008, 12h53
  2. modifier un label asp via du javascript
    Par ronki dans le forum ASP.NET
    Réponses: 7
    Dernier message: 27/11/2007, 11h33
  3. Comment vérifier et/ou modifier les paramètres de IE7 via Javascript
    Par droog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/11/2007, 12h50
  4. Modifier des feuilles de styles en Javascript
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2006, 11h19
  5. Modifier un obet XML par du javascript
    Par Thauglor dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 23/05/2006, 16h20

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