HeadMeta ヘルパー
HTML の <meta> 要素は、
HTML ドキュメントに関するメタ情報を扱います。
たとえばキーワードや文字セット、キャッシュ方式などです。
Meta タグには 'http-equiv' 形式と 'name' 形式があり、
'content' 属性が必須となります。また、
'lang' あるいは 'scheme' のいずれかの属性を含むことができます。
HeadMeta ヘルパーは、
meta タグを設定したり追加したりするための次のようなメソッドを提供します。
appendName($keyValue, $content, $conditionalName)
offsetSetName($index, $keyValue, $content, $conditionalName)
prependName($keyValue, $content, $conditionalName)
setName($keyValue, $content, $modifiers)
appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)
offsetSetHttpEquiv($index, $keyValue, $content, $conditionalHttpEquiv)
prependHttpEquiv($keyValue, $content, $conditionalHttpEquiv)
setHttpEquiv($keyValue, $content, $modifiers)
XHTML1_RDFA doctype では、Doctype ヘルパー
で設定される以下のメソッドもサポートされます。
appendProperty($property, $content, $modifiers)
offsetSetProperty($index, $property, $content, $modifiers)
prependProperty($property, $content, $modifiers)
setProperty($property, $content, $modifiers)
$keyValue は 'name' あるいは 'http-equiv'
キーの値を定義します。$content は
'content' キーの値を定義し、$modifiers
はオプションで連想配列を指定します。この配列には
'lang' や 'scheme' といったキーが含まれます。
ヘルパーメソッド headMeta() で meta タグを設定することもできます。
このメソッドのシグネチャは headMeta($content,
$keyValue, $keyType = 'name', $modifiers = array(), $placement =
'APPEND')
です。$keyValue には、
$keyType ('name' あるいは 'http-equiv')
で指定したキーのコンテンツを指定します。
もし doctype が XHTML1_RDFA に設定されていたら、$keyType
は 'property' としても指定されるかもしれません。
$placement は 'SET' (既存の値をすべて上書きする)
か 'APPEND' (スタックの最後に追加する)、
あるいは 'PREPEND' (スタックの先頭に追加する) となります。
HeadMeta は append() や
offsetSet()、prepend()、そして set()
をそれぞれオーバーライドして、上にあげた特別なメソッドを使用させるようにします。
内部的には、各項目を stdClass のトークンとして保管し、
あとで itemToString() メソッドでシリアライズします。
これはスタック内の項目についてチェックを行い、
オプションでそれを修正したものを返します。
HeadMeta ヘルパーは、
Placeholder
ヘルパー の具象実装です。
HeadMeta ヘルパーの基本的な使用法
meta タグは、いつでも好きなときに指定できます。
一般的には、クライアント側でのキャッシュの制御方法や
SEO 用キーワードなどを指定します。
たとえば、SEO 用のキーワードを指定したい場合は
'keywords' という名前の meta タグを作成します。
そして、そのページに関連するキーワードを値として指定します。
headMeta()->appendName('keywords', 'framework, PHP, productivity');
]]>
クライアント側でのキャッシュの制御方法を指定したい場合は、
http-equiv タグを設定してルールを指定します。
headMeta()->appendHttpEquiv('expires',
'Wed, 26 Feb 1997 08:21:57 GMT')
->appendHttpEquiv('pragma', 'no-cache')
->appendHttpEquiv('Cache-Control', 'no-cache');
]]>
meta タグの使い方としてもうひとつよくあるのは、
コンテンツタイプや文字セット、言語を指定するものです。
headMeta()->appendHttpEquiv('Content-Type',
'text/html; charset=UTF-8')
->appendHttpEquiv('Content-Language', 'en-US');
]]>
もし HTML5 文書を提供しているなら、
このように文字セットを提示すべきです。:
headMeta()->setCharset('UTF-8'); // のように見えます
]]>
最後の例として、リダイレクトの前に見せるメッセージを
"meta refresh" で指定するものを示します。
headMeta()->appendHttpEquiv('Refresh',
'3;URL=http://www.some.org/some.html');
]]>
レイアウト内で meta タグを指定し終えたら、ヘルパーの内容を出力します。
headMeta() ?>
]]>
XHTML1_RDFA doctype を用いた HeadMeta 使用法
Doctype ヘルパー
で RDFa doctype を有功にすると、標準的な 'name' や 'http-equiv' に加えて、
HeadMeta で 'property' 属性が使えるようになります。
これは Facebook の Open Graph プロトコル
で一般的に用いられます。
例えば、Open Graph ページのタイトルと型を以下のように指定するかもしれません。
doctype(Zend_View_Helper_Doctype::XHTML1_RDFA);
$this->headMeta()->setProperty('og:title', 'my article title');
$this->headMeta()->setProperty('og:type', 'article');
echo $this->headMeta();
//出力です。
//
//
]]>