Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste : 1.2rc1 1.5.x

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:tutoriels:jelixnews-1.1:crud [2009/03/18 10:15] – édition externe 127.0.0.1fr:tutoriels:jelixnews-1.1:crud [2012/04/14 20:36] (Version actuelle) – [Personnaliser le contrôleur CRUD] laurent
Ligne 24: Ligne 24:
 <code xml> <code xml>
 <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
-<form xmlns="http://jelix.org/ns/forms/1.0">+<form xmlns="http://jelix.org/ns/forms/1.1">
  
-    <input ref="sujet" type="string"> + <input ref="sujet" required="true" maxlength="255"> 
-       <label>sujet</label> +   <label>Sujet</label> 
-    </input>+ </input>
  
-    <input ref="texte" type="string"> +  <textarea ref="texte" required="true"> 
-       <label>texte</label> +    <label>Texte</label> 
-    </input>+  </textarea>
  
-    <input ref="news_date" type="date"> +  <input ref="news_date" required="true" type="date"> 
-       <label>news_date</label> +    <label>News Date</label> 
-    </input+  </input>
- +
-   <submit ref="submit"> +
-      <label>Enregistrer</label> +
-   </submit>+
  
 +  <submit ref="_submit">
 +    <label>ok</label>
 +  </submit>
 </form> </form>
 </code> </code>
Ligne 51: Ligne 50:
 <code xml> <code xml>
 <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
-<form xmlns="http://jelix.org/ns/forms/1.0">+<form xmlns="http://jelix.org/ns/forms/1.1">
  
-    <input ref="sujet" type="stringrequired="true"> + <input ref="sujet" required="truemaxlength="255"> 
-       <label>Sujet de la news</label> +   <label>Sujet de la news</label> 
-    </input>+ </input>
  
-    <input ref="texte" type="string" required="true"> +  <textarea ref="texte" required="true"> 
-       <label>Contenu</label> +    <label>Contenu</label> 
-    </input>+  </textarea>
  
-    <input ref="news_date" type="daterequired="true"> +  <input ref="news_date" required="truetype="date"> 
-       <label>Date</label> +    <label>Date</label> 
-       <hint>Le format de la date est aaaa-mm-jj</hint> +    <hint>Le format de la date est aaaa-mm-jj</hint> 
-    </input+  </input>
- +
-   <submit ref="submit"> +
-      <label>Enregistrer</label> +
-   </submit>+
  
 +  <submit ref="_submit">
 +    <label>ok</label>
 +  </submit>
 </form> </form>
 +
 </code> </code>
  
Ligne 79: Ligne 78:
 ===== Création du contrôleur CRUD ===== ===== Création du contrôleur CRUD =====
  
-Créons le fichier modules/news/controllers/admin.classic.php, et commençons à y écrire un contrôleur pour faire une gestion de news :+Créons le fichier @@F@modules/news/controllers/admin.classic.php@@, et commençons à y écrire un contrôleur pour faire une gestion de news :
  
 <code php> <code php>
Ligne 91: Ligne 90:
 </code> </code>
  
-Le contrôleur n'hérite pas de jController, mais de jControllerDaoCrud. C'est un contrôleur qui contient un ensemble d'actions prédéfinies. Il suffit alors de compléter certaines informations dans ses propriétés pour que la gestion des news soit opérationnelle.+Le contrôleur n'hérite pas de @@C@jController@@, mais de @@C@jControllerDaoCrud@@. C'est un contrôleur qui contient un ensemble d'actions prédéfinies. Il suffit alors de compléter certaines informations dans ses propriétés pour que la gestion des news soit opérationnelle.
  
 En principe, dans un premier temps, indiquer le dao et le formulaire à utiliser suffit : En principe, dans un premier temps, indiquer le dao et le formulaire à utiliser suffit :
Ligne 109: Ligne 108:
 </code> </code>
  
-Lancez maintenant dans votre navigateur : http://localhost/jelix/actu.org/www/index.php?module=news&action=admin:index+Lancez maintenant dans votre navigateur : http://localhost/jelix/actu.org/www/index.php/news/admin/. Vous devriez obtenir une liste de news avec des liens pour les voir, un lien pour créer un nouvel enregistrement etc.. Bref, une véritable gestion opérationnelle des news.
  
