2

HTML5ZendFrameworkアプリケーションでDoctypeを使用しています。XHTML1_RDFADoctypeとして使用する場合、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 に答える