diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/View/Helper/HeadMeta.php --- a/web/lib/Zend/View/Helper/HeadMeta.php Thu Mar 21 17:31:31 2013 +0100 +++ b/web/lib/Zend/View/Helper/HeadMeta.php Thu Mar 21 19:50:53 2013 +0100 @@ -15,8 +15,8 @@ * @category Zend * @package Zend_View * @subpackage Helper - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @version $Id: HeadMeta.php 20096 2010-01-06 02:05:09Z bkarwin $ + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @version $Id: HeadMeta.php 24776 2012-05-08 18:36:40Z adamlundrigan $ * @license http://framework.zend.com/license/new-bsd New BSD License */ @@ -30,7 +30,7 @@ * @uses Zend_View_Helper_Placeholder_Container_Standalone * @package Zend_View * @subpackage Helper - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_View_Helper_HeadMeta extends Zend_View_Helper_Placeholder_Container_Standalone @@ -39,7 +39,7 @@ * Types of attributes * @var array */ - protected $_typeKeys = array('name', 'http-equiv', 'charset'); + protected $_typeKeys = array('name', 'http-equiv', 'charset', 'property'); protected $_requiredKeys = array('content'); protected $_modifierKeys = array('lang', 'scheme'); @@ -98,6 +98,8 @@ return 'name'; case 'HttpEquiv': return 'http-equiv'; + case 'Property': + return 'property'; default: require_once 'Zend/View/Exception.php'; $e = new Zend_View_Exception(sprintf('Invalid type "%s" passed to _normalizeType', $type)); @@ -118,6 +120,10 @@ * - offsetGetHttpEquiv($index, $keyValue, $content, $modifers = array()) * - prependHttpEquiv($keyValue, $content, $modifiers = array()) * - setHttpEquiv($keyValue, $content, $modifiers = array()) + * - appendProperty($keyValue, $content, $modifiers = array()) + * - offsetGetProperty($index, $keyValue, $content, $modifiers = array()) + * - prependProperty($keyValue, $content, $modifiers = array()) + * - setProperty($keyValue, $content, $modifiers = array()) * * @param string $method * @param array $args @@ -125,7 +131,7 @@ */ public function __call($method, $args) { - if (preg_match('/^(?Pset|(pre|ap)pend|offsetSet)(?PName|HttpEquiv)$/', $method, $matches)) { + if (preg_match('/^(?Pset|(pre|ap)pend|offsetSet)(?PName|HttpEquiv|Property)$/', $method, $matches)) { $action = $matches['action']; $type = $this->_normalizeType($matches['type']); $argc = count($args); @@ -162,14 +168,14 @@ return parent::__call($method, $args); } - /** - * Create an HTML5-style meta charset tag. Something like - * - * Not valid in a non-HTML5 doctype - * - * @param string $charset - * @return Zend_View_Helper_HeadMeta Provides a fluent interface - */ + /** + * Create an HTML5-style meta charset tag. Something like + * + * Not valid in a non-HTML5 doctype + * + * @param string $charset + * @return Zend_View_Helper_HeadMeta Provides a fluent interface + */ public function setCharset($charset) { $item = new stdClass; @@ -196,9 +202,16 @@ return false; } + $isHtml5 = is_null($this->view) ? false : $this->view->doctype()->isHtml5(); + if (!isset($item->content) - && (! $this->view->doctype()->isHtml5() - || (! $this->view->doctype()->isHtml5() && $item->type !== 'charset'))) { + && (! $isHtml5 || (! $isHtml5 && $item->type !== 'charset'))) { + return false; + } + + // is only supported with doctype RDFa + if ( !is_null($this->view) && !$this->view->doctype()->isRdfa() + && $item->type === 'property') { return false; } @@ -329,7 +342,7 @@ $modifiersString = ''; foreach ($item->modifiers as $key => $value) { - if ($this->view->doctype()->isHtml5() + if (!is_null($this->view) && $this->view->doctype()->isHtml5() && $key == 'scheme') { require_once 'Zend/View/Exception.php'; throw new Zend_View_Exception('Invalid modifier ' @@ -344,9 +357,9 @@ if ($this->view instanceof Zend_View_Abstract) { if ($this->view->doctype()->isHtml5() && $type == 'charset') { - $tpl = ($this->view->doctype()->isXhtml()) - ? '' - : ''; + $tpl = ($this->view->doctype()->isXhtml()) + ? '' + : ''; } elseif ($this->view->doctype()->isXhtml()) { $tpl = ''; } else { @@ -363,6 +376,14 @@ $this->_escape($item->content), $modifiersString ); + + if (isset($item->modifiers['conditional']) + && !empty($item->modifiers['conditional']) + && is_string($item->modifiers['conditional'])) + { + $meta = ''; + } + return $meta; }