Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-10-2008 17:49:56

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

[resolu]Les aide de vue et partial....

Salut la compagnie smile

Voila, j'ai comme suit une application MVC en cours. Tout fonctionne pour le moment et est tres simple (un layout et des views afficher dans ce layout.
Je suis en train de regarder du coté des aide de vue patrial(), headMeta(), headLink(), headScript(), headTitle().

J'ai donc extrait le <head> de mon default-layout.phtml dans un fichier head-layout.phtml comme suit:

Code:

<?php
/**
* HeadLayout
*
* Fichier de layout partiel pour la partie <head> commun
* à touts les modules
*
* @author      Deschamps Sébastien <beroots74@gmail.com>
* @copyright   Deschamps Sébastien, all rights reserved.
* @version     1.0
* @since       PHP 5
* @name        HeadLayout
*/


/**
* on definit le doctype
*/
echo $this->doctype('XHTML1_STRICT')."\n";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- XHTML BY Deschamps Sebastien. all rights reserved -->
<head>
<?php
/**
* On definit les meta "HttpEquiv" et "Name" grace à l'aide de vue headMeta
*/
$this->headMeta()->appendHttpEquiv('expires', '0')
                 ->appendHttpEquiv('pragma', 'no-cache')
                 ->appendHttpEquiv('Content-Type', 'text/html; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Style-Type', 'text/css; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Script-Type', 'text/javascript; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Language', $this->langue)
                 ->appendName('author', 'Deschamps Sébastien')
                 ->appendName('Identifier-url', 'http://'.$_SERVER['HTTP_HOST'].';')
                 ->setName('Description', $this->meta_description, array('lang' => $this->langue))
                 ->setName('Title', $this->meta_windowTitle, array('lang' => $this->langue))
                 ->setName('keywords', $this->meta_keywords, array('lang' => $this->langue))
                 ->setName('Category', $this->meta_categorie, array('lang' => $this->langue));
                 if($this->referencement == true)
                 {
                     $this->headMeta()->appendName('robots', 'index,follow,all')
                                      ->appendName('revisit-after', '2 days');
                 }
                 else $this->headMeta()->appendName('robots', 'noindex, nofollow');

/**
* On definit la meta title grace à l'aide de vue headTitle
*/
$request = Zend_Controller_Front::getInstance()->getRequest();

$this->headTitle($this->meta_windowTitle)
     ->headTitle($request->getModuleName())
     ->headTitle($request->getControllerName())
     ->headTitle($request->getActionName())
     ->setSeparator(' :: ');

/**
* On definit la meta shortcut icon ainsi que les feuille css
* grace à l'aide de vue headLink
*/
$this->headLink()->headLink(array('rel' => 'shortcut icon', 'type' => 'image/x-icon', 'href' => '/img/beroots-web.ico'), 'PREPEND')
                 ->setStylesheet('/css/'.$this->suffix_stylesheet.'_BASE.css', 'screen', false)
                 ->setStylesheet('/css/'.$this->suffix_stylesheet.'_BASE_ie_inferieur_a_7.css', 'screen', 'lte IE 6');
                 if($this->add_css != false && is_array($this->add_css))
                 {
                     foreach($this->add_css as $key => $value)
                     {
                         $array_values = explode($value);
                         $this->headLink()->setStylesheet($array_values[0], $array_values[1], $array_values[2]);
                     }
                 }
                 if($this->add_mootools != false)
                 {
                     $this->headLink()->setStylesheet('/asset/mootools/css/mootools.css', 'screen', false)
                                      ->setStylesheet('/asset/mootools/css/mootools_ie_inferieur_a_7.css', 'screen', 'lte IE 6');
                 }
                 if($this->add_shadowbox != false)
                 {
                     $this->headLink()->setStylesheet('/asset/shadowbox/css/shadowbox.css', 'screen', 'lte IE 6');
                 }

/**
* On definit les metas pour insertion de script et framework javascript
* grace à l'aide de vue headScript
*/
$this->headScript()->prependFile('http://'.$this->sousdomaine_system.'/0_lib/js/taille_police.js', 'text/javascript', array())
                   ->prependFile('http://'.$this->sousdomaine_system.'/0_lib/js/domready.js', 'text/javascript', array());
                   if($this->add_js != false && is_array($this->add_js))
                   {
                       foreach($this->add_js as $value)
                       {
                           $this->headScript()->prependFile($value, 'text/javascript', array());
                       }
                   }
                   if($this->add_mootools != false)
                   {
                       $this->headScript()->prependFile('http://'.$this->sousdomaine_system.'/0_lib/js/mootools-release-1.11/mootools-release-1.11.js', 'text/javascript', array());
                   }
                   if($this->add_shadowbox != false)
                   {
                       $this->headScript()->prependFile('http://'.$this->sousdomaine_system.'/0_lib/js/shadowbox-1.0-code/build/js/adapter/shadowbox-mootools.js', 'text/javascript', array())
                                          ->prependFile('http://'.$this->sousdomaine_system.'/0_lib/js/shadowbox-1.0-code/build/js/Shadowbox.js', 'text/javascript', array());
                   }


