Содержание


HeadMeta Helper


HeadMeta Helper



Тег <meta> используется для задания мета-информации о вашей страничке сайта или всего сайта: keywords(ключевые слова), document character set, caching pragmas. У этих тегов может быть типы «http-equiv» или «name», должны содержать атрибут «content», а так же атрибуты «lang», «scheme».


В HeadMeta помощника есть следующие методы для добавления и настройки тегов:

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)

setCharset($charset)


Следующие методы работают с  XHTML1_RDFA doctype и помощником Doctype:

appendProperty($property, $content, $modifiers)

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

prependProperty($property, $content, $modifiers)

setProperty($property, $content, $modifiers)


$keyValue – используется для задания значений «http-equiv» или «name»,

$content – значение атрибута «content»,

$modifiers -  ассоциативный массив, содержащий ключи для «lang»/«scheme».


Можно добавлять мета теги используя метод headMeta(), который имеет следующий синтаксис:

headMeta($content, $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND').

$keyValue – содержимое для ключа, указанного в $keyType, «http-equiv» или «name»,

$keyType – может быть определен как «property», если doctype установлен в XHTML1_RDFA.

$placement – может принимать значения «SET»(стираются все ранее сохраненные значения) или «APPEND»(добавляет в конец стека),  или «PREPEND»(добавляет в начало стека)


HeadMeta перекрывает за append(), offsetSet(), prepend(), set() для принудительного использования специальных методов, перечисленных выше. Внутри себя он сохраняет все элементы как маркер  stdClass, который в дальнейшем сериализуется, используя метод itemToString() .Это дает возможность проверки элементов, находящихся в стеке, и модификации их просто изменяя возвращаемый объект.

Помощник HeadMeta является частной реализацией помощника Placeholder.

Использование

Вы можете задавать новые мета-теги когда нужно и сколько нужно. Обычно они задаются для указания правил кэширования на стороне клиента или для задания ключевых слов для SEO.

Для задания ключевых словSEO:

// setting meta keywords
$this->headMeta()->appendName('keywords', 'framework, PHP, productivity');

Для задания правил кэширования на стороне клиента:

// disabling client-side cache
$this->headMeta()->appendHttpEquiv('expires',
                                   'Wed, 26 Feb 1997 08:21:57 GMT')
                 ->appendHttpEquiv('pragma', 'no-cache')
                 ->appendHttpEquiv('Cache-Control', 'no-cache');

Длязаданияcontent type, character set и language:

/ setting content type and character set
$this->headMeta()->appendHttpEquiv('Content-Type',
                                   'text/html; charset=UTF-8')
                 ->appendHttpEquiv('Content-Language', 'en-US');

Если вы используете HTML5, то character set нужно задать так:

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

Отобразить промежуточное сообщение перед перенаправлением(redirect) используя «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');

Когда пдготовите все мета теги, просто выведите помощник в макете:

<?php echo $this->headMeta() ?>

Использование с XHTML1_RDFA doctype

Для использования Facebook Open Graph Protocol включите RDFa doctype.

$this->doctype(Zend_View_Helper_Doctype::XHTML_RDFA);
$this->headMeta()->setProperty('og:title', 'my article title');
$this->headMeta()->setProperty('og:type', 'article');
echo $this->headMeta();
 
// output is:
//   <meta property="og:title" content="my article title" />
//   <meta property="og:type" content="article" />

Автор статьи: DuB