ExtBase:
authorJochen Rau <j.rau@web.de>
Sat, 28 Mar 2009 09:57:02 +0000 (09:57 +0000)
committerJochen Rau <j.rau@web.de>
Sat, 28 Mar 2009 09:57:02 +0000 (09:57 +0000)
* Removed marker based template engine (it was replaced by fluid - hooray)

typo3/sysext/extbase/Classes/MVC/View/Helper/AbstractHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/ConvertHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/ForHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/HelperInterface.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/LinkHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/TranslateHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/Helper/URIHelper.php [deleted file]
typo3/sysext/extbase/Classes/MVC/View/TemplateView.php [deleted file]

diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/AbstractHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/AbstractHelper.php
deleted file mode 100644 (file)
index 46508f7..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * An abstract View Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-abstract class Tx_ExtBase_MVC_View_Helper_AbstractHelper implements Tx_ExtBase_MVC_View_Helper_HelperInterface {
-
-       /**
-        * @var Tx_ExtBase_MVC_Web_Request
-        */
-       protected $request;
-
-       /**
-        * Sets the current request
-        */
-       public function setRequest(Tx_ExtBase_MVC_Web_Request $request) {
-               $this->request = $request;
-       }
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/ConvertHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/ConvertHelper.php
deleted file mode 100644 (file)
index 4b191a2..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * A Converter Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-class Tx_ExtBase_MVC_View_Helper_ConvertHelper extends Tx_ExtBase_MVC_View_Helper_AbstractHelper {
-
-       public function render($view, $arguments, $content, $templateSource, $variables) {
-               $value = $content;
-               $format = $arguments['format'];
-               if ($value instanceof DateTime) {
-                       if ($format === NULL) {
-                               $value = $value->format('Y-m-d G:i');
-                       } else {
-                               $value = $value->format($format);
-                       }
-               } else {
-               }
-               return $value;
-       }
-       
-
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/ForHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/ForHelper.php
deleted file mode 100644 (file)
index bdc5fe0..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * A For Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-class Tx_ExtBase_MVC_View_Helper_ForHelper extends Tx_ExtBase_MVC_View_Helper_AbstractHelper {
-
-       public function render($view, $arguments, $content, $templateSource, $variables) {
-               if (is_array($arguments['each'])) {
-                       foreach ($arguments['each'] as $singleElement) {
-                               $variables[Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($arguments['as'])] = $singleElement;
-                               $newContent .= $view->renderTemplate($templateSource, $variables);
-                       }
-               }
-               return $newContent;
-       }
-
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/HelperInterface.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/HelperInterface.php
deleted file mode 100644 (file)
index 93be063..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * View Helper interface
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-interface Tx_ExtBase_MVC_View_Helper_HelperInterface {
-
-       /**
-        * Sets the current request
-        */
-       public function setRequest(Tx_ExtBase_MVC_Web_Request $request);
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/LinkHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/LinkHelper.php
deleted file mode 100644 (file)
index a383e1b..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-require_once(PATH_tslib . 'class.tslib_content.php');
-
-/**
- * A For Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-class Tx_ExtBase_MVC_View_Helper_LinkHelper extends Tx_ExtBase_MVC_View_Helper_AbstractHelper {
-
-       /**
-        * an instance of tslib_cObj
-        *
-        * @var tslib_cObj
-        */
-       protected $contentObject = null;
-
-       /**
-        * 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 method renders the link of the View Helper
-        *
-        * @param string $view The view invoked the view helper
-        * @param string $content The content
-        * @param string $arguments 
-        * @param string $templateSource 
-        * @param string $variables 
-        * @return string A content wrapped in a link
-        */
-       public function render($view, $arguments, $content, $templateSource, $variables) {
-               $parameters = t3lib_div::_GET();
-               $prefixedExtensionKey = 'tx_' . strtolower($this->request->getExtensionName()) . '_' . strtolower($this->request->getControllerName());
-               if (!empty($arguments['to'])) {
-                       $linkTo = $arguments['to'];
-                       $view->replaceReferencesWithValues($linkTo, $variables);
-                       unset($parameters['id']);
-               }
-               if (!empty($arguments['parameters'])) {
-                       $explodedParameters = explode(' ', $arguments['parameters']);
-                       $additionalParameters = array();
-                       foreach ($explodedParameters as $parameterString) {
-                               list($parameterKey, $parameterValue) = explode('=', trim($parameterString));
-                               $view->replaceReferencesWithValues($parameterValue, $variables);
-                               $additionalParameters[$prefixedExtensionKey] = array(trim($parameterKey) => $parameterValue);
-                               if (is_array($parameters[$prefixedExtensionKey])) {
-                                       $parameters[$prefixedExtensionKey] = array_merge($parameters[$prefixedExtensionKey], $additionalParameters[$prefixedExtensionKey]);
-                               } else {
-                                       $parameters[$prefixedExtensionKey] = $additionalParameters[$prefixedExtensionKey];
-                               }
-                       }
-               }
-               $linkText = $view->renderTemplate($templateSource, $variables);
-               $parameters = is_array($parameters) ? t3lib_div::implodeArrayForUrl('', $parameters, '', 1) : '';
-               $link = $this->contentObject->typoLink(
-                       $linkText,
-                       array(
-                               'parameter' => $linkTo,
-                               'additionalParams' => $parameters
-                       )
-               );
-               return $link;
-       }
-                       
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/TranslateHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/TranslateHelper.php
deleted file mode 100644 (file)
index 037f5f3..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * A For Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-class Tx_ExtBase_MVC_View_Helper_TranslateHelper extends Tx_ExtBase_MVC_View_Helper_AbstractHelper {
-
-       /**
-        * @var string
-        */
-       protected $languagePath = 'Resources/Private/Language/';
-
-       /**
-        * Local Language content
-        *
-        * @var string
-        **/
-       protected $LOCAL_LANG = array();
-
-       /**
-        * Local Language content charset for individual labels (overriding)
-        *
-        * @var string
-        **/
-       protected $LOCAL_LANG_charset = array();
-
-       /**
-        * Key of the language to use
-        *
-        * @var string
-        **/
-       protected $languageKey = 'default';
-
-       /**
-        * Pointer to alternative fall-back language to use
-        *
-        * @var string
-        **/
-       protected $alternativeLanguageKey = '';
-       // var $LLtestPrefix='';                        // You can set this during development to some value that makes it easy for you to spot all labels that ARe delivered by the getLL function.
-       // var $LLtestPrefixAlt='';             // Save as LLtestPrefix, but additional prefix for the alternative value in getLL() function calls
-       
-
-       public function render($view, $arguments, $content, $templateSource, $variables) {
-               $this->initializeLocalization($view);
-               $translation = $this->translate($arguments['key']);
-               return (is_string($translation) && !empty($translation)) ? $translation : '';
-       }
-       
-       /**
-        * Loads local-language values by looking for a "locallang.php" file in the plugin class directory ($this->scriptRelPath) and if found includes it.
-        * Also locallang values set in the TypoScript property "_LOCAL_LANG" are merged onto the values found in the "locallang.php" file.
-        *
-        * @return      void
-        */
-       protected function initializeLocalization($view)        {
-               $languageFilePath = t3lib_extMgm::extPath(strtolower($this->request->getExtensionName())) . $this->languagePath . 'locallang.php';
-
-               if ($GLOBALS['TSFE']->config['config']['language'])     {
-                       $this->languageKey = $GLOBALS['TSFE']->config['config']['language'];
-                       if ($GLOBALS['TSFE']->config['config']['language_alt']) {
-                               $this->alternativeLanguageKey = $GLOBALS['TSFE']->config['config']['language_alt'];
-                       }
-               }
-
-               $this->LOCAL_LANG = t3lib_div::readLLfile($languageFilePath, $this->languageKey, $GLOBALS['TSFE']->renderCharset);
-               if ($this->alternativeLanguageKey)      {
-                       $tempLOCAL_LANG = t3lib_div::readLLfile($languageFilePath, $this->alternativeLanguageKey);
-                       $this->LOCAL_LANG = array_merge(is_array($this->LOCAL_LANG) ? $this->LOCAL_LANG : array(), $tempLOCAL_LANG);
-               }
-
-               $configurationManager = t3lib_div::makeInstance('Tx_ExtBase_Configuration_Manager');
-               $settings = $configurationManager->getSettings($this->request->getExtensionName());
-               if (is_array($settings['_LOCAL_LANG'])) {
-                       foreach ($settings['_LOCAL_LANG'] as $k => $lA) {
-                               if (is_array($lA)) {
-                                       foreach($lA as $llK => $llV) {
-                                               if (!is_array($llV)) {
-                                                       $this->LOCAL_LANG[$k][$llK] = $llV;
-                                                               // For labels coming from the TypoScript (database) the charset is assumed to be "forceCharset" and if that is not set, assumed to be that of the individual system languages
-                                                       $this->LOCAL_LANG_charset[$k][$llK] = $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'] ? $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'] : $GLOBALS['TSFE']->csConvObj->charSetArray[$k];
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-       
-       /**
-        * Returns the localized label of the LOCAL_LANG key, $key
-        * Notice that for debugging purposes prefixes for the output values can be set with the internal vars ->LLtestPrefixAlt and ->LLtestPrefix
-        *
-        * @param       string          The key from the LOCAL_LANG array for which to return the value.
-        * @param       string          Alternative string to return IF no value is found set for the key, neither for the local language nor the default.
-        * @param       boolean         If true, the output label is passed through htmlspecialchars()
-        * @return      string          The value from LOCAL_LANG.
-        */
-       function translate($key, $default = '', $filterTranslation = FALSE)     {
-               // The "from" charset of csConv() is only set for strings from TypoScript via _LOCAL_LANG
-               if (isset($this->LOCAL_LANG[$this->languageKey][$key])) {
-                       $translation = $GLOBALS['TSFE']->csConv($this->LOCAL_LANG[$this->languageKey][$key], $this->LOCAL_LANG_charset[$this->languageKey][$key]);
-               } elseif ($this->alternativeLanguageKey && isset($this->LOCAL_LANG[$this->alternativeLanguageKey][$key]))       {
-                       $translation = $GLOBALS['TSFE']->csConv($this->LOCAL_LANG[$this->alternativeLanguageKey][$key], $this->LOCAL_LANG_charset[$this->alternativeLanguageKey][$key]);
-               } elseif (isset($this->LOCAL_LANG['default'][$key]))    {
-                       $translation = $this->LOCAL_LANG['default'][$key];      // No charset conversion because default is english and thereby ASCII
-               } else {
-                       $translation = $default;
-               }
-               return $filterTranslation === TRUE ? htmlspecialchars($translation) : $translation;
-       }
-       
-       
-
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/Helper/URIHelper.php b/typo3/sysext/extbase/Classes/MVC/View/Helper/URIHelper.php
deleted file mode 100644 (file)
index da095cb..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-/**
- * A URI/Link Helper
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- */
-class Tx_ExtBase_MVC_View_Helper_URIHelper extends Tx_ExtBase_MVC_View_Helper_AbstractHelper {
-
-       /**
-        * @var Tx_ExtBase_MVC_Web_Routing_RouterInterface
-        */
-       protected $router;
-
-       /**
-        * Creates a link by making use of the Routers reverse routing mechanism.
-        * 
-        * @param string $label Inner HTML of the generated link. Label is htmlspecialchared by default
-        * @param string $actionName Name of the action to be called
-        * @param array $arguments Additional arguments
-        * @param string $controllerName Name of the target controller. If not set, current controller is used
-        * @param string $extensionName Name of the target extension. If not set, current extension is used
-        * @param string $subextensionName Name of the target subextension. If not set, current subextension is used
-        * @param array $options Further options
-        * @return string the HTML code for the generated link
-        * @see UIRFor()
-        */
-       public function linkTo($label, $actionName, $arguments = array(), $controllerName = NULL, $extensionName = NULL) {
-               $link = '<a href="' . $this->URIFor($actionName, $arguments, $controllerName, $extensionName) . '">' . htmlspecialchars($label) . '</a>';
-               return $link;
-       }
-
-       /**
-        * Creates an URI by making use of the Routers reverse routing mechanism.
-        * 
-        * @param string $actionName Name of the action to be called
-        * @param array $arguments Additional arguments
-        * @param string $controllerName Name of the target controller. If not set, current controller is used
-        * @param string $extensionName Name of the target extension. If not set, current extension is used
-        * @param array $options Further options
-        * @return string the HTML code for the generated link
-        */
-       public function URIFor($actionName, $arguments = array(), $controllerName = NULL, $extensionName = NULL) {
-               $routeValues = $arguments;
-               $routeValues['@action'] = $actionName;
-               $routeValues['@controller'] = ($controllerName === NULL) ? $this->request->getControllerName() : $controllerName;
-               $routeValues['@extension'] = ($extensionName === NULL) ? $this->request->getExtensionName() : $extensionName;
-
-               $URIString = $this->router->resolve($routeValues);
-               return $URIString;
-       }
-}
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Classes/MVC/View/TemplateView.php b/typo3/sysext/extbase/Classes/MVC/View/TemplateView.php
deleted file mode 100644 (file)
index e51822c..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-<?php
-declare(ENCODING = 'utf-8');
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-require_once(PATH_tslib . 'class.tslib_content.php');
-require_once(PATH_t3lib . 'class.t3lib_parsehtml.php');
-
-/**
- * A basic Template View
- *
- * @package TYPO3
- * @subpackage extbase
- * @version $ID:$
- * @scope prototype
- */
-class Tx_ExtBase_MVC_View_TemplateView extends Tx_ExtBase_MVC_View_AbstractView {
-
-       /**
-        * Pattern for fetching information from controller object name
-        * @var string
-        */
-       const PATTERN_CONTROLLER = '/^Tx_\w*_Controller_(?P<ControllerName>\w*)Controller$/sm';
-
-       const SCAN_PATTERN_SUBPARTS = '/<!--\s*###(?P<SubpartName>[^#]*)###.*?-->(?P<SubpartTemplateSource>.*?)<!--\s*###(?P=SubpartName)###.*?-->/sm';
-       const SCAN_PATTERN_MARKER = '/###(?P<MarkerName>.*?)###/sm';
-
-       const SPLIT_PATTERN_STATEMENT = '/(?:\s*(?P<ViewHelperName>[a-zA-Z0-9_]+):)?(?P<ContextVariable>(?:\s*[a-zA-Z0-9_]+)(?=(\s|$)))?(?P<ObjectAndProperty>(?:\s*[a-zA-Z0-9_]+\.(?:[a-zA-Z0-9_]+)(?=(\s|$))))?(?P<Attributes>(?:\s*[a-zA-Z0-9_]+=(?:"(?:[^"])*"|\'(?:[^\'])*\'|\{(?:[^\{])*\}|[a-zA-Z0-9_\.]+)\s*)*)/';
-       const SPLIT_PATTERN_ARGUMENTS = '/(?P<ArgumentKey>[a-zA-Z][a-zA-Z0-9_]*)=(?:(?:"(?P<ValueDoubleQuoted>[^"]+)")|(?:\'(?P<ValueSingleQuoted>[^\']+)\')|(?:\{(?P<ValueObject>[^\'\s]+)\})|(?:(?P<ValueUnquoted>[^"\'\s]*)))/';
-
-       /**
-        * File pattern for resolving the template file
-        * @var string
-        */
-       protected $templateFilePattern = 'Resources/Private/Templates/@controller/@action.html';
-
-       /**
-        * @var array Marker uids and their replacement content
-        */
-       protected $markers = array();
-
-       /**
-        * @var array Subparts
-        */
-       protected $subparts = array();
-
-       /**
-        * @var array Wrapped subparts
-        */
-       protected $wrappedSubparts = array();
-
-       /**
-        * Context variables
-        * @var array of context variables
-        */
-       protected $contextVariables = array();
-
-       /**
-        * Template file path. If set, overrides the templateFilePattern
-        * @var string
-        */
-       protected $templateFile = NULL;
-
-       /**
-        * @var string
-        */
-       protected $templateSource = '';
-
-       /**
-        * Name of current action to render
-        * @var string
-        */
-       protected $actionName;
-
-       /**
-        * The content object
-        *
-        * @var tslib_cObj
-        **/
-       private $cObj;
-       
-       public function __construct() {
-               $this->initializeView();
-       }
-
-       /**
-        * Initialize view
-        *
-        * @return void
-        */
-       protected function initializeView() {
-               $this->cObj = t3lib_div::makeInstance('tslib_cObj');
-       }
-
-       /**
-        * Sets the template file. Effectively overrides the dynamic resolving of a template file.
-        *
-        * @param string $templateFile Template file path
-        * @return void
-        */
-       public function setTemplateFile($templateFile) {
-               $this->templateFile = $templateFile;
-       }
-       
-       /**
-        * Sets the text source which contains the markers of this template view
-        * is going to fill in.
-        *
-        * @param string $templateSource The template source
-        * @return void
-        */
-       public function setTemplateSource($templateSource) {
-               $this->templateSource = $templateSource;
-       }
-
-       /**
-        * Resolve the template file path, based on $this->templateFilePath and $this->templatePathPattern.
-        * In case a template has been set with $this->setTemplateFile, it just uses the given template file.
-        * Otherwise, it resolves the $this->templatePathPattern
-        *
-        * @param string $action Name of action. Optional. Defaults to current action.
-        * @return string File name of template file
-        */
-       protected function resolveTemplateFile() {
-               if ($this->templateFile) {
-                       return $this->templateFile;
-               } else {
-                       $action = ($this->actionName ? $this->actionName : $this->request->getControllerActionName());
-                       preg_match(self::PATTERN_CONTROLLER, $this->request->getControllerObjectName(), $matches);
-                       $controllerName = $matches['ControllerName'];
-                       $templateFile = $this->templateFilePattern;
-                       $templateFile = str_replace('@controller', $controllerName, $templateFile);
-                       $templateFile = str_replace('@action', strtolower($action), $templateFile);
-                       return $templateFile;
-               }
-       }
-
-       /**
-        * Load the given template file.
-        *
-        * @param string $templateFilePath Full path to template file to load
-        * @return string the contents of the template file
-        */
-       protected function loadTemplateFile($templateFilePath) {
-               $templateSource = file_get_contents(t3lib_extMgm::extPath(strtolower($this->request->getExtensionName())) . $templateFilePath, FILE_TEXT);
-               if (!$templateSource) throw new RuntimeException('The template file "' . $templateFilePath . '" was not found.', 1225709595);
-               return $templateSource;
-       }
-
-       /**
-        * Find the XHTML template according to $this->templatePathPattern and render the template.
-        *
-        * @return string Rendered Template
-        */
-       public function render() {
-               if ($this->templateSource == '') {
-                       $templateFileName = $this->resolveTemplateFile();
-                       $templateSource = $this->loadTemplateFile($templateFileName);
-               } else {
-                       $templateSource = $this->templateSource;
-               }
-               $content = $this->renderTemplate($templateSource, $this->contextVariables);
-               $this->removeUnfilledMarkers($content);
-               return $content;
-       }
-
-       /**
-        * Recursive rendering of a given template source.
-        *
-        * @param string $templateSource The template source
-        * @return void
-        */
-       public function renderTemplate($templateSource, $variables) {
-               $content = '';
-               $subpartArray = array();
-               $subparts = $this->getSubparts($templateSource);
-               foreach ($subparts as $subpartMarker => $subpartSource) {
-                       $subpartArray['###' . $subpartMarker . '###'] = $this->getMarkerContent($subpartMarker, $variables, $subpartSource);
-               }
-
-               $markerArray = array();
-               $markers = $this->getMarkers($templateSource);
-               foreach ($markers as $marker => $foo) {
-                       $markerArray['###' . $marker . '###'] = $this->getMarkerContent($marker, $variables);
-               }
-               
-               $content = $this->cObj->substituteMarkerArrayCached($templateSource, $markerArray, $subpartArray);
-
-               return $content;
-       }
-       
-       /**
-        * Returns the markers and their values
-        *
-        * @param string $templateSource The template source code with markers
-        * @param string $value The value (only useful if the method is called recursively)
-        * @return array The array with marker-value pairs
-        */
-       public function getMarkerArray($templateSource, $value = NULL) {
-               $markers = $this->getMarkers($templateSource);
-               $markerArray = array();
-               foreach ($markers as $marker => $foo) {
-                       $markerArray['###' . $marker . '###'] = $this->getMarkerContent($marker, $value);
-               }
-               return $markerArray;
-       }
-       
-       /**
-        * Returns the value of a marker
-        *
-        * @param string $marker The marker as string (without ###|###)
-        * @param array $variables The variables of the context (these may be assigned by the controller or determined inside this view)
-        * @param string $templateSource The template source code
-        * @return string The value
-        */
-       public function getMarkerContent($marker, $variables = NULL, $templateSource = NULL) {
-               $explodedMarker = t3lib_div::trimExplode('|', $marker);
-               foreach ($explodedMarker as $key => $statement) {
-                       preg_match(self::SPLIT_PATTERN_STATEMENT, $statement, $explodedStatement);
-                       $viewHelperName = Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($explodedStatement['ViewHelperName']);
-                       $contextVariableName = Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($explodedStatement['ContextVariable']);
-                       $explodedObjectAndProperty = explode('.', $explodedStatement['ObjectAndProperty']);
-                       $objectName = Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($explodedObjectAndProperty[0]);
-                       $property = Tx_ExtBase_Utility_Strings::underscoredToLowerCamelCase($explodedObjectAndProperty[1]);
-                       if (!empty($explodedStatement['Attributes'])) {
-                               $arguments = $this->getArguments($explodedStatement['Attributes'], $variables);
-                       }
-                       
-                       if ($variables[$objectName] instanceof Tx_ExtBase_DomainObject_AbstractDomainObject) {
-                               $object = $variables[$objectName];
-                               $possibleMethodName = 'get' . ucfirst($property);
-                               if (method_exists($object, $possibleMethodName)) {
-                                       $content = $object->$possibleMethodName(); // Properties should be already secure (XSS)
-                               }
-                       } elseif (!empty($variables[$contextVariableName])) {
-                               $content = filter_var($variables[$contextVariableName], FILTER_SANITIZE_STRING);
-                       }
-
-                       if (!empty($viewHelperName)) {
-                               $viewHelperClassName = 'Tx_ExtBase_MVC_View_Helper_' . $viewHelperName . 'Helper';
-                               $viewHelper = $this->getViewHelper($viewHelperClassName);
-                               $content = $viewHelper->render($this, $arguments, $content, $templateSource, $variables);
-                       }
-               }
-               return $content;
-       }
-       
-       /**
-        * Parses the attributes string and returns the arguments
-        *
-        * @param string $attributes The attributes string
-        * @param array $variables The variables of the context (these may be assigned by the controller or determined inside this view)
-        * @return array The arguments as key => value
-        */
-       protected function getArguments($attributes, $variables) {
-               preg_match_all(self::SPLIT_PATTERN_ARGUMENTS, $attributes, $explodedAttributes, PREG_SET_ORDER);                
-               $arguments = array();
-               foreach ($explodedAttributes as $explodedAttribute) {
-                       if (!empty($explodedAttribute['ValueDoubleQuoted'])) {
-                                $argumentValue = $explodedAttribute['ValueDoubleQuoted'];
-                       } elseif (!empty($explodedAttribute['ValueSingleQuoted'])) {
-                               $argumentValue = $explodedAttribute['ValueSingleQuoted'];
-                       } elseif (!empty($explodedAttribute['ValueObject'])) {                          
-                               $argumentValue = $this->getValueForVariableAndKey($explodedAttribute['ValueObject'], $variables);
-                       } elseif (!empty($explodedAttribute['ValueUnquoted'])) {
-                               $argumentValue = $this->getValueForVariableAndKey($explodedAttribute['ValueUnquoted'], $variables);
-                       } else {
-                               $argumentValue = NULL;
-                       }
-                       $arguments[Tx_ExtBase_Utility_Strings::underscoredToLowerCamelCase($explodedAttribute['ArgumentKey'])] = $argumentValue;
-               }
-               return $arguments;
-       }
-       
-       /**
-        * Replaces references (e.g. "{OBJECT.PROPERTY}") with the corresponding values
-        *
-        * @param string $theString The string perhaps containing references
-        * @param array $variables The variables of the context (these may be assigned by the controller or determined inside this view)
-        * @return void
-        */
-       public function replaceReferencesWithValues(&$theString, $variables) {
-               preg_match_all('/(?:\{([^\s]*?)\})?/', $theString, $matches, PREG_SET_ORDER);
-               foreach ($matches as $match) {
-                       if (count($match) > 1) {
-                               $reference = $match[0];
-                               $value = $this->getValueForVariableAndKey($match[1], $variables);
-                       }
-                       $theString = str_replace($reference, $value, $theString);
-               }
-       }
-       
-       /**
-        * Returns the value for a given string with a (context) variable and a key (e.g. "PERSON.NAME" invokes $variables['person']->getName())
-        *
-        * @param string $variableAndKey The variable (mainly an object) and key (mainly a property of an object) linked with a dot (e.g. "PERSON.NAME")
-        * @param array $variables The variables of the context (these may be assigned by the controller or determined inside this view)
-        * @return mixed The value
-        */
-       public function getValueForVariableAndKey($variableAndKey, $variables) {
-               $explodedVariableAndKey = explode('.', $variableAndKey);
-               $variable = $variables[Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($explodedVariableAndKey[0])];
-               if (!empty($variable)) {
-                       if (count($explodedVariableAndKey) > 1) {
-                               $key = $explodedVariableAndKey[1];
-                               if (is_object($variable)) {
-                                       $possibleMethodName = 'get' . Tx_ExtBase_Utility_Strings::underscoredToUpperCamelCase($key);
-                                       if (method_exists($variable, $possibleMethodName)) {
-                                               $value = $variable->$possibleMethodName();
-                                       }
-                               } elseif (is_array($variable)) {
-                                       $value = $variable[Tx_ExtBase_Utility_Strings::underscoredToLowerCamelCase($key)];
-                               }
-                       } else {
-                               if (is_object($variable)) {
-                                       $value = $variable->__toString();
-                               } else {
-                                       $value = $variable;
-                               }
-                       }
-               }
-               return $value;
-       }
-
-       /**
-        * Returns the subparts and their values
-        *
-        * @param string $templateSource The template source
-        * @return array The subparts
-        */
-       protected function getSubpartArray($templateSource) {
-               $subpartArray = array();
-               if (count($subparts) > 0) {
-                       foreach ($subparts as $subpartMarker => $subpartTemplateSource) {
-                               $value = $this->getMarkerContent($subpartMarker);
-                               $subpartArray['###' . $subpartMarker . '###'] .= $this->renderTemplate($subpartTemplateSource, $value);
-                       }
-               }
-               return $subpartArray;
-       }
-       
-       /**
-        * Fetches all subparts from the template source
-        *
-        * @param string $templateSource The template source
-        * @return array An array of subpartName => subpartTemplateSource pairs
-        */
-       protected function getSubparts($templateSource) {
-               preg_match_all(self::SCAN_PATTERN_SUBPARTS, $templateSource, $matches, PREG_SET_ORDER);
-               $subparts = array();
-               if (is_array($matches)) {
-                       foreach ($matches as $key => $match) {
-                               $subparts[$match['SubpartName']] = $match['SubpartTemplateSource'];
-                       }
-               }
-               return $subparts;
-       }
-
-       /**
-        * Fetches all markers from the template source
-        *
-        * @param string $templateSource The template source
-        * @return array An array of markerNames as keys
-        */
-       protected function getMarkers($templateSource) {
-               preg_match_all(self::SCAN_PATTERN_MARKER, $templateSource, $matches, PREG_SET_ORDER);
-               $markers = array();
-               if (is_array($matches)) {
-                       foreach ($matches as $key => $match) {
-                               $markers[$match['MarkerName']] = NULL;
-                       }
-               }
-               return $markers;
-       }
-       
-       /**
-        * Removes unfilled markers from the rendered content
-        *
-        * @param string $content The content
-        * @return string The cleaned content
-        */             
-       protected function removeUnfilledMarkers(&$content) {
-               $content = preg_replace('/###.*###|<!--[^>]*###.*###[^<]*-->(.*)/msU', '', $content);
-       }
-
-       /**
-        * Assigns domain models (single objects or aggregates) or values to the view
-        *
-        * @param string $valueName The name of the value
-        * @param mixed $value the value to assign
-        * @return void
-        */
-       public function assign($key, $value) {
-               $this->contextVariables[$key] = $value;
-               return $this;
-       }
-}
-?>
\ No newline at end of file