Pour la date, ça devrait effectivement être géré dans le controlleur, je modifie ça.
Pour la vue partagée, j'ai l'impression qu'utiliser un partial ne changerait rien puisqu'il faudrait toujours l'inclure dans la vue de index (ce qui est déjà le cas avec la condition sur le controlleur).
Si ca peut aider, voici mes controlleurs :
Index :
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
|
class IndexController extends Zend_Controller_Action
{
public function indexAction() // Index : Affichage de toutes les news
{
$this->view->title = "News";
$this->view->headTitle($this->view->title, 'APPEND');
$news = new Model_DbTable_News(); // Création d'un objet Db_Table
$this->view->news = $news->fetchAll(); // Récupération de toutes les données de la table désignée par Model_DbTable_News (ie la table news) + Passage des données à la vue
}
public function addAction()
{
// Code controlleur action
}
public function modifyAction()
{
// Code controlleur action
}
public function deleteAction()
{
// Code controlleur action
}
} |
Admin
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
|
class AdminController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
public function newsAction()
{
}
public function newslistAction()
{
// On récupère le nom du controller et de l'action en cours pour modifier la vue en fonction de leur valeur (ie on affiche les liens modifier et supprimer si on accède aux news depuis la zone admin)
$this->view->controller = $this->getRequest()->getControllerName();
$this->view->action = $this->getRequest()->getActionName();
}
} |
Les vues correspondantes :
admin/index :
1 2 3 4
|
<h1>Zone d'administration</h1>
<a href="<?php echo $this->url(array('controller'=>'admin','action'=>'news'));?>">Gérer les News</a><br /><br /> |
admin/news :
1 2 3 4 5
| <h1>Gestion des actualités</h1>
<a href="<?php echo $this->url(array('controller'=>'index','action'=>'add'));?>">Ajouter une Actualité</a>
<a href="<?php echo $this->url(array('controller'=>'admin','action'=>'newslist'));?>">Modifier ou Supprimer une Actualité</a> |
admin/newslist :
<?php echo $this->action('index', 'index'); ?>
Je me demande s'il ne serait pas plus simple de supprimer l'action newslist de admin et de modifier le lien de admin/news. Faire pointer ce dernier vers index/index et passer une variable user qui vaut admin. Il ne resterait alors qu'à modifier
1 2
|
"if($this->controller == 'admin' AND $this->action == 'newslist') {" en if($user == 'admin'). |
Partager