Zend_View-Helpers-HeadMeta.xml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <sect3 id="zend.view.helpers.initial.headmeta">
  2. <title>Helper HeadMeta</title>
  3. <para>
  4. Element HTML <code>&lt;meta&gt;</code> używany jest do definiowania
  5. informacji meta o dokumencie HTML -- zazwyczaj są to słowa kluczowe,
  6. informacje o zestawie znaków, informacje o sposobie buforowania itp.
  7. Są dwa rodzaje znaczników meta, 'http-equiv' oraz 'name', oba muszą
  8. zawierać także atrybut 'content', a mogą dodatkowo zawierać jeszcze
  9. atrybuty 'lang' oraz 'scheme'.
  10. </para>
  11. <para>
  12. Helper <code>HeadMeta</code> udostępnia następujące metody do ustawiania
  13. i dodawania znaczników meta:
  14. </para>
  15. <itemizedlist>
  16. <listitem><para><code>appendName($keyValue, $content,
  17. $conditionalName)</code></para></listitem>
  18. <listitem><para><code>offsetSetName($index, $keyValue, $content,
  19. $conditionalName)</code></para></listitem>
  20. <listitem><para><code>prependName($keyValue, $content,
  21. $conditionalName)</code></para></listitem>
  22. <listitem><para><code>setName($keyValue, $content,
  23. $modifiers)</code></para></listitem>
  24. <listitem><para><code>appendHttpEquiv($keyValue, $content,
  25. $conditionalHttpEquiv)</code></para></listitem>
  26. <listitem><para><code>offsetSetHttpEquiv($index, $keyValue, $content,
  27. $conditionalHttpEquiv)</code></para></listitem>
  28. <listitem><para><code>prependHttpEquiv($keyValue, $content,
  29. $conditionalHttpEquiv)</code></para></listitem>
  30. <listitem><para><code>setHttpEquiv($keyValue, $content,
  31. $modifiers)</code></para></listitem>
  32. </itemizedlist>
  33. <para>
  34. Zmienna <code>$keyValue</code> jest używana do definiowania wartości
  35. atrybutów 'name' oraz 'http-equiv'; Zmienna <code>$content</code>
  36. definiuje wartość atrybutu 'content', a zmienna <code>$modifiers</code>
  37. jest opcjonalną asocjacyjną tablicą, która może zawierać klucze dla
  38. atrybutów 'lang' oraz 'scheme'.
  39. </para>
  40. <para>
  41. Możesz także ustawić znaczniki meta używając metody <code>headMeta()</code>
  42. helpera, która posiada następującą sygnaturę: <code>headMeta($content,
  43. $keyValue, $keyType = 'name', $modifiers = array(), $placement =
  44. 'APPEND')</code>.
  45. Parametr <code>$keyValue</code> jest zawartością dla klucza określonego
  46. w parametrze <code>$keyType</code>, którego wartością zawsze powinno być
  47. 'name' lub 'http-equiv'.
  48. Parametr <code>$placement</code> może mieć wartość 'SET' (nadpisuje
  49. wszystkie wcześniej ustawione wartości), 'APPEND' (dodaje na spód stosu),
  50. lub 'PREPEND' (dodaje na wierzchołek stosu).
  51. </para>
  52. <para>
  53. Helper <code>HeadMeta</code> nadpisuje każdą z metod <code>append()</code>,
  54. <code>offsetSet()</code>, <code>prepend()</code>, oraz <code>set()</code>
  55. aby wymusić użycie specjalnych metod opisanych powyżej.
  56. Wewnętrznie klasa przechowuje każdy element jako obiekt klasy
  57. <code>stdClass</code>, który jest potem serializowany za pomocą metody
  58. <code>itemToString()</code>.
  59. Pozwala to na sprawdzenie elementów znajdujących się na stosie, a także
  60. na zmianę wartości poprzez modyfikację zwróconego obiektu.
  61. </para>
  62. <para>
  63. Helper<code>HeadMeta</code> jest implementacją
  64. <link linkend="zend.view.helpers.initial.placeholder">helpera
  65. Placeholder</link>.
  66. </para>
  67. <example id="zend.view.helpers.initial.headmeta.basicusage">
  68. <title>Podstawowe użycie helpera HeadMeta</title>
  69. <para>
  70. Możesz określić nowy znacznik meta w dowolnej chwili. Najczęściej
  71. będziesz określał zasady buforowania po stronie klienta oraz
  72. dane SEO.
  73. </para>
  74. <para>
  75. Przykładowo, jeśli chcesz określić słowa kluczowe SEO, powinieneś
  76. utworzyć znacznik meta o nazwie 'keywords', a jego zawartością
  77. powinny być słowa kluczowe, które chcesz połączyć z daną stroną:
  78. </para>
  79. <programlisting role="php"><![CDATA[
  80. // ustawienie słów kluczowych
  81. $this->headMeta()->appendName('keywords', 'framework php productivity');
  82. ]]>
  83. </programlisting>
  84. <para>
  85. Jeśli chcesz ustalić zasady buforowania po stronie klienta,
  86. powinieneś ustawić znaczniki http-equiv:
  87. </para>
  88. <programlisting role="php"><![CDATA[
  89. // zablokowanie buforowania po stronie klienta
  90. $this->headMeta()->appendHttpEquiv('expires',
  91. 'Wed, 26 Feb 1997 08:21:57 GMT')
  92. ->appendHttpEquiv('pragma', 'no-cache')
  93. ->appendHttpEquiv('Cache-Control', 'no-cache');
  94. ]]>
  95. </programlisting>
  96. <para>
  97. Innym popularnym przykładem użycia znaczników meta jest ustawienie
  98. typu zawartości, zestawu znaków oraz języka:
  99. </para>
  100. <programlisting role="php"><![CDATA[
  101. // ustawienie typu zawartości i zestawu znaków
  102. $this->headMeta()->appendHttpEquiv('Content-Type',
  103. 'text/html; charset=UTF-8')
  104. ->appendHttpEquiv('Content-Language', 'en-US');
  105. ]]>
  106. </programlisting>
  107. <para>
  108. Ostatnim przykład pokazuje jak można w łatwy sposób wyświetlić
  109. komunikat bezpośrednio przez przekierowaniem używając znacznika
  110. "meta refresh":
  111. </para>
  112. <programlisting role="php"><![CDATA[
  113. // ustawienie czasu odświeżenia strony na 3 sekundy z nowym adresem URL:
  114. $this->headMeta()->appendHttpEquiv('Refresh',
  115. '3;URL=http://www.some.org/some.html');
  116. ]]>
  117. </programlisting>
  118. <para>
  119. Jeśli jesteś gotowy na wyświetlenie znaczników meta w layoucie, po
  120. prostu wyświetl helper:
  121. </para>
  122. <programlisting role="php"><![CDATA[
  123. <?= $this->headMeta() ?>
  124. ]]>
  125. </programlisting>
  126. </example>
  127. </sect3>