- Introduction
- Commençons par les templates
- Le formulaire
- Hello !
- Implémentation des actions
Introduction
Si vous avez suivi le tutoriel Hello you !, alors vous êtes prêts pour ce nouveau défi.
Le but ici est de proposer un formulaire permettant de saisir le nom de l'internaute afin de lui souhaiter la bienvenue par la suite.
Commençons par les templates
Le formulaire
Vous pouvez copier ce code dans un fichier formulaire.tpl, à mettre dans le répertoire templates du module :
<form action="{copixurl dest="default|hello|someone"}" method="POST">
<input type="text" name="someone" value="" /><br />
<input type="submit" value="Envoyer" />
</form>
L'élément nouveau dans ce formulaire est l'utilisation d'une balise Smarty {copixurl}. Les balises Smarty permettent de réaliser dans les templates des tâches courantes (affichage d'un calendrier, mise en majuscule, liste déroulante, ..., ...).
Ici, {copixurl} permet de générer l'URL permettant d'aller à la page du module default, dans l'ActionGroup hello pour y chercher l'action someone.
Une chose interressante est que nous utilisons systématiquement "POST" pour les formulaires dans Copix, pour des raisons de compatibilité avec certains navigateurs.
Hello !
Le template Hello est le même que nous avons utilisé précédemment, pour rappel :
<p>Hello {$ppo->name}</p>
Implémentation des actions
Reprenons notre ActionGroupHello et ajoutons les actions formulaire et someone
/**
* Affichage du formulaire pour demander le nom de l'utilisateur
*/
function processFormulaire (){
return _arPpo (new CopixPPO (), 'formulaire.tpl');
}
/**
* Affichage du formulaire pour demander le nom de l'utilisateur
*/
function processSomeone (){
//création de l'objet de données
$ppo = new CopixPPO ();
//On récupère la valeur du champ someone du fomulaire. Ici, on utilise getAlphaNum pour s'assurer de ne récupérer que les caractères AlphaNumériques.
$ppo->name = CopixRequest::getAlphaNum ('someone');
//demande d'affichage des données
return _arPpo ($ppo, 'hello.tpl');
}

