Zend_View-Helpers-HeadMeta.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17340 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.view.helpers.initial.headmeta">
  5. <title>L'aide de vue HeadMeta</title>
  6. <para>
  7. L'élément HTML <code>&lt;meta&gt;</code> est utilisé pour fournir des métadonnées
  8. concernant votre document HTML - typiquement, les mots-clés, l'encodage du document, les
  9. directives de mise en cache, etc. Les balises de métadonnées peuvent être soit de type
  10. "http-equiv" ou "name", doivent contenir un attribut "content" et peuvent avoir aussi un
  11. attribut modificateur "lang" ou "scheme".
  12. </para>
  13. <para>
  14. L'aide de vue <code>HeadMeta</code> supporte les méthodes suivantes pour le
  15. paramétrage et l'ajout de métadonnées :
  16. </para>
  17. <itemizedlist>
  18. <listitem>
  19. <para><methodname>appendName($keyValue, $content, $conditionalName)</methodname></para>
  20. </listitem>
  21. <listitem>
  22. <para>
  23. <code>offsetSetName($index, $keyValue, $content,
  24. $conditionalName)</code>
  25. </para>
  26. </listitem>
  27. <listitem>
  28. <para><methodname>prependName($keyValue, $content, $conditionalName)</methodname></para>
  29. </listitem>
  30. <listitem>
  31. <para><methodname>setName($keyValue, $content, $modifiers)</methodname></para>
  32. </listitem>
  33. <listitem>
  34. <para>
  35. <code>appendHttpEquiv($keyValue, $content,
  36. $conditionalHttpEquiv)</code>
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <code>offsetSetHttpEquiv($index, $keyValue, $content,
  42. $conditionalHttpEquiv)</code>
  43. </para>
  44. </listitem>
  45. <listitem>
  46. <para>
  47. <code>prependHttpEquiv($keyValue, $content,
  48. $conditionalHttpEquiv)</code>
  49. </para>
  50. </listitem>
  51. <listitem>
  52. <para><methodname>setHttpEquiv($keyValue, $content, $modifiers)</methodname></para>
  53. </listitem>
  54. </itemizedlist>
  55. <para>
  56. Le paramètre <varname>$keyValue</varname> est utilisé pour définir une valeur pour la clé
  57. "name" ou "http-equiv" ; <varname>$content</varname> est la valeur pour la clé "content", et
  58. <varname>$modifiers</varname> est un tableau associatif optionel qui peut contenir les clés "lang"
  59. et/ou "scheme".
  60. </para>
  61. <para>
  62. Vous pouvez aussi spécifier les métadonnées en utilisant la méthode
  63. <methodname>headMeta()</methodname> qui a la signature suivante : <code>headMeta($content, $keyValue,
  64. $keyType = 'name', $modifiers = array(), $placement = 'APPEND')</code>.
  65. <varname>$keyValue</varname> est le contenu de la clé spécifiée dans <varname>$keyType</varname>, qui
  66. peut être "name" ou "http-equiv". <varname>$placement</varname> peut être soit "SET" (efface
  67. toutes les valeurs sauvegardées précédentes), soit "APPEND" (ajout en fin de pile), soit
  68. "PREPEND" (ajout en début de pile).
  69. </para>
  70. <para>
  71. <code>HeadMeta</code> surcharge chacune des méthodes <methodname>append()</methodname>,
  72. <methodname>offsetSet()</methodname>, <methodname>prepend()</methodname>, et <methodname>set()</methodname>, pour imposer
  73. l'utilisation des méthodes spéciales énumérées ci-dessus. En interne, il stocke chaque
  74. élément sous la forme d'un <code>stdClass</code>, qui peut ensuite être sérialiser grâce à
  75. la méthode <methodname>itemToString()</methodname>. Ceci vous permet de réaliser des contrôles sur les
  76. éléments de la pile, et optionnellement de modifier ces éléments simplement en modifiant
  77. l'objet retourné.
  78. </para>
  79. <para>
  80. L'aide de vue <code>HeadMeta</code> est une implémentation concrète de l'aide <link
  81. linkend="zend.view.helpers.initial.placeholder">Placeholder</link>.
  82. </para>
  83. <example id="zend.view.helpers.initial.headmeta.basicusage">
  84. <title>Utilisation basique de l'aide HeadMeta</title>
  85. <para>
  86. Vous pouvez spécifier une nouvelle métadonnée à n'importe quel moment.
  87. Typiquement, vous pouvez spécifier les règles de mise en cache côté client ou les mots
  88. clés SEO (Search Engine Optimization : pour l'optimisation des moteurs de
  89. recherche).
  90. </para>
  91. <para>
  92. Par exemple, si vous souhaitez spécifier des mots clés SEO, vous devez créer une
  93. métadonnée de type "name" ayant pour nom "keywords" et pour contenu les mots clés que
  94. vous souhaitez associer à votre page :
  95. </para>
  96. <programlisting language="php"><![CDATA[
  97. // paramètrage des mots clés
  98. $this->headMeta()->appendName('keywords', 'framework, PHP, productivité');
  99. ]]></programlisting>
  100. <para>
  101. Si vous souhaitez paramètrer des règles de mise en cache côté client, vous devez
  102. créer une métadonnée de type "http-equiv" avec les règles que vous souhaitez imposer
  103. :
  104. </para>
  105. <programlisting language="php"><![CDATA[
  106. // désactiver la mise en cache côté client
  107. $this->headMeta()->appendHttpEquiv('expires',
  108. 'Wed, 26 Feb 1997 08:21:57 GMT')
  109. ->appendHttpEquiv('pragma', 'no-cache')
  110. ->appendHttpEquiv('Cache-Control', 'no-cache');
  111. ]]></programlisting>
  112. <para>
  113. Une autre utilisation habituelle des métadonnées est le réglage du type de contenu
  114. ("content type"), de l'encodage, et le langage :
  115. </para>
  116. <programlisting language="php"><![CDATA[
  117. // régler le type de contenu et l'encodage
  118. $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')
  119. ->appendHttpEquiv('Content-Language', 'fr-FR');
  120. ]]></programlisting>
  121. <para>
  122. Et comme exemple final, une manière simple d'afficher un message de transition
  123. avant une redirection est d'utiliser une métadonnée "refresh" :
  124. </para>
  125. <programlisting language="php"><![CDATA[
  126. // paramètrer une métadonnée refresh pour 3 secondes
  127. // avant une nouvel URL :
  128. $this->headMeta()->appendHttpEquiv('Refresh',
  129. '3;URL=http://www.some.org/some.html');
  130. ]]></programlisting>
  131. <para>
  132. Quand vous êtes prêts à placer vos métadonnées dans votre script de disposition,
  133. réalisez un "<code>echo</code>" de l'aide :
  134. </para>
  135. <programlisting language="php"><![CDATA[
  136. <?php echo $this->headMeta() ?>
  137. ]]></programlisting>
  138. </example>
  139. </sect3>