Содержание


Doctype Helper


Doctype Helper



Валидные (правильные) документы HTML и  XHTML должны иметь DOCTYPE объвление. Во-первых, тяжело запомнить правильное объявление DOCTYPE для каждого типа, во-вторых – ошибка в объявлении может повлиять на некоторые элементы и их рендеринг (отображение). Например, раздел CDATA в <script> или <style>.

Помощники Doctype могут указать такие типы:

XHTML11

XHTML1_STRICT

XHTML1_TRANSITIONAL

XHTML1_FRAMESET

XHTML1_RDFA

XHTML_BASIC1

HTML4_STRICT

HTML4_LOOSE

HTML4_FRAMESET

HTML5

Так же существует возможность объявлять другие или свои типы.

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

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

Указать тип элемента можно в любое время. Правда помощники, которые опираются на doctype смогут определеить его только после объявление, поэтому логично прописывать в bootstrap:

$doctypeHelper = new Zend_View_Helper_Doctype();
$doctypeHelper->doctype('XHTML1_STRICT');

И потом выводить в самом начале вашего макета (layout) :

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

Получение Doctype

Если есть необходимость узнать про уже заданный Doctype, это можно сделать с помощью getDoctype() объекта, возвращаемого одноименным помощником.

$doctype = $view->doctype()->getDoctype();

Если же нужно просто узнать является ли DoctypeXHTML или нет, то воспользуйтесь методом isXhtml() :

if ($view->doctype()->isXhtml()) {
    // do something differently
}

Так же есть возможность проверить  Doctype на HTML5:

if ($view->doctype()->isHtml5()) {
    // do something differently
}

Использование Doctype с Open Graph Protocol

Для реализации OpenGraphProtocol нужно указать тип документа XHTML1_RDFA. Такой doctype позволяет разработчикам использовать Resource Description Framework в документе XHTML.

$doctypeHelper = new Zend_View_Helper_Doctype();
$doctypeHelper->doctype('XHTML1_RDFA');

Тип документа RDF XHTML позволяет проверить, когда свойство «property» тега «meta» используется для Open Graph Protocol. Пример ниже:

<?php echo $this->doctype('XHTML1_RDFA'); ?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://opengraphprotocol.org/schema/">
<head>
   <meta property="og:type" content="musician" />

В этом примере мы установили свойство в «og:type». Ссылки «og» пространства имен Open Graph мы объявили в теге «html». Свойтсво «content» оппредиляет страницу о музиканте. Для болем близького ознакомления ознайомтесь с документацией по Open Graph Protocol. Помощник HeadMeta позволяет программно задавать Open Graph Protocol в тегах «meta».

Как проверить doctype, является ли он XHTML1_RDFA:

<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml"
      <?php if ($view->doctype()->isRdfa()): ?>
      xmlns:og="http://opengraphprotocol.org/schema/"
      xmlns:fb="http://www.facebook.com/2008/fbml"
      <?php endif; ?>
>