The link view helpers are now based on the new URIHelper
authorChristopher Hlubek <hlubek@networkteam.com>
Sat, 28 Mar 2009 23:18:50 +0000 (23:18 +0000)
committerChristopher Hlubek <hlubek@networkteam.com>
Sat, 28 Mar 2009 23:18:50 +0000 (23:18 +0000)
typo3/sysext/fluid/Classes/ViewHelpers/ActionlinkViewHelper.php
typo3/sysext/fluid/Classes/ViewHelpers/TypolinkViewHelper.php

index 513f841..3858a49 100644 (file)
  * @subpackage
  * @version $Id:$
  */
-class Tx_Fluid_ViewHelpers_ActionlinkViewHelper extends Tx_Fluid_ViewHelpers_TypolinkViewHelper {
+class Tx_Fluid_ViewHelpers_ActionlinkViewHelper extends Tx_Fluid_Core_TagBasedViewHelper {
+       /**
+        * @var Tx_ExtBase_MVC_Web_URIHelper
+        */
+       protected $URIHelper;
+
+       public function __construct(array $arguments = array()) {
+               $this->URIHelper = t3lib_div::makeInstance('Tx_ExtBase_MVC_Web_URIHelper');
+       }
 
        /**
         * Render.
@@ -34,18 +42,9 @@ class Tx_Fluid_ViewHelpers_ActionlinkViewHelper extends Tx_Fluid_ViewHelpers_Typ
         */
        public function render($page = '', $action = '', $controller = '', $extensionKey = '', $anchor = '', $arguments = array()) {
                $view = $this->variableContainer->get('view');
-
-               $prefixedExtensionKey = 'tx_' . strtolower($view->getRequest()->getExtensionName()) . '_' . strtolower($view->getRequest()->getPluginKey());
-
-               $arguments['action'] = $action;
-               $arguments['controller'] = ($controller !== '') ? $controller : $view->getRequest()->getControllerName();
-               $prefixedArguments = array();
-               foreach ($arguments as $argumentName => $argumentValue) {
-                       $key = $prefixedExtensionKey . '[' . $argumentName . ']';
-                       $prefixedArguments[$key] = $argumentValue;
-               }
-
-               return parent::render($page, $anchor, TRUE, $prefixedArguments);
+               // TODO CH: Implement some logic wether to set useCacheHash
+               $uri = $this->URIHelper->URIFor($view->getRequest(), $action, $arguments, $controller, $page, $extensionKey, $anchor, TRUE);
+               return '<a href="' . $uri . '" ' . $this->renderTagAttributes() . '>' . $this->renderChildren() . '</a>';
        }
 }
 ?>
\ No newline at end of file
index 1f410bb..c538fac 100644 (file)
  */
 class Tx_Fluid_ViewHelpers_TypolinkViewHelper extends Tx_Fluid_Core_TagBasedViewHelper {
        /**
-        * an instance of tslib_cObj
-        *
-        * @var tslib_cObj
+        * @var Tx_ExtBase_MVC_Web_URIHelper
         */
-       protected $contentObject = null;
+       protected $URIHelper;
 
-       /**
-        * constructor for class tx_community_viewhelper_Link
-        */
        public function __construct(array $arguments = array()) {
-               if (is_null($this->contentObject)) {
-                       $this->contentObject = t3lib_div::makeInstance('tslib_cObj');
-               }
+               $this->URIHelper = t3lib_div::makeInstance('Tx_ExtBase_MVC_Web_URIHelper');
        }
+
        /**
         * Arguments initialization
         *
@@ -59,36 +53,8 @@ class Tx_Fluid_ViewHelpers_TypolinkViewHelper extends Tx_Fluid_Core_TagBasedView
         * @author Sebastian Kurf├╝rst <sebastian@typo3.org>
         */
        public function render($page = '', $anchor = '', $useCacheHash = TRUE, $arguments = array()) {
-
-               if ($page === '') {
-                       $page = $GLOBALS['TSFE']->id;
-               }
-
-               $typolinkConfiguration = array(
-                       'parameter' => $page,
-                       'ATagParams' => $this->renderTagAttributes()
-               );
-
-               if (count($arguments) > 0) {
-                       foreach ($arguments as $argumentNameSpace => $argument) {
-                               $typolinkConfiguration['additionalParams'] .= '&' . $argumentNameSpace . '=' . rawurlencode($argument);
-                       }
-               }
-               if ($anchor) {
-                       $typolinkConfiguration['section'] = $anchor;
-               }
-               if ($useCacheHash) {
-                       $typolinkConfiguration['useCacheHash'] = 1;
-               } else {
-                       $typolinkConfiguration['useCacheHash'] = 0;
-               }
-
-               $link = $this->contentObject->typoLink(
-                       $this->renderChildren(),
-                       $typolinkConfiguration
-               );
-
-               return $link;
+               $uri = $this->URIHelper->typolinkURI($page, $anchor, $useCacheHash, $arguments);
+               return '<a href="' . $uri . '" ' . $this->renderTagAttributes() . '>' . $this->renderChildren() . '</a>';
        }
 }