Bonsoir,
Je tente d'afficher un petit design template trouvé sur Internet. J'ai réduit au minimum le layout et les différents fichiers, et j'ai comme l'impression que les fonctions render (ou partial, j'ai aussi testé) de Zend_View me "rajoutent" des symboles.
Exemple :
En écrivant ceci dans mon layout :
J'obtiens le rendu suivant, qui correspond bien à ce que j'attends :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div id="header"> <h1><a href="#">Exemple.com</a></h1> <h2>Toto</h2> </div>
Toutefois, si je recopie ce code dans un fichier (header.phtml) par exemple (ce fichier ne contenant que ces lignes, et rien d'autre :
Et le bout du layout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<h1><a href="#">Exemple.com</a></h1> <h2>Toto</h2>
Et en demandant à Zend_View de dessiner ce fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<div id="header"> <?php echo $this->partial ('header.phtml'); ?> </div>
Comme vous le voyez, le contenu est décalé vers le bas. Le même phénomène s'applique à tous les éléments que j'inclus dans un fichier au lieu de les copier directement dans le layout, alors que d'après moi, tous ces codes devraient être absolument équivalents.
Je précise que render ou partiel mènent au même résultat.
Avez-vous une idée d'où cela peut venir ? (les encodages des fichiers sont les mêmes, je précise, UTF-8).
Après vérification du code HTML généré, il y a même d'autres problèmes, les headLink et headMeta sont ajoutés dans <body> et non dans <head>. Voici mon layout complet :
et le bootstrap :
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
39
40
41
42
43
44
45 <?php echo $this->docType (); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php echo $this->headTitle (); ?> <?php echo $this->headMeta (); ?> <?php echo $this->headLink (); ?> </head> <body> <div id="wrap"> <div id="header"> <?php echo $this->partial ('header.phtml'); ?> </div> <div id="menu"> <?php echo $this->partial ('menu.phtml'); ?> </div> <div id="content"> <div class="right"> <?php echo $this->layout ()->content; ?> </div> <div class="left"> </div> <div style="clear: both;"> </div> </div> <div id="bottom"> <?php echo $this->partial ('bottom.phtml'); ?> </div> <div id="footer"> <?php echo $this->partial ('footer.phtml'); ?> </div> </div> </body> </html>
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 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { // Namespace de l'application (par défaut, aucun) protected $_appNamespace = ''; // Initialise l'usage de la session protected function _initSession () { Zend_Session::start (); } // Initialise les placeholders protected function _initPlaceholders () { $view = $this->bootstrap ('View')->getResource ('View'); // DocType (XHTML 1.0 strict) $view->docType ('XHTML1_STRICT'); // Metadonnées $view->headMeta ()->appendHttpEquiv ('Content-Type', 'text/html; charset=UTF-8'); $view->headMeta ()->appendHttpEquiv ('Content-Language', Zend_Locale::findLocale ()); // Liens CSS $view->headLink ()->appendStylesheet ('/css/style.css'); } }
Partager