diff --git a/lib/Cake/View/View.php b/lib/Cake/View/View.php index 906434efa94..e6deab5cac2 100644 --- a/lib/Cake/View/View.php +++ b/lib/Cake/View/View.php @@ -394,7 +394,7 @@ public function element($name, $data = array(), $options = array()) { } if (isset($options['cache'])) { - $contents = $this->_elementCache($name, $plugin, $options); + $contents = $this->_elementCache($name, $plugin, $data, $options); if ($contents !== false) { return $contents; } @@ -1107,7 +1107,7 @@ protected function _paths($plugin = null, $cached = true) { * @param string $plugin Plugin name * @param array $options Element options */ - protected function _elementCache($name, $plugin, $options) { + protected function _elementCache($name, $plugin, $data, $options) { $underscored = null; if ($plugin) { $underscored = Inflector::underscore($plugin); @@ -1124,8 +1124,8 @@ protected function _elementCache($name, $plugin, $options) { ); $this->elementCacheSettings = array_merge($defaults, $options['cache']); } - $key = 'element_' . $this->elementCacheSettings['key']; - return = Cache::read($key, $this->elementCacheSettings['config']); + $this->elementCacheSettings['key'] = 'element_' . $this->elementCacheSettings['key']; + return Cache::read($this->elementCacheSettings['key'], $this->elementCacheSettings['config']); } /** @@ -1140,7 +1140,7 @@ protected function _renderElement($file, $data, $options) { if (!$this->_helpersLoaded) { $this->loadHelpers(); } - if ($callbacks) { + if ($options['callbacks']) { $this->getEventManager()->dispatch(new CakeEvent('View.beforeRender', $this, array($file))); } @@ -1151,7 +1151,7 @@ protected function _renderElement($file, $data, $options) { $this->getEventManager()->dispatch(new CakeEvent('View.afterRender', $this, array($file, $element))); } if (isset($options['cache'])) { - Cache::write($key, $element, $this->elementCacheSettings['config']); + Cache::write($this->elementCacheSettings['key'], $element, $this->elementCacheSettings['config']); } return $element; }