-Vous devriez obtenir... une page blanche !+===== Personnaliser le contrôleur CRUD =====
  
-En effet, le controlleur CRUD s'attend à ce que la réponse HTML qu'il récupère est un objet déjà préparé par l'applicationet disponible pour toutes les actions (comme il est indiqué sur la [[fr:manuel-1.0:traitements_communs|page de la personnalisation des réponses communes]]). Mais nous n'avons pas vu ça encore dans le tutoriel, il faut donc redéfinir une méthode du contrôleur pour préparer la réponse HTML. +Si on veut changer des propriétés de la réponse HTML par défaut, qui, dans notre cas, est la classe @@C@myHtmlResponse@@, il faut redéfinir la méthode @@M@_getResponse@@, spécifique à @@C@jControllerDaoCrud@@. On va ici indiquer un titre de page.
- +
-Il s'agit de la méthode _getResponse, spécifique à jControllerDaoCrud. On va donc préparer un objet jResponseHTML en indiquant un titre de page, un template pour le body...+
  
 <code php> <code php>
Ligne 127: Ligne 124:
     protected function _getResponse(){     protected function _getResponse(){
         $rep = $this->getResponse('html');         $rep = $this->getResponse('html');
-        $rep->title = "gestion des news"; +        $rep->title = "Gestion des news";
-        $rep->bodyTpl = "admin_news";+
         return $rep;         return $rep;
     }     }
Ligne 135: Ligne 131:
 </code> </code>
  
-Il ne faut pas oublier de créer le template que l'on vient d'indiquer, modules/news/templates/admin_news.tpl :+On peut aussi redéfinir les templates pour chaque page du contrôleur CRUD. Par défaut, le contrôleur CRUD utilise ceux fourni par le module jelix. Par exemplecréons un template pour la liste des news. Recopions le template @@F@lib/jelix/core-modules/jelix/templates/crud_list.tpl@@ dans @@F@actu.org/modules/news/templates@@ et changeons par exemple le titre en @@E@<h1>@@: 
  
 <code html> <code html>
-  <h1>Gestion des news</h1>+<h1>Gestion des news</h1
 +... 
 +</code>
  
-  {$MAIN}+On va ensuite indiquer ce template au contrôleur:
  
-  <hr /+<code php
-  <div><a href="{jurl 'news~default:index'}">Retour à l'accueil</a></div>+<?php 
 + 
 +class adminCtrl extends jControllerDaoCrud { 
 + 
 +    protected $dao = 'news~news'
 +    protected $form = 'news~newsform'; 
 + 
 +    protected $listTemplate = 'news~crud_list'; 
 +... 
 +
 +?>
 </code> </code>
  
-Maintenant vous pouvez relancer http://localhost/jelix/actu.org/www/index.php?module=news&action=admin:index, et vous devriez voir la liste des news, avec des liens pour les modifier, les effacer etc... 
  
-Vous pouvez personnaliser cette affichageen fournissant les templates propres à l'édition, au listage, en indiquant le nombre d'items par page dans la liste des news etc... +Maintenant vous pouvez relancer http://localhost/jelix/actu.org/www/index.php/news/admin/, et vous devriez voir votre nouveau template. 
 + 
 +Pour personnaliser encore plusvoir le [[http://docs.jelix.org/fr/manuel-1.1/controleurs/crud|chapitre sur le contrôleur CRUD dans le manuel]].
  
  
Ligne 159: Ligne 169:
 </code> </code>
  
-Et ensuite, on peut directement appeler la page correspondante site.com/index.php?module=le_module&action=default:le_nom_de_la_table pour voir le résultat.+Et ensuite, on peut directement appeler la page correspondante site.com/index.php/le_module/default/le_nom_de_la_table pour voir le résultat.
  

fr/tutoriels/jelixnews-1.1/crud.1237371338.txt.gz · Dernière modification : 2009/03/18 12:05 (modification externe)

Fils rss des changements récents dans le wiki Creative Commons License