Bonjour,
Je post ici un code que j'ai développé qui permet de créer le chemin de fer sur un site.
étant débutant avec le modèle MVC et zend framework, j'attend de vous de me dire ou sont mes erreurs dans la construction. Par exemple, à savoir si la boucle while qui construit le chemin, ne devrait pas plutôt se situé dans la vue, et non le controleur. Toutes vos critiques sont bonne à prendre!
comme je n'ai vu que très peu de code concernant la création d'un chemin de fer, ca pourra peut-être aider certaine personne
table.sql
zendf\application\controllers\IndexController.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE `pages` ( `Id` INT NOT NULL AUTO_INCREMENT , `Id_page` VARCHAR(255) NOT NULL , `Titre` VARCHAR( 255 ) NOT NULL , `Mots_cles` VARCHAR( 255 ) NOT NULL , `Description` VARCHAR( 255 ) NOT NULL , `Contenu` TEXT NOT NULL , `Id_parent` VARCHAR(255) NOT NULL , PRIMARY KEY ( `Id` ) );
zendf\application\models\Pages.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class IndexController extends Zend_Controller_Action { function cheminAction() { $this->view->title="chemin"; // instanciation $pages = new Pages(); // je récupère la vue ou je me situe $vue = basename($_SERVER['REQUEST_URI']); $vue == "public" ? $Id_page="index" : $Id_page = $vue; // initialisation des variables a vide $chemin = $Id_parent = ""; // tant que while($Id_parent != 'end') { // j'exécute un select sur la page ou je me situe $this->view->chemin = $pages->getPages($Id_page); // je récupère le titre de la page $chemin_page_en_cours = '<a href=' . $this->view->url(array("controller"=>"index","action"=>"$Id_page")) .'>'.$this->view->chemin[0]->Titre.'</a>'; // si je ne suis pas sur la page d'acceuil // alors il y a une page précédente donc j'insère ma fèche if($Id_page != 'index') { $chemin_page_en_cours=" » ".$chemin_page_en_cours; } // je concatene $chemin = $chemin_page_en_cours.$chemin; // je récupere l'id parent, le noeud auquel est rataché ma page $Id_page = $Id_parent = $this->view->chemin[0]->Id_parent; } $this->view->chemin = $chemin; } }
zendf\application\views\scripts\index\chemin.phtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Pages extends Zend_Db_Table{ public function getPages($idpage) { $select = $this->select(); $select->from('pages'); $select->where('Id_page = ? ',$idpage); $res = $this->fetchAll($select); return $res; } }
J'attend vos avis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php echo $this->chemin; ?>![]()
Partager