From 654a9cae43358c7eecf3b522e9876aa7815e2453 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 7 Dec 2015 15:57:51 +0100 Subject: Move urls from pradosoft.com to github's project page; drop unmaintained quickstart tutorial translations --- .../protected/pages/Day3/fr/CreateEditUser.page | 215 --------------------- 1 file changed, 215 deletions(-) delete mode 100755 demos/blog-tutorial/protected/pages/Day3/fr/CreateEditUser.page (limited to 'demos/blog-tutorial/protected/pages/Day3/fr/CreateEditUser.page') diff --git a/demos/blog-tutorial/protected/pages/Day3/fr/CreateEditUser.page b/demos/blog-tutorial/protected/pages/Day3/fr/CreateEditUser.page deleted file mode 100755 index db410253..00000000 --- a/demos/blog-tutorial/protected/pages/Day3/fr/CreateEditUser.page +++ /dev/null @@ -1,215 +0,0 @@ - - -

Création de la page de mise à jour des utilisateurs EditUser

- -

-La page EditUser ressemble beaucoup à la page NewUser. La différence principale est le fait que lorsque la page EditUser est requise, les champs sont renseignés avec les données de l'utilisateur en cours. Une autre différence est que la page EditUser est accessible à un utilisateur standard. -

- -

-Pour définir quels sont les comptes qui peuvent être modifiés, nous allons utiliser les règles suivantes : -

- - -

-Nous créons deux fichiers protected/pages/users/EditUser.page et protected/pages/users/EditUser.php qui contiendront respectivement le gabarit et la classe. -

- -

Création du gabarit

-

-Comme vous avez pu le deviner, la page EditUser est fortement ressemblante à la page NewUser. En dehors du titre de la page et du bouton "envoyer", il y a trois différences principales. -

- - - - - -<%@ Title="Mon blog - Mise à jour utilisateur" %> - -<com:TContent ID="Main"> - -

Mise à jour utilisateur

- -Pseudo: -<com:TLabel ID="Username" /> - -
-Mot de passe: -
-<com:TTextBox ID="Password" TextMode="Password" /> - -
-Confirmation mot de passe: -<com:TCompareValidator - ControlToValidate="Password" - ControlToCompare="Password2" - ErrorMessage="Différence entre le mot de passe et la confirmation." - Display="Dynamic" /> -
-<com:TTextBox ID="Password2" TextMode="Password" /> - -
-Email: -<com:TRequiredFieldValidator - ControlToValidate="Email" - ErrorMessage="Veuillez indiquer votre email." - Display="Dynamic" /> -<com:TEmailAddressValidator - ControlToValidate="Email" - ErrorMessage="Vous avez indiqué un email invalide." - Display="Dynamic" /> -
-<com:TTextBox ID="Email" /> - -<com:TControl Visible="<%= $this->User->IsAdmin %>"> -
-Role: -
-<com:TDropDownList ID="Role"> - <com:TListItem Text="Utilisateur standard" Value="0" /> - <com:TListItem Text="Administrateur" Value="1" /> -</com:TDropDownList> -</com:TControl> - -
-Prénom: -
-<com:TTextBox ID="FirstName" /> - -
-Nom: -
-<com:TTextBox ID="LastName" /> - -
-<com:TButton Text="Enregistrer" OnClick="saveButtonClicked" /> - -</com:TContent> -
- - -

Création du fichier de classe

- - -

-En suivant les indications du gabarit, nous devons écrire une page de classe qui initialise les champs avec les données de l'utilisateur. De plus, la classe doit implémenter la méthode saveButtonClicked() appelée par l'évènement OnClick du bouton "Enregistrer". -

- - -class EditUser extends TPage -{ - /** - * Initialise les champs avec les données de l'utilisateur. - * Cette méthode est appelée par le framework lorsque la page est initialisée. - * @param mixed param : paramètres de l'évènement - */ - public function onInit($param) - { - parent::onInit($param); - if(!$this->IsPostBack) // est-ce que c'est le premier appel à la page - { - // Lit les informations de l'utilisateur. C'est équivalent à : - // $userRecord=$this->getUserRecord(); - $userRecord=$this->UserRecord; - - // Rempli les contrôles avec les données de l'utilisateur - $this->Username->Text=$userRecord->username; - $this->Email->Text=$userRecord->email; - $this->Role->SelectedValue=$userRecord->role; - $this->FirstName->Text=$userRecord->first_name; - $this->LastName->Text=$userRecord->last_name; - } - } - - /** - * Enregistre les modifications si tous les validateurs sont Ok. - * Cette méthode répond à l'évènement OnClick du bouton "Enregistrer". - * @param mixed sender : celui qui a généré l'évènement - * @param mixed param : paramètres de l'évènement - */ - public function saveButtonClicked($sender,$param) - { - if($this->IsValid) // toutes les validations Ok ? - { - // Lit les informations de l'utilisateur. - $userRecord=$this->UserRecord; - - // Enresgistre les valeurs dans les champs de la BDD - $userRecord->username=$this->Username->Text; - // mets à jour le mot de passe s'il n'est pas vide - if(!empty($this->Password->Text)) - $userRecord->password=$this->Password->Text; - $userRecord->email=$this->Email->Text; - // mets à jour le rôle si l'utilisateur actuel est un administrateur - if($this->User->IsAdmin) - $userRecord->role=(int)$this->Role->SelectedValue; - $userRecord->first_name=$this->FirstName->Text; - $userRecord->last_name=$this->LastName->Text; - - // enregistre les modifications dans la BDD - $userRecord->save(); - - // redirige vers la page d'accueil - $this->Response->redirect($this->Service->DefaultPageUrl); - } - } - - /** - * Retourne l'utilisateur qui doit être mis à jour. - * @return UserRecord l'utilisateur qui doit être modifié. - * @throws THttpException si l'utilisateur n'existe pas. - */ - protected function getUserRecord() - { - // l'utilisateur à modifié est l'utilisateur actuellement connecté - $username=$this->User->Name; - // si la variable GET 'username' n'est pas vide et que l'utilisateur actuel - // est un administrateur, nous utilisons la variable GET à la place - if($this->User->IsAdmin && $this->Request['username']!==null) - $username=$this->Request['username']; - - // lit les données de l'utilisateur par Active Record - $userRecord=UserRecord::finder()->findByPk($username); - if(!($userRecord instanceof UserRecord)) - throw new THttpException(500,'Username is invalid.'); - return $userRecord; - } -} - - - -La méthode onInit() est appelée par PRADO lors du cycle de vie de la page. Les autres méthodes couramment surchargées sont onPreInit(), onLoad() et onPreRender(). - - -

Ajout de la vérification des droits d'accès

-

-Pour rendre la page EditUser accessible également par les utilisateurs authentifiés (users="@"), nous devons modifier le fichier de configuration protected/pages/users/config.xml. -

- - - - - - - - - - - - -

Test

- -

-Pour tester la page EditUser, rendons-nous à l'URL http://hostname/blog/index.php?page=users.EditUser&username=demo. Il vous sera peut-être demandé de vous authentifier auparavant si vous n'êtes pas déjà connecté. Essayez de vous connecter avec différents comptes (ie: admin/demo, demo/demo) et remarquez comment la page évolue différemment. -

- - -
\ No newline at end of file -- cgit v1.2.3