FormBuilder post vers UDT - affichage du $_POST dans le textarea - Version imprimable +- Forum CMS Made Simple FR (https://www.cmsmadesimple.fr/forum) +-- Forum : Ressources (https://www.cmsmadesimple.fr/forum/forum-4.html) +--- Forum : Développement et Astuces (https://www.cmsmadesimple.fr/forum/forum-15.html) +--- Sujet : FormBuilder post vers UDT - affichage du $_POST dans le textarea (/thread-4157.html) |
FormBuilder post vers UDT - affichage du $_POST dans le textarea - aurore222 - 18/07/2018 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. FormBuilder post vers UDT - affichage du $_POST dans le textarea - aurore222 - 18/07/2018 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 FormBuilder post vers UDT - affichage du $_POST dans le textarea - airelibre - 19/07/2018 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 : Code : {MonUDT page_alias=$page_alias} Code de l'UDT : Code : $page_alias = $params['page_alias']; Cela répond-il à ta question ? FormBuilder post vers UDT - affichage du $_POST dans le textarea - aurore222 - 19/07/2018 Oui c'est parfait. Merci beaucoup 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 Code : [== Indéfini ==] ... j'ai essayé de la passer en global ou autre mais je ne trouve pas Merci d'avance. FormBuilder post vers UDT - affichage du $_POST dans le textarea - airelibre - 19/07/2018 Dans ce cas il faut renvoyer la variable à Smarty Exemple 1 Code : {$nb_message={MonUDT page_alias=$page_alias}} Exemple 2 dans l'UDT : Code : $smarty->assign('nb_messages', $nb); Voire même définir le nom de la variable lors de l'appel de l'UDT : Code : $smarty->assign($params['assign'], $nb); Dis-nous si c'est ok pour toi ? FormBuilder post vers UDT - affichage du $_POST dans le textarea - aurore222 - 19/07/2018 Bonsoir AirLibre et merci 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 Code : ... puis dans mon gabarit je fais un test si nb>0 et je cherche à afficher message Code : [== Indéfini ==] 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 :$ FormBuilder post vers UDT - affichage du $_POST dans le textarea - airelibre - 20/07/2018 Bonjour, En fait la syntaxe : Code : {$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 : Code : {MonUDT page_alias=$page_alias assign_message='message' assign_nb='nb'} Code : $smarty->assign($params['assign_nb'], $nb); Ou, si le fait d'assigner dynamiquement le nom de la variable dans la l'UDT est inutile : Code : $smarty->assign('nb', $nb); FormBuilder post vers UDT - affichage du $_POST dans le textarea - aurore222 - 20/07/2018 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 Code : {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} FormBuilder post vers UDT - affichage du $_POST dans le textarea - airelibre - 23/07/2018 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 : Code : {FormBuilder form='update_rdv' value_MESSAGE=$message} |