Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2011, 10h05   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 4
Points : 1
Points : 1
Par défaut Smarty 3.0.8 | Formulaires et Plugins ?

Bonjour,
Je suis débutant Smarty et je souhaiterais retranscrire proprement un Formulaire Php en Smarty. J'ai déjà lu les post du Forum a ce sujet, cependant étant donné que j'utilise les Plugins je n'arrive pas a touver de solutions pour le moment.

Voici dans mon TPL Mon Formulaire Simplifié :

Code :
1
2
3
4
5
6
7
8
9
<form method="post" action="{contact Nom=$Nom}">			
<table>
	<tr class="TR2Circuit">
			<td><p class="CorpTexteCon">Nom</p></td>
			<td><input name="Nom" size="25" type="text"></td>
	</tr>
</table>
</form>
Mon Fichier TPL fait donc appel a un Plugins du Nom de "contact" si j'ai tout compris.

Voici mon fichier function.contact.php dans mon répertoire Plugins :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.contact.php
 * Type:     function
 * Name:     contact
 * Purpose:  Envoi d'un formulaire de Contact/Réservation
 * -------------------------------------------------------------
 */
 
 
 function smarty_function_contact($params, &$smarty)
{
	$nom = $smarty->get_template_vars($params['Nom']); 
	if($nom = 'Toto')
        $output = "Ok!";
 
    return $output;
}
?>

Mes erreur Affichées :
- Undefined variable: Nom
- function call 'get_template_vars' is unknown or deprecated.

J'en ai déduit que la Fonction get_template_vars n'existe plus ou que je ne sait pas m'en servir et que je n'arrive pas a faire communiquer mon Formulaire TPL et mon Fichier function.contact.php.

Je remercie d'avance tout ceux qui ce seront penchés sur mon problème.
Cordialement,
Jaz.
Krooon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 14h06   #2
Invité de passage
 
Inscription : janvier 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 4
Points : 1
Points : 1
Par défaut Solution Provisoire

Bonjour,
J'ai effectué quelques recherches et j'ai trouvé une solution provisoire que je viens partager.

Page Contact.TPL :
Code :
1
2
3
4
5
6
7
8
9
10
 
<form method="post" action="Envoyer.php">			
				<table>
					<tr class="TR2Circuit">
						<td><p class="CorpTexteCon">Nom</p></td>
						<td><input name="Nom" size="25" type="text"></td>
					</tr>
 
				</table>
			</form>
Ici j'envoie donc mon Formulaire a une autre Page de mon site qui est : Envoyer.php

Ma page Envoyer.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
if(isset($_POST['Nom'])) 
{
$Nom=$_POST['Nom'];
$oSmarty->assign('Names', $Nom);
}
else
{
$Nom="Pas de Nom";
$oSmarty->assign('Names', $Nom);
}
Ma page traite la réception de la variable. Si il y a une variable dans mon formulaire alors on attribue a "Names" la Variable en question. Sinon on lui attribue "Pas de Nom" en cas de non recption de la variable.

dans ma page Envoyer.TPL :
Code :
1
2
3
4
 
		<div class="TableVContact">
		{$Names}
		</div>
Ici j'affiche ma Variable.
Comme dit dans le titre c'est une solution temporaire que j'ai trouvé. J'aimerais tout de méme savoir si il est possible de le faire via les Plugins Smarty ce qui serait quand méme Beaucoup plus propre.

Cordialement,
Jaz
Krooon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 21h34   #3
Expert Confirmé
 
Avatar de krachik
 
Inscription : décembre 2004
Messages : 1 957
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 957
Points : 2 646
Points : 2 646
Bonjour,

Pourquoi as-tu besoin d'un plugin pour faire un simple traitement sur un formulaire?
Si c'est tout le traitement que tu fais dans Envoyer.php alors tu peux te passer de ce fichier et faire ce traitement directement dans le fichier tpl. Je te donne un exemple
Code :
1
2
3
4
5
6
7
{if isset($oSmarty.post.btValider)}
   {if $oSmarty.post.nom !=''}
      {$oSmarty.post.nom}
   {else}
      Pas de Nom
    {/if}
{/if}
btValider étant ton bouton de soumission que tu as sans doute oublié
Après tu peux assigner une variable {$Names} dans le template si tu traites sous plusieurs conditions.

Après tout dépend aussi de l'architecture de ton système et etc
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
krachik est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h46.


 
 
 
 
Partenaires

Hébergement Web