--- drake/lib/cake_embedded_dispatcher.class.php 2007-05-10 17:35:32.000000000 -0700 +++ drake/lib/cake_embedded_dispatcher.class.NEW.php 2007-05-10 17:37:06.000000000 -0700 @@ -168,9 +168,19 @@ class CakeEmbeddedDispatcher * @access public * @since 1.0 */ - function setIgnoreParameters($ignoreParameters) + function setIgnoreParameters($ignoreParameters = array()) { - $this->ignoreParameters = $ignoreParameters; + foreach ($ignoreParameters as $parameter) + { + if (isset($_GET[$parameter])) + { + $this->ignoreParameters[] = array($parameter => $_GET[$parameter]); + } + elseif (isset($_REQUEST[$parameter])) + { + $this->ignoreParameters[] = array($parameter => $_REQUEST[$parameter]); + } + } } /** @@ -283,10 +293,10 @@ class CakeEmbeddedDispatcher if (isset($this->ignoreParameters)) { - foreach($this->ignoreParameters as $parameter) + foreach($this->ignoreParameters as $key => $value) { - unset($_REQUEST[$parameter]); - unset($_GET[$parameter]); + unset($_REQUEST[$key]); + unset($_GET[$key]); } } @@ -327,6 +337,18 @@ class CakeEmbeddedDispatcher */ function _finish($url) { + + // Restore parameters + + if (isset($this->ignoreParameters)) + { + foreach($this->ignoreParameters as $key => $value) + { + $_REQUEST[$key] = $value; + $_GET[$key] = $value; + } + } + // Restore session if ($this->restoreSession && isset($this->backSession) && isset($this->backSession['data']))