CMS Automne
http://www.automne-cms.org/forum/

[résolu] Question regex et rangee
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=2669
Page 1 sur 1

Auteur:  wind [ Sam Fév 02, 2013 5:05 pm ]
Sujet du message:  [résolu] Question regex et rangee

Salut a tous:
est il possible d'appliquer des regex aux variable avant de les afficher dans une rangée ?

Auteur:  wind [ Sam Fév 02, 2013 5:08 pm ]
Sujet du message:  Re: Question regex et rangee

ex:
la variable {chien:nom:label} vaut: "mac giver"
et je voudrais ajouter un - pour obtenir "mac-giver" pour l'utiliser dans l'url...

Auteur:  wind [ Dim Fév 03, 2013 12:55 am ]
Sujet du message:  Re: Question regex et rangee

je veux en partant de {chien:nom:label}
faire ça:
Code :
<?php
    $texte = 'mac giver';
    $texte = str_replace(' ', '-', $texte);
    // affichage de: mac-giver
    echo $texte;
?>

puis récupérer {chien:nom:label} modifier comme je le veux !!!
j'ai tester plusieurs trucs mais ça ne marche pas.

Auteur:  Fred [ Lun Fév 04, 2013 11:05 am ]
Sujet du message:  Re: Question regex et rangee

Salut wind,

Si tu veux modifier la valeur d'un champ d'un objet polymod il va falloir le faire en php avec l'API Automne.

Ca devrait donner quelque chose comme ça :

Code :
<?php
   $objetChien = new CMS_poly_object($idObjet); // Instanciation de l'élément $objetChien, $idObjet étant l'ID de l'objet "chien".

   $objetChien->setValues($idChamp, array($idChamp.'_0' => $texte), ''); // Enregistrement de la valeur $texte dans le champ "nom" dont l'ID est $idChamp

   if($objetChien->writeToPersistence()) // Enregistrement de l'élément $objetChien
   {
      echo "Enregistrement OK";
   }
   else
   {
      echo "Erreur d'enregistrement";
   }
?>

Auteur:  wind [ Lun Fév 04, 2013 1:16 pm ]
Sujet du message:  Re: Question regex et rangee

En fait, c'est pas ce que je veux faire...
Toi tu me propose de modifier la valeur avant l'enregistrement mais je ne vaux pas faire ça, je veux juste remplacer les espaces dans variable par - lors de l'affichage pour mettre la variable dans l'url car en l'utilisant comme elle est, j'ai des % dans l'url EX:

Résultat obtenu:
17-malinois.php?fiche=34-mac%giver

Résultat voulu:
17-malinois.php?fiche=34-mac-giver

est ce que je m'explique bien ?

Si je fais ce que tu me propose, il faudra alors que je fasse le travail inverse en suppriment les - pour l'affichage dans le contenu (hors url) !!!

Auteur:  wind [ Lun Fév 04, 2013 1:22 pm ]
Sujet du message:  Re: Question regex et rangee

voila la ligne de code qui me pose soucis:
<a href="web/genea/17-malinois.php?fiche={chien:id}-{chien:nom:label}">
{chien:nom:label}
</a>

la variable {chien:nom:label} == mac giver

tu vois, dans le href la variable {chien:nom:label} en rouge doit avoir les - mais la variable {chien:nom:label} en noir ne doit pas les avoir !!!

Auteur:  wind [ Lun Fév 04, 2013 1:27 pm ]
Sujet du message:  Re: Question regex et rangee

Au fait, je suis mal poli, un grand merci pour ta réponse quand même !!! :D

Auteur:  Fred [ Lun Fév 04, 2013 1:38 pm ]
Sujet du message:  Re: Question regex et rangee

Ah OK, c'est ta phrase "puis récupérer {chien:nom:label} modifier comme je le veux" qui pour moi signifiait que la valeur devait être modifiée...

Alors dans ce cas c'est super simple, tu as à ta dispositions les "helpers" (rubrique "variables générales" de la doc contextuelle des modules).

Dans ton cas :
Code :
{helper:str_replace: |-|{chien:nom:label}}

va retourner exactement ce que tu veux.

Pour détailler un peu, ce helper fait un str_replace et tu as les paramètres de la fonction séparés un "|".

Note pour plus tard : utilises le bouton "éditer" plutôt que d'ajouter de nouvelles réponses pour compléter ton message :wink:

Auteur:  wind [ Lun Fév 04, 2013 1:49 pm ]
Sujet du message:  Re: Question regex et rangee

Très grand merci, comme tu le dis, ça retourne exactement ce que je veux...
pour le coup tu viens aussi de me faire comprendre les helpers que je n'avais pas bien saisi !!!
Bravo Fred, merci a toi :D

EDIT: t'a vu, la j'édite le message :wink:
en fait, si je n'édite pas, c'est pour être sur que l'ajout ne soit pas loupé par celui qui a déjà lu le message mais tu as entièrement raison !!!

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/