/**
* On affiche le tout dans 'ordre et entre commentaire
*/
echo "<!-- META -->\n";
echo $this->headMeta()."\n";
echo "<!-- /META -->\n\n<!-- TITLE -->\n";
echo $this->headTitle()."\n";
echo "<!-- TITLE -->\n\n<!-- LINK -->\n";
echo $this->headLink()."\n";
echo "<!-- /LINK -->\n\n<!-- SCRIPT -->\n";
echo $this->headScript()."\n";
echo "<!-- /SCRIPT -->\n";
?>
</head>

mon soucis est que je n'est pas toutes les balise demandées d'afficher dans le html...
exemple pour l'aide de vue headMeta():

Code:

/**
* On definit les meta "HttpEquiv" et "Name" grace à l'aide de vue headMeta
*/
$this->headMeta()->appendHttpEquiv('expires', '0')
                 ->appendHttpEquiv('pragma', 'no-cache')
                 ->appendHttpEquiv('Content-Type', 'text/html; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Style-Type', 'text/css; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Script-Type', 'text/javascript; charset='.$this->encoding.';')
                 ->appendHttpEquiv('Content-Language', $this->langue)
                 ->appendName('author', 'Deschamps Sébastien')
                 ->appendName('Identifier-url', 'http://'.$_SERVER['HTTP_HOST'].';')
                 ->setName('Description', $this->meta_description, array('lang' => $this->langue))
                 ->setName('Title', $this->meta_windowTitle, array('lang' => $this->langue))
                 ->setName('keywords', $this->meta_keywords, array('lang' => $this->langue))
                 ->setName('Category', $this->meta_categorie, array('lang' => $this->langue));
                 if($this->referencement == true)
                 {
                     $this->headMeta()->appendName('robots', 'index,follow,all')
                                      ->appendName('revisit-after', '2 days');
                 }
                 else $this->headMeta()->appendName('robots', 'noindex, nofollow');

Ceci me genere cela:

Code:

<!-- META -->
<meta http-equiv="expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15;" />
<meta http-equiv="Content-Style-Type" content="text/css; charset=ISO-8859-15;" />
<meta http-equiv="Content-Script-Type" content="text/javascript; charset=ISO-8859-15;" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="Category" content="categorie" lang="fr" />
<meta name="robots" content="noindex, nofollow" />
<!-- /META -->

On note qu'il manque des meta (author, identifier-url, description, title, et keywords)

Si quelqu'un à une idée de ce qui cloche?
Merci d'avance wink

Dernière modification par BeRoots (01-11-2008 01:38:33)


wink Non au language SMS sur nos forums wink

Hors ligne

 

#2 29-10-2008 18:16:24

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [resolu]Les aide de vue et partial....

Hello,

C'est à cause de tes setName(), il écrase les précédents. Tu ne dois faire que des appendName (sauf pour le premier, si tu veux).

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 30-10-2008 00:23:56

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Les aide de vue et partial....

oki c'etait bien cela... j'ai fait de même dans chaque aide de vue afin de virer tout les set* et tout fonctionne.

Par contre mon site rame maintenant... Je passe de 0.3s l'affichage à plus de 15 secondes...

Y a t'il un moyen de contrer ceci ?
merci d'avance wink


wink Non au language SMS sur nos forums wink

Hors ligne

 

#4 30-10-2008 13:14:05

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [resolu]Les aide de vue et partial....

Peut-on m'expliquer l'interet d'utiliser tous ces helpers ($this->doctype, $this->headMeta(), setStylesheet, ... ) alors que l'on peut le faire en static, pas besoin de php pour ca, surtout si c'est dans le layout.


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#5 30-10-2008 18:42:23

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Les aide de vue et partial....

peut tu en dire un peu plus sur ta méthode STP afin que l'on puisse débattre utilement ?

Sinon si quelqu'un peu me conseiller pour mon problème de temps d'exécution abominable wink
Merci

Dernière modification par BeRoots (30-10-2008 18:42:36)


wink Non au language SMS sur nos forums wink

Hors ligne

 

#6 01-11-2008 01:34:48

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Les aide de vue et partial....

ok j'ai fini par trouver mon erreur ... encore merci de votre aide
wink


wink Non au language SMS sur nos forums wink

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