Helpers

In This Article

HeadMeta

The HTML <meta> element is used to provide meta information about your HTML
document, typically keywords, document character set, caching pragmas, etc. Meta
tags may be either of the http-equiv or name types, must contain a content
attribute, and can also have either of the lang or scheme modifier
attributes.

The HeadMeta helper supports the following methods for setting and adding meta tags:

The following methods are also supported with XHTML1_RDFA doctype set with the
Doctype helper.

appendProperty($property, $content, $modifiers)

offsetSetProperty($index, $property, $content, $modifiers)

prependProperty($property, $content, $modifiers)

setProperty($property, $content, $modifiers)

Finally, starting in 2.11.2, you can call the following method to determine
whether or not to autoescape values used in meta tags:

setAutoEscape(bool $autoEscape = true) (enabled by default)

AutoEscape

Disable this flag at your own risk. The one documented case where it is
necessary to disable the flag is when setting the X-UA-Compatiblehttp-equiv value to switch behavior for Internet Explorer, as escaped values
will not trigger correct representation.

The $keyValue item is used to define a value for the name or http-equiv
key; $content is the value for the 'content' key, and $modifiers is an
optional associative array that can contain keys for lang and/or scheme.

You may also set meta tags using the headMeta() helper method, which has the
following signature: headMeta($content, $keyValue, $keyType = 'name',
$modifiers = array(), $placement = 'APPEND'). $keyValue is the content for
the key specified in $keyType, which should be either name or http-equiv.
$keyType may also be specified as property if the doctype has been set to
XHTML1_RDFA. $placement can be SET (overwrites all previously stored
values), APPEND (added to end of stack), or PREPEND (added to top of stack).

HeadMeta overrides each of append(), offsetSet(), prepend(), and set()
to enforce usage of the special methods as listed above. Internally, it stores
each item as a stdClass token, which it later serializes using the
itemToString() method. This allows you to perform checks on the items in the
stack, and optionally modify these items by simply modifying the object
returned.

If you are serving an HTML5 document, you should provide the character set like
this:

// setting character set in HTML5
$this->headMeta()->setCharset('UTF-8'); // Will look like <meta charset="UTF-8">

As a final example, an easy way to display a transitional message before a
redirect is using a "meta refresh":

// setting a meta refresh for 3 seconds to a new url:
$this->headMeta()
->appendHttpEquiv('Refresh', '3;URL=http://www.some.org/some.html');

When you're ready to place your meta tags in the layout, echo the helper:

<?= $this->headMeta() ?>

Usage with XHTML1_RDFA doctype

Enabling the RDFa doctype with the Doctype helper enables the use
of the property attribute (in addition to the standard name and
http-equiv) with HeadMeta. This is commonly used with the Facebook Open
Graph Protocol.

For instance, you may specify an open graph page title and type as follows:

Usage with HTML5 doctype

Enabling the HTML5 doctype with the Doctype helper enables the use
of the itemprop attribute (in addition to the standard name and
http-equiv) with HeadMeta. This is typically used to add
Microdata to the head of your document.