--- 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('/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|HttpEquiv)$/', $method, $matches)) {
+ if (preg_match('/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|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 <meta charset="utf-8">
- *
- * 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 <meta charset="utf-8">
+ *
+ * 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;
+ }
+
+ // <meta property= ... /> 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())
- ? '<meta %s="%s"/>'
- : '<meta %s="%s">';
+ $tpl = ($this->view->doctype()->isXhtml())
+ ? '<meta %s="%s"/>'
+ : '<meta %s="%s">';
} elseif ($this->view->doctype()->isXhtml()) {
$tpl = '<meta %s="%s" content="%s" %s/>';
} 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 = '<!--[if ' . $this->_escape($item->modifiers['conditional']) . ']>' . $meta . '<![endif]-->';
+ }
+
return $meta;
}