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 :

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>
J'obtiens le rendu suivant, qui correspond bien à ce que j'attends :



Toutefois, si je recopie ce code dans un fichier (header.phtml) par exemple (ce fichier ne contenant que ces lignes, et rien d'autre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<h1><a href="#">Exemple.com</a></h1>
				<h2>Toto</h2>
Et le bout du layout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<div id="header">
				<?php echo $this->partial ('header.phtml'); ?>
			</div>
Et en demandant à Zend_View de dessiner ce fichier :



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 :

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>
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
 
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');
		}
	}