Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste :

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
fr:tutoriels:jelixnews-1.1:utiliser-dao [2009/03/18 10:15] – édition externe 127.0.0.1fr:tutoriels:jelixnews-1.1:utiliser-dao [2009/03/18 11:37] (Version actuelle) laurent
Ligne 23: Ligne 23:
 </code> </code>
  
-Vous obtenez alors un fichier **actu.org/modules/news/daos/news.dao.xml**. (vous pouvez bien sûr aussi le créer à la main).+Vous obtenez alors un fichier @@F@actu.org/modules/news/daos/news.dao.xml@@. (vous pouvez bien sûr aussi le créer à la main).
  
 Son contenu est le suivant : Son contenu est le suivant :
Ligne 50: Ligne 50:
 ===== Lister les news ===== ===== Lister les news =====
  
-Nous allons maintenant utiliser ce DAO pour récupérer la liste des news. Nous allons donc demander à jDao la factory de ce DAO, et appeler sa méthode **findAll** prédéfinie. Pour ce faire, on fait appel à jDao::get() :+Nous allons maintenant utiliser ce DAO pour récupérer la liste des news. Nous allons donc demander à jDao la factory de ce DAO, et appeler sa méthode @@M@findAll()@@ prédéfinie. Pour ce faire, on fait appel à @@M@jDao::get()@@ :
  
 <code php> <code php>
Ligne 57: Ligne 57:
 </code> </code>
  
-En paramètre de jDao::get(), on donne le sélecteur du DAO (qui a pour nom "news", et dans le module news) : "news~news". Elle nous renvoie la factory de ce DAO. et en appelant la méthode //findAll//, on récupère toute la liste des records.+En paramètre de @@M@jDao::get()@@, on donne le sélecteur du DAO (qui a pour nom "news", et dans le module news) : "news~news". Elle nous renvoie la factory de ce DAO. et en appelant la méthode @@M@findAll()@@, on récupère toute la liste des records.
  
-En fait, il ne s'agit pas vraiment d'une liste, mais d'un objet jDbResultSet, qui est un itérateur sur les résultats de la requête correspondante.+En fait, il ne s'agit pas vraiment d'une liste, mais d'un objet @@C@jDbResultSet@@, qui est un itérateur sur les résultats de la requête correspondante.
  
 Intégrons ça dans notre contrôleur : Intégrons ça dans notre contrôleur :
Ligne 66: Ligne 66:
     function index() {     function index() {
         $rep = $this->getResponse('html');         $rep = $this->getResponse('html');
-        $rep->title = 'Dernières actualités'; +      // on définit un titre de page 
-        $rep->bodyTpl = 'listenews';+      $rep->title = 'Dernières actualités'; 
 +  
 +      // creation d'un objet template pour le contenu spécifique 
 +      $tpl new jTpl(); 
 +  
 +      $fact = jDao::get('news~news'); 
 +      $liste = $fact->findAll();
  
-        $fact = jDao::get('news~news'); +      // on assigne la liste des news dans notre template spécifique 
-        $liste = $fact->findAll(); +      $tpl->assign('liste', $liste); 
- +  
-        $rep->body->assign('liste', $liste);+      // assignation du resultat du template listenews à la variable $MAIN 
 +      $rep->body->assign('MAIN', $tpl->fetch('listenews')); 
  
         return $rep;         return $rep;
Ligne 78: Ligne 85:
 </code> </code>
  
-Comme il a été dit précédemment, la propriété //body// de jResponseHtml est un objet jTpl (moteur de template). On lui donne la liste dans une variable de template "liste", pour pouvoir l'utiliser dans le template. Celui-ci devient donc :+On donne la liste des enregistrement à notre template spécifique à l'action, via une variable de template grâce à la méthode @@M@assign@@. Modifions notre template spécifique @@F@listenews.tpl@@ :
  
 <code> <code>
Ligne 94: Ligne 101:
 Vous découvrez ici le tag de template {foreach}, qui fonctionne exactement comme  le foreach php. Pour afficher des valeurs, il suffit de mettre le nom de la variable de template précédé par un //$//, et encadré par des accolades. Vous découvrez ici le tag de template {foreach}, qui fonctionne exactement comme  le foreach php. Pour afficher des valeurs, il suffit de mettre le nom de la variable de template précédé par un //$//, et encadré par des accolades.
  
-La liste renvoyée par //findAll// est une liste d'objets record, tels qu'ils sont définis dans le fichier XML. Ils ont donc les propriétés //id_news////sujet////texte// et //news_date//.+La liste renvoyée par @@M@findAll@@ est une liste d'objets record, tels qu'ils sont définis dans le fichier XML. Ils ont donc les propriétés @@P@id_news@@@@P@sujet@@@@P@texte@@ et @@P@news_date@@.
  
 Affichez à nouveau la page avec : Affichez à nouveau la page avec :
  
-   http://localhost/jelix/actu.org/www/index.php?module=news&action=default:index+   http://localhost/jelix/actu.org/www/index.php/news/
  
 Vous devriez voir la liste des news. Vous devriez voir la liste des news.
  
-Remarque : si vous avez des problèmes d'affichage des accents, essayez de mettre force_encoding=on dans le fichier dbprofils.ini.php.+Remarque : si vous avez des problèmes d'affichage des accents, essayez de mettre @@force_encoding=on@@ dans le fichier @@F@dbprofils.ini.php@@.
  

fr/tutoriels/jelixnews-1.1/utiliser-dao.1237371338.txt.gz · Dernière modification : 2009/03/18 11:37 (modification externe)

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