Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-03-2010 13:41:16

lesdoudous
Membre
Lieu: Paris, France
Date d'inscription: 24-10-2009
Messages: 27

Gestion des blocs

Bonjour à tous,


Ayant entamé la migration d'un portail vers Zend, j'ai une question pour laquelle je suis surpris de ne pas trouver de réponse.


Des blocs sont souvent identiques d'une page à l'autre sur un portail.
Par exemple, je souhaite créer un fil d'actualités sur le côté : un endroit est réservé dans le layout à cet effet.

En revanche, l'affichage du bloc dépend du layout. En d'autres termes, certaines pages affichent ce bloc, d'autres non.

Je n'ai pas trouvé d'autre moyen pour le moment que d'inclure dans chaque action de chaque controller concerné un appel vers la fonction qui fetch les dernières actus et qui l'envoie à la vue qui l envoie au "partial".

C'est trop alambiqué à mon gout, et j'imagine qu'il existe une manière plus simple de faire ?


PS : désolé si le sujet du topic n'est pas clair, j'ai pas trouvé mieux...


Recrute 2 développeurs Zend expérimentés pour du développement d'applications métier... ==> MP !

Hors ligne

 

#2 20-03-2010 14:04:12

zed
Membre
Date d'inscription: 28-01-2010
Messages: 27

Re: Gestion des blocs

je débute avec zend, mais si j'ai cerné ton problème tu voudrais afficher ton bloque d'actualité qu'une seule fois et à partir de ton layout.

Pour cela créer toi un helper qui au aura pour but d'afficher les dernières actualités.

Hors ligne

 

#3 20-03-2010 14:52:36

lesdoudous
Membre
Lieu: Paris, France
Date d'inscription: 24-10-2009
Messages: 27

Re: Gestion des blocs

Salut smile

J'ai été regarder du côté de la doc sur "view helper" et "action helper", je ne comprends pas bien en quoi ca peut résoudre le problème sad (j'ai pu rater qq chose).

Mon souhait est de pouvoir générer mon bloc actualités sans à chaque fois rappeler dans l'action du controller pour le passer à la vue.

Je voudrais pouvoir appeler le bloc dans la vue via partial, et que la génération de la requete etc soit faite de manière automatique.


Recrute 2 développeurs Zend expérimentés pour du développement d'applications métier... ==> MP !

Hors ligne

 

#4 20-03-2010 17:53:56

zed
Membre
Date d'inscription: 28-01-2010
Messages: 27

Re: Gestion des blocs

ben les aides de vues te permettent de faire ceci.
Dans ton layout tu n'auras qu'à indiquer $this->actualite() par exemple. Et c'est dans ton script de ton helper que tu fais retourner ce que tu veux. Donc ici le resultat d'une requete soit les 5 dernieres actualités.

fichier Actualite.php

<?php 

class Zend_View_Helper_Actualite extends Zend_View_Helper_Abstract {
   
    public function actualite() {

// ton traitement

}

}

ce fichier dans mon arborescence ce trouve:
/application
->/views
->->/helpers
->->->Actualite.php


et dans mon bootstrap j'ai ceci:

protected function _initView()
    {
        // Initialisation de la vue et des helpers de vue
        $view = new Zend_View();
        $view->doctype('XHTML1_STRICT');
    $view->headTitle('titre');
                      // On ajoute le dossier des helpers
        $view->addHelperPath(APPLICATION_PATH . '/views/helpers');
                      // On charge l'helper qui va se charger de la vue
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        $viewRenderer->setView($view);
        return $view;
    }


voilou je sais pas si cela pourra t'aider, dis moi quoi si tu as des soucis.

Hors ligne

 

#5 22-03-2010 21:06:56

lesdoudous
Membre
Lieu: Paris, France
Date d'inscription: 24-10-2009
Messages: 27

Re: Gestion des blocs

Salut,


Ca m'a l'air d'être ce dont j'ai besoin.
Je te remercie !!

Je teste ca et reviendrai par ici ensuite smile


Recrute 2 développeurs Zend expérimentés pour du développement d'applications métier... ==> MP !

Hors ligne

 

#6 22-03-2010 22:30:52

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: Gestion des blocs

$this->action($module, $controller, $action, array('nomparam' => $param1, ...)) est ton ami smile
c'est une aide de vue qui fait déjà sa et elle est intégrée à Zend.

Hors ligne

 

#7 23-03-2010 08:33:35

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Gestion des blocs

@lesdoudou :
Effectivement tu peux mutualiser des traitements avec des aides de vues, mais dans ton cas, je pense que le plus adapté c'est d'utiliser la conjonction de 2 éléments : Zend_Layout et les ActionStack :

Zend_Layout : ça divise ta page en plusieurs zones. Tu peux avoir plusieurs layouts et choisir ton layout en fonction de la page demandée (ce qui te permet de supprimer ton bloc de news en cas de besoin)
http://framework.zend.com/manual/en/zend.layout.html

Les ActionStack sont des Plugins et Helpers (pas de vue, des helpers d'action) qui te permettent de lancer plusieurs actions dans une seule page (et donc notamment de lancer l'action nécessaire pour afficher un bloc donné de ton layout).
La doc pour les actionstack est un peu répartie partout dans la doc :
http://framework.zend.com/manual/1.10/e … ctionstack
http://framework.zend.com/manual/1.10/e … ctionstack

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages