Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 18/07/2018 10:14:03

aurore222
Petit nouveau
Inscription : 12/07/2018
Messages : 8

FormBuilder post vers UDT - affichage du $_POST dans le textarea

BOnjour à toutes et à tous,
je suis en train de voir comment je vais pouvoir gérer un message à partir d'un formulaire.

Je n'ai qu'un champs message et deux champs hidden (id_user) et (alias-page)
au post, cela m'appelle une UDT qui enregistre dans une table spécifique les données

Ce que j'aimerais arriver à faire c'est quand je me rends sur la page et qu'il existe un post avec l'user loggé alors je charge le message dans le textarea.

Avez-vous une idée si cela est possible ? et une piste pour savoir comment m'y prendre?

Par ailleurs y a t'il une fonction ou autre qui permettrait d'obtenir toutes les variables disponibles type {debug} de prestashop.

Encore merci pour vos retours.
Belle journée.
Aurore.

Hors ligne

#2 18/07/2018 18:22:36

aurore222
Petit nouveau
Inscription : 12/07/2018
Messages : 8

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Rebonjour,
j'avance un peu cependant je bloque sur la récupération de l'alias de page dans une udt

quand je fais un {get_template_vars}
j'affiche des variable dont page_name mais je ne sais pas comment la récupérer en php?

un petit coup de pouce serait le bienvenue.
Merci

Hors ligne

#3 19/07/2018 08:58:46

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 192
Site Web

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Bonjour,

Il y a deux méthodes : une en PHP via la récupération de l'objet de contenu courant, mais la méthode la plus rapide dans ton cas serait peut-être de tout simplement passer la variable Smarty dans l'UDT. Par ex :

{MonUDT page_alias=$page_alias}

Code de l'UDT :

$page_alias = $params['page_alias'];

Cela répond-il à ta question ?

Hors ligne

#4 19/07/2018 10:10:51

aurore222
Petit nouveau
Inscription : 12/07/2018
Messages : 8

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Oui c'est parfait.
Merci beaucoup smile

et l'inverse est possible ? je m'explique

dans mon gabarit j'appelle {MonUDT page_alias=$page_alias} qui compte le nb de résultats d'une requête à la fin j'ai un $nb_message=1 par exemple.

Est-ce possible dans mon gabarit de faire un test sur $nb_message.

... ma page ou mon gabarit

[== Indéfini ==]
{MonUDT page_alias=$page_alias}

puis

{if $nb_message !=0}

{/if}


...


j'ai essayé de la passer en global ou autre mais je ne trouve pas
Merci d'avance.

Hors ligne

#5 19/07/2018 18:26:38

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 192
Site Web

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Dans ce cas il faut renvoyer la variable à Smarty

Exemple 1

{$nb_message={MonUDT page_alias=$page_alias}}
{if $nb_message > 0}
...
{/if}

> dans ce cas il faut bien ajouter à ton UDT un "return $nb;" à la fin

Exemple 2 dans l'UDT :

$smarty->assign('nb_messages', $nb);

Voire même définir le nom de la variable lors de l'appel de l'UDT :

$smarty->assign($params['assign'], $nb);

... et dans le code Smarty :
{MonUDT page_alias=$page_alias assign='nb_messages'}

Dis-nous si c'est ok pour toi ?

Hors ligne

#6 19/07/2018 22:41:45

aurore222
Petit nouveau
Inscription : 12/07/2018
Messages : 8

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Bonsoir AirLibre et merci smile

la méthode 1 fonctionne très bien si je n'ai besoin que d'une variable.
Je suppose que je devrais utiliser la version 2 si je voulais récupérer 2 variables par exemple nb_message et message lui-même ?

J'ai essayé avec

dans mon udt

...
$smarty->assign('nb_messages', $nb);
$smarty->assign('message', $message);

puis dans mon gabarit je fais un test si nb>0 et je cherche à afficher message

[== Indéfini ==]
{$nb={MonUDT page_alias=$page_alias assign='nb_messages'}}
{$message={MonUDT page_alias=$page_alias assign='message'}

{if $nb>0}
//remplissage du textarea dont le nom est message avec la valeur $message

{FormBuilder form='update_rdv' value_MESSAGE='$message'}}
{/if}

Mais cela ne fonctionne pas je pense que quelque chose m'a échappé et je ne sais pas si c'est jouable de remplir le formBuilder :$

Hors ligne

#7 20/07/2018 09:41:16

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 192
Site Web

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

Bonjour,

En fait la syntaxe :

{$nb={MonUDT ...

ne peut fonctionner qu'avec une variable de retour - le assign est indépendant de la variable de retour dans mon exemple. A noter cependant qu'un tableau peut être retourné, et traité dans smarty.

Mais le plus simple dans ton cas pour deux variables est de traiter deux assign :

{MonUDT page_alias=$page_alias assign_message='message' assign_nb='nb'}

Puis dans l'UDT en PHP :

$smarty->assign($params['assign_nb'], $nb);
$smarty->assign($params['assign_message'], $message);

Ou, si le fait d'assigner dynamiquement le nom de la variable dans la l'UDT est inutile :

$smarty->assign('nb', $nb);
$smarty->assign('message', $message);

Hors ligne

#8 20/07/2018 23:57:29

aurore222
Petit nouveau
Inscription : 12/07/2018
Messages : 8

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

C'est super ! franchement un grand merci

Du coup, ce que je pensais comprendre c'est que je transmettais les variables à smarty et que ça les rendait un peu globale ?
mais du coup si je veux injecter la valeur du message dans un formulaire comme ça : ou ailleurs d'ailleurs

{FormBuilder form='update_rdv' value_MESSAGE='$message'}

la pour le coup ça charge bien le texarea mais avec $message comme contenu.

Pourtant smarty la connait ? et si je fais un {$message} le textarea affiche {$message} ??

je peux faire un {FormBuilder form='update_rdv' assign_message=$message}

Hors ligne

#9 23/07/2018 10:01:07

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 192
Site Web

Re : FormBuilder post vers UDT - affichage du $_POST dans le textarea

La syntaxe dans ce cas n'est pas bonne car tu transmet une valeur de type "string" au lieu du contenu de la variable.
Il faut utiliser cette syntaxe :

{FormBuilder form='update_rdv' value_MESSAGE=$message}

Hors ligne

Pied de page des forums