summaryrefslogtreecommitdiff
path: root/demos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page
diff options
context:
space:
mode:
Diffstat (limited to 'demos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page')
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page136
1 files changed, 0 insertions, 136 deletions
diff --git a/demos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page b/demos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page
deleted file mode 100755
index 09220322..00000000
--- a/demos/blog-tutorial/protected/pages/Day4/fr/CreateEditPost.page
+++ /dev/null
@@ -1,136 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Création de la page modification d'un message <tt>EditPost</tt></h1>
-
-
-<p>
-La page <tt>EditPost</tt> est fournie aux auteurs et administrateurs pour modifier les messages. Comme la page <a href="?page=Day4.CreateNewPost">NewPost</a>, elle affiche un formulaire permettant de modifier les données d'un message.
-</p>
-
-
-<p>
-Nous créons deux fichiers <tt>protected/pages/posts/EditPost.page</tt> et <tt>protected/pages/posts/EditPost.php</tt> contenant respectivement le gabarit et la classe de notre page.
-</p>
-
-<h2>Création du gabarit</h2>
-<p>
-Le gabarit de la page <tt>EditPost</tt> est très proche de celui de la page <tt>NewPost</tt> template. Seul le titre et le texte du bouton sont différents.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-&lt;%@ Title="Mon Blog - Modification Message" %>
-
-&lt;com:TContent ID="Main">
-
-<h1>Modification message</h1>
-
-<span>Titre:</span>
-&lt;com:TRequiredFieldValidator
- ControlToValidate="TitleEdit"
- ErrorMessage="Veuillez indiquer un titre."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="TitleEdit" Columns="50" />
-
-<br/>
-<span>Message:</span>
-&lt;com:TRequiredFieldValidator
- ControlToValidate="ContentEdit"
- ErrorMessage="Veuillez indiquer le contenu du message."
- Display="Dynamic" />
-<br/>
-&lt;com:THtmlArea ID="ContentEdit" />
-
-<br/>
-&lt;com:TButton Text="Enregistrer" OnClick="saveButtonClicked" />
-
-&lt;/com:TContent>
-</com:TTextHighlighter>
-
-
-<h2>Création du fichier de classe</h2>
-
-
-<p>
-La classe de <tt>EditPage</tt> est un peu plus complexe que celle de la page <tt>NewPage</tt> parce qu'elle doit lire les informations auparavant. Elle doit aussi vérifier les autorisations. En particulier, elle doit s'assurer que le message ne puisse être modifié que par l'auteur ou par un administrateur. Ces vérifications d'autorisation ne sont pas fournies par PRADO.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="php">
-class EditPost extends TPage
-{
- /**
- * initialise les contrôles de saisies avec les données du message.
- * cette méthode est appelée lors de l'initialisation de la page
- * @param mixed param : paramètres de l'évènement
- */
- public function onInit($param)
- {
- parent::onInit($param);
- // récupère les données de l'utilisateur. Equivalent à:
- // $postRecord=$this->getPost();
- $postRecord=$this->Post;
- // vérification des droits: seul l'auteur ou un administrateur peuvent modifier le message
- if($postRecord->author_id!==$this->User->Name && !$this->User->IsAdmin)
- throw new THttpException(500,'Vous n êtes pas autoriser à modifier ce message.');
-
- if(!$this->IsPostBack) // est-ce le premier appel à la page
- {
- // rempli les contrôles avec les données du message
- $this->TitleEdit->Text=$postRecord->title;
- $this->ContentEdit->Text=$postRecord->content;
- }
- }
-
- /**
- * Enregistre si toutes les validations 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 sont ok ?
- {
- // récupère les données de l'utilisateur. Equivalent à:
- // $postRecord=$this->getPost();
- $postRecord=$this->Post;
-
- // affecte les données saisies aux champs de la BDD
- $postRecord->title=$this->TitleEdit->SafeText;
- $postRecord->content=$this->ContentEdit->SafeText;
-
- // enregistre les données par la méthode save de l'Active Record
- $postRecord->save();
-
- // redirige le navigateur vers la page ReadPost
- $url=$this->Service->constructUrl('posts.ReadPost',array('id'=>$postRecord->post_id));
- $this->Response->redirect($url);
- }
- }
-
- /**
- * retourne les données du message devant être modifiées.
- * @return PostRecord les données devant être modifiés.
- * @throws THttpException si le message est inexistant.
- */
- protected function getPost()
- {
- // l'ID du message devant être modifié passé par un paramètre GET
- $postID=(int)$this->Request['id'];
- // utilise Active Record pour lire le message correspondant à cet ID
- $postRecord=PostRecord::finder()->findByPk($postID);
- if($postRecord===null)
- throw new THttpException(500,'Message inexistant.');
- return $postRecord;
- }
-}
-</com:TTextHighlighter>
-
-<h2>Test</h2>
-<p>
-Pour tester notre page <tt>EditPost</tt>, authentifiez-vous auparavant et allez à l'URL <tt>http://hostname/blog/index.php?page=EditPost&id=1</tt>. Cette URL peut aussi être atteinte par le bouton <tt>Modifier</tt> de notre page de détail.
-</p>
-
-<img src="<%~ output4.gif %>" class="output" />
-
-</com:TContent> \ No newline at end of file