> Hello_You_Strikes_back__
fr

Index
    - 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');
}