ExtBase:
authorSebastian Kurfürst <sebastian@typo3.org>
Tue, 31 Mar 2009 12:02:42 +0000 (12:02 +0000)
committerSebastian Kurfürst <sebastian@typo3.org>
Tue, 31 Mar 2009 12:02:42 +0000 (12:02 +0000)
* Request->arguments is now an array instead of an ArrayObject
* AbstractController: Fixed redirect() and forward() helpers

typo3/sysext/extbase/Classes/MVC/Controller/AbstractController.php
typo3/sysext/extbase/Classes/MVC/Request.php
typo3/sysext/extbase/Classes/MVC/Web/RequestBuilder.php

index 0d8fc04..db63017 100755 (executable)
@@ -119,7 +119,7 @@ abstract class Tx_ExtBase_MVC_Controller_AbstractController implements Tx_ExtBas
         * @return void
         * @throws Tx_ExtBase_Exception_StopAction
         */
-       public function forward($actionName, $controllerName = NULL, $extensionName = NULL, Tx_ExtBase_MVC_Controller_Arguments $arguments = NULL) {
+       public function forward($actionName, $controllerName = NULL, $extensionName = NULL, array $arguments = NULL) {
                $this->request->setDispatched(FALSE);
                $this->request->setControllerActionName($actionName);
                if ($controllerName !== NULL) $this->request->setControllerName($controllerName);
@@ -147,7 +147,8 @@ abstract class Tx_ExtBase_MVC_Controller_AbstractController implements Tx_ExtBas
        protected function redirect($actionName, $controllerName = '', $extensionKey = '', array $arguments = NULL, $delay = 0, $statusCode = 303) {
                if (!$this->request instanceof Tx_ExtBase_MVC_Web_Request) throw new Tx_ExtBase_Exception_UnsupportedRequestType('redirect() only supports web requests.', 1220539734);
 
-               $uri = $this->URIHelper->URIFor($this->request, $actionName, $arguments, $controllerName, $extensionKey);
+               $uriHelper = t3lib_div::makeInstance('Tx_ExtBase_MVC_View_Helper_UriHelper');
+               $uri = $uriHelper->URIFor($this->request, $actionName, $arguments, $controllerName, $extensionKey);
                $this->redirectToURI($uri, $delay, $statusCode);
        }
 
index 85487c8..c1b3b37 100644 (file)
@@ -299,20 +299,20 @@ class Tx_ExtBase_MVC_Request {
        }
 
        /**
-        * Sets the whole arguments ArrayObject and therefore replaces any arguments
+        * Sets the whole arguments array and therefore replaces any arguments
         * which existed before.
         *
-        * @param ArrayObject $arguments An ArrayObject of argument names and their values
+        * @param array $arguments An array of argument names and their values
         * @return void
         */
-       public function setArguments(ArrayObject $arguments) {
+       public function setArguments(array $arguments) {
                $this->arguments = $arguments;
        }
 
        /**
-        * Returns an ArrayObject of arguments and their values
+        * Returns an array of arguments and their values
         *
-        * @return ArrayObject ArrayObject of arguments and their values (which may be arguments and values as well)
+        * @return array Associative array of arguments and their values (which may be arguments and values as well)
         */
        public function getArguments() {
                return $this->arguments;
index 5ca8bc2..5df143e 100755 (executable)
@@ -54,7 +54,7 @@ class Tx_ExtBase_MVC_Web_RequestBuilder {
                                $allowedControllerActions[$controllerConfiguration['controllerName']][] = $actionName;
                        }
                }
-               $parameters = t3lib_div::_GET('tx_' . strtolower($extensionName) . '_' . strtolower($pluginKey)); // TODO Parameters are unvalidated!
+               $parameters = t3lib_div::_GET('tx_' . strtolower($extensionName) . '_' . strtolower($pluginKey));
                if (is_string($parameters['controller']) && array_key_exists($parameters['controller'], $allowedControllerActions)) {
                        $controllerName = stripslashes($parameters['controller']);
                } elseif ($defaultControllerConfiguration['controllerName'] !== NULL) {