Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut la compagnie
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:
<?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():
/** * 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:
<!-- 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
Dernière modification par BeRoots (01-11-2008 01:38:33)
Hors ligne
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+
Hors ligne
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
Hors ligne
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.
Hors ligne
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
Merci
Dernière modification par BeRoots (30-10-2008 18:42:36)
Hors ligne
ok j'ai fini par trouver mon erreur ... encore merci de votre aide
Hors ligne