2

HTML5在 Zend Framework 应用程序中使用 doctype。如果我使用XHTML1_RDFA我的文档类型,headMeta视图助手允许我使用该appendProperty()功能。我知道元属性在 HTML5 中无效,但我还是想这样做。如何覆盖该行为以便添加这些元标记?

我在 SO 上找到了这些相关的帖子,但他们没有回答这个具体问题:

4

1 回答 1

1

我扩展了 HeadMeta 视图助手以允许它们。它也在http://validator.w3.org/上验证。

class My_View_Helper_HeadMeta extends Zend_View_Helper_HeadMeta
{
    /**
     * Determine if item is valid
     *
     * @param  mixed $item
     * @return boolean
     */
    protected function _isValid($item)
    {
        if ((!$item instanceof stdClass)
            || !isset($item->type)
            || !isset($item->modifiers))
        {
            return false;
        }

        if (!isset($item->content)
        && (! $this->view->doctype()->isHtml5()
        || (! $this->view->doctype()->isHtml5() && $item->type !== 'charset'))) {
            return false;
        }

        // <meta property= ... /> is only supported with doctype RDFa
        if (!$this->view->doctype()->isRdfa()
            && !$this->view->doctype()->isHtml5()
            && $item->type === 'property') {
            return false;
        }

        return true;
    }
}
于 2013-04-12T14:37:19.510 回答