Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-05-2008 15:28:02

foxmask
Membre
Date d'inscription: 18-05-2008
Messages: 13
Site web

gere des themes

bonjour,
pour gérer des thèmes, faut-il utiliser dans le bootstrap des layoutPath différents selon le thèmes  ?.

Code:

Zend_Layout::startMvc(array('layoutPath'=>'../apps/layouts_theme1'));

Code:

Zend_Layout::startMvc(array('layoutPath'=>'../apps/layouts_theme2'));

de plus j'aimerai aussi pouvoir les définir par modules par exemple :

apps/modules/news/views/theme1
apps/modules/news/views/theme2

mais là je ne sais pas comment indiquer à ZF où aller chercher les templates pour le theme1

Comment fait-on d'ordinaire ?

Cdt.

Hors ligne

 

#2 22-05-2008 20:24:32

foxmask
Membre
Date d'inscription: 18-05-2008
Messages: 13
Site web

Re: gere des themes

bonsoir, une petite suggestion des pro ?
cdT.

Hors ligne

 

#3 23-05-2008 08:21:48

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: gere des themes

Je ne suis pas pro mais pour ne pas te laisser dans le blanc, je vais quand même écrire quelque chose. Avant tout, ou en es-tu dans ta compréhension de Zend_Layout ?

Le principe de base est assez basique, bien que ça ne t'avancera pas beaucoup. Tu dois passer 3 paramètres au constructeur :
- le layoutPath, qui contient le chemin ou se trouve ton template
- le contentKey, qui va te permettre d'afficher le rendu des vues des actions de tes controlleurs
- le layout, qui (je crois) est le nom de ton template.

A savoir que ton template (layout) est une vue, donc un fichier .phtml. Avant d'aller plus loin, je tiens à te préciser que ZF ne gère pas les Layout comme on aurait pu l'entendre (gestion évidente de plusieurs templates), tu vas devoir le faire toi même. Ceci dit, si tu t'organises bien, tu t'en sors bien. N'oublie pas que tu peux charger ces trois informations dans un fichier .INI ce qui te permet d'avoir plusieurs structures de templates.

ll y'a un tuto sur le site de developpez.com concernant le layout (écris par Julien), trouve le et tu verras une méthode en utilisant le helper ActionStack. Il faudrait que je le relise car à l'époque mes compétences ZF ne me permettaient de que comprendre la moitié des mots qui étaient écris : du coup je suis parti sur ma propre gestion de template. Tu as un autre tuto en english ici http://akrabat.com/2007/12/11/simple-ze … -example/.

En ce qui me concerne, voilà comment je gère mes templates. Avant tout, je tiens à te dire que je programme en php depuis février et je n'ai pas trop la culture du web (avant je développais sous windows et qu'en C++, Asm et dés fois en java).

J'ai donc un template.phtml qui se trouve dans un répertoire layoutPath. Dans ce template .phtml je construit les parties statiques de mon template (le header, footer, et la structure de base). Ensuite dans chaque partie dynamique, j'appelle une action d'un controlleur ayant pour seul but d'afficher un élément (menu par exemple). Bon vu comment je décris ça, je te donne un exemple (une partie du template.phtml):

Code:

                <?php
                    //-- Gestion du menu mainmenu --//
                    echo $this->action('mainmenu','index','template'); ?>
                
                <div class="clear_float"></div>
            </div>

J'appelle donc dans le layout  une action 'mainmenu' se trouvant dans le module 'template' dont le controlleur s'appelle 'indexController'. Ce module contient tous mes controlleurs correspondant aux templates. Bon il y'a certainement plus simple mais j'ai une structure par module et non un module qui contiendra tous mes controlleurs. Un avantage que j'ai trouvé en procédent de la sorte, c'est que chaque partie de mon template est très souple. Par exemple je sais que toutes mes actions mainMenu doivent implémenter le menu principal (menu qui est construit dynamiquement).

Enfin, si je veux ajouter un nouveau template je fais :
1. j'ajoute son chemin dans mon .ini de configuration de template [blue]
2. j'ajoute le fichier template.phtml et tous les images/css/js dans le répertoire layoutPath
3. Je créé les parties dynamique du site dans un nouveau controlleur [blueController] qui sera rangé dans le module 'template'. Le controlleur implémentera les actions comme headerAction, maimmenuAction...

Ainsi j'ai une gestion de template très simple (pour moi)  et je peux changer quand je veux mes templates. En fait, ayant travailler avec le CMS Joomla, j'ai voulu avoir une gestion de template qui s'en rapprochait.

Pour répondre à ta question : "de plus j'aimerai aussi pouvoir les définir par modules"  je te conseil de lire ce post http://www.z-f.fr/forum/viewtopic.php?id=705, ou l'idée serait de gérer le choix du template via un Plugin.

Bon, je t'ai répondu pas en pro, en attendant mieux, bon courage.

PS: lis le tuto de Julien, c'est le plus complet que j'ai trouvé.

Dernière modification par whitespirit (23-05-2008 08:33:32)

Hors ligne

 

#4 23-05-2008 11:55:37

foxmask
Membre
Date d'inscription: 18-05-2008
Messages: 13
Site web

Re: gere des themes

Bonjour,
je te remercie pour ta reponse et je la relirai ce soir à tete reposée pour ne rien rater.

Cdt

Hors ligne

 

#5 25-05-2008 19:22:06

foxmask
Membre
Date d'inscription: 18-05-2008
Messages: 13
Site web

Re: gere des themes

Bonsoir,
j'ai tout reparcouru mais rien ne correspond vraiment à mon besoin.
Ou alors il faut utiliser une partie de Zend que je n'ai pas encore exploré ?
Ce que j'escompte faire c'est comme pour le forum punbb, gérer les thèmes que je veux.

donc pour chaque module j'aimerai ceci par soucis de facilité de gestion d'un module (pour le maintenir, le mettre à jour, le redistribuer etc...)
- apps/modules/news/
- apps/modules/news/controller
- apps/modules/news/models
- apps/modules/news/views
- apps/modules/news/views/filters
- apps/modules/news/views/helpers
- apps/modules/news/views/theme1
- apps/modules/news/views/theme1/scripts
- apps/modules/news/views/theme2
- apps/modules/news/views/theme2/scripts

est-ce donc possible ?
merci pour vos réponses.
Cdt.

Hors ligne

 

#6 30-07-2008 07:14:42

foxmask
Membre
Date d'inscription: 18-05-2008
Messages: 13
Site web

Re: gere des themes

Bonjour,
je reviens sur le sujet comme je n'ai pas trouvé de solution depuis tout ce temps
une suggestion ?

cdt.

Hors ligne

 

#7 11-08-2008 15:00:04

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

Re: gere des themes

Salut,
moi ma technique serais d'utiliser les layouts.
Ainsi par exemple chaque theme serais un layout différent, et ainsi en switchant de layout tu changes de themes.

Pour switcher de theme il te suffit de faire : $this->layout()->setLayout('foo'); où foo est le nom d'un layout.

J'espère t'avoir aidé.

Cdt

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