Zend_View-Helpers-HeadMeta.xml 5.9 KB

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