[FEATURE] Improve BE container view helper 63/22063/2
authorFrancois Suter <francois@typo3.org>
Sat, 6 Jul 2013 20:40:09 +0000 (22:40 +0200)
committerFelix Kopp <felix-source@phorax.com>
Sat, 6 Jul 2013 22:07:46 +0000 (00:07 +0200)
Improve the features provided by the BE container view helper
so that extensions don't need to provide their own so often.
Added features:

- load several JS and CSS files instead of just one
- load jQuery
- load some inline language labels

Note: the old way of loading a single JS and CSS file is preserved
for backwards compatibility, but marked as deprecated.

With this patch all BE modules in the Core can use the default
BE container view helper. The Extension Manager needs some special
initialization which is moved to a dedicated view helper.

The customized BE container view helpers are removed.

Resolves: #49749
Releases: 6.2
Change-Id: I236134451a31f08afe5886337cfb1144dac7ad90
Reviewed-on: https://review.typo3.org/22063
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Felix Kopp
Tested-by: Felix Kopp
typo3/sysext/beuser/Resources/Private/Layouts/Default.html
typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/ContainerViewHelper.php [deleted file]
typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php [new file with mode: 0644]
typo3/sysext/extensionmanager/Resources/Private/Layouts/Main.html
typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php
typo3/sysext/lang/Classes/ViewHelpers/Be/ContainerViewHelper.php [deleted file]
typo3/sysext/lang/Resources/Private/Layouts/Default.html
typo3/sysext/reports/Resources/Private/Layouts/Default.html

index 3c113f9..eb6380e 100755 (executable)
@@ -1,4 +1,4 @@
-<f:be.container addCssFile="{f:uri.resource(path:'Css/style.css')}">
+<f:be.container includeCssFiles="{0: '{f:uri.resource(path:\'Css/style.css\')}'}">
        <div class="typo3-fullDoc">
                <div id="typo3-docheader">
                        <div class="typo3-docheader-functions">
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/ContainerViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/ContainerViewHelper.php
deleted file mode 100644 (file)
index f64d142..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Be;
-
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2012-2013 Susanne Moog, <typo3@susannemoog.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.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *  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 which allows you to create extbase based modules in the
- * style of TYPO3 default modules.
- * Note: This feature is experimental!
- *
- * = Examples =
- *
- * <code title="Simple">
- * <f:be.container>your module content</f:be.container>
- * </code>
- * <output>
- * "your module content" wrapped with propper head & body tags.
- * Default backend CSS styles and JavaScript will be included
- * </output>
- *
- * <code title="All options">
- * <f:be.container pageTitle="foo" enableJumpToUrl="false" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" scriptaculousModule="someModule,someOtherModule" loadExtJs="true" loadExtJsTheme="false" extJsAdapter="jQuery" enableExtJsDebug="true" addCssFile="{f:uri.resource(path:'styles/backend.css')}" addJsFile="{f:uri.resource(path:'scripts/main.js')}">your module content</f:be.container>
- * </code>
- * <output>
- * "your module content" wrapped with propper head & body tags.
- * Custom CSS file EXT:your_extension/Resources/Public/styles/backend.css and JavaScript file EXT:your_extension/Resources/Public/scripts/main.js will be loaded
- * </output>
- */
-class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {
-
-       /**
-        * Render start page with \TYPO3\CMS\Backend\Template\DocumentTemplate and pageTitle
-        *
-        * @param string  $pageTitle title tag of the module. Not required by default, as BE modules are shown in a frame
-        * @param boolean $enableJumpToUrl If TRUE, includes "jumpTpUrl" javascript function required by ActionMenu. Defaults to TRUE
-        * @param boolean $enableClickMenu If TRUE, loads clickmenu.js required by BE context menus. Defaults to TRUE
-        * @param boolean $loadPrototype specifies whether to load prototype library. Defaults to TRUE
-        * @param boolean $loadScriptaculous specifies whether to load scriptaculous libraries. Defaults to FALSE
-        * @param string  $scriptaculousModule additionales modules for scriptaculous
-        * @param boolean $loadExtJs specifies whether to load ExtJS library. Defaults to FALSE
-        * @param boolean $loadExtJsTheme whether to load ExtJS "grey" theme. Defaults to FALSE
-        * @param string  $extJsAdapter load alternative adapter (ext-base is default adapter)
-        * @param boolean $enableExtJsDebug if TRUE, debug version of ExtJS is loaded. Use this for development only
-        * @param array $addCssFiles Custom CSS files to be loaded
-        * @param array $addJsFiles Custom JavaScript files to be loaded
-        * @param array $triggers Defined triggers to be forwarded to client (e.g. refreshing backend widgets)
-        * @return string
-        * @see template
-        * @see \TYPO3\CMS\Core\Page\PageRenderer
-        */
-       public function render($pageTitle = '', $enableJumpToUrl = TRUE, $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $extJsAdapter = '', $enableExtJsDebug = FALSE, $addCssFiles = array(), $addJsFiles = array(), $triggers = array()) {
-               $doc = $this->getDocInstance();
-               $pageRenderer = $doc->getPageRenderer();
-               if ($enableJumpToUrl) {
-                       $doc->JScode .= '
-                               <script language="javascript" type="text/javascript">
-                                       script_ended = 0;
-                                       function jumpToUrl(URL) {
-                                               document.location = URL;
-                                       }
-                                       ' . $doc->redirectUrls() . '
-                               </script>
-                       ';
-               }
-               if ($enableClickMenu) {
-                       $doc->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/clickmenu.js');
-               }
-               if ($loadPrototype) {
-                       $pageRenderer->loadPrototype();
-               }
-               if ($loadScriptaculous) {
-                       $pageRenderer->loadScriptaculous($scriptaculousModule);
-               }
-               if ($loadExtJs) {
-                       $pageRenderer->loadExtJS(TRUE, $loadExtJsTheme, $extJsAdapter);
-                       if ($enableExtJsDebug) {
-                               $pageRenderer->enableExtJsDebug();
-                       }
-               }
-               if (is_array($addCssFiles) && count($addCssFiles) > 0) {
-                       foreach ($addCssFiles as $addCssFile) {
-                               $pageRenderer->addCssFile($addCssFile);
-                       }
-               }
-               if (is_array($addJsFiles) && count($addJsFiles) > 0) {
-                       foreach ($addJsFiles as $addJsFile) {
-                               $pageRenderer->addJsFile($addJsFile);
-                       }
-               }
-               // Handle triggers
-               if (!empty($triggers[\TYPO3\CMS\Extensionmanager\Controller\AbstractController::TRIGGER_RefreshModuleMenu])) {
-                       $pageRenderer->addJsInlineCode(
-                               \TYPO3\CMS\Extensionmanager\Controller\AbstractController::TRIGGER_RefreshModuleMenu,
-                               'if (top.TYPO3ModuleMenu.refreshMenu) { top.TYPO3ModuleMenu.refreshMenu(); }'
-                       );
-               }
-               $output = $this->renderChildren();
-               $output = $doc->startPage($pageTitle) . $output;
-               $output .= $doc->endPage();
-               return $output;
-       }
-
-}
-
-
-?>
\ No newline at end of file
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php
new file mode 100644 (file)
index 0000000..9c03506
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Be;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013 Francois Suter, <francois.suter@typo3.org>
+ *  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.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *  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!
+ ***************************************************************/
+
+use \TYPO3\CMS\Extensionmanager\Controller\AbstractController;
+
+/**
+ * Special view helper for the BE module of the Extension Manager. Loads JS code for triggering
+ * refresh events.
+ *
+ * = Examples =
+ *
+ * <code title="Simple">
+ * <em:be.container triggers="{triggers}" />
+ * </code>
+ * <output>
+ * Writes some JS inline code
+ * </output>
+ */
+class TriggerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {
+
+       /**
+        * Loads some JS inline code based on a list of triggers. This is used to reload the main
+        * menu when modules are loaded/unloaded.
+        *
+        * @param array $triggers Defined triggers to be forwarded to client (e.g. refreshing backend widgets)
+        * @return string This view helper does not return any content
+        * @see \TYPO3\CMS\Backend\Template\DocumentTemplate
+        * @see \TYPO3\CMS\Core\Page\PageRenderer
+        */
+       public function render($triggers = array()) {
+               $doc = $this->getDocInstance();
+               $pageRenderer = $doc->getPageRenderer();
+               // Handle triggers
+               if (!empty($triggers[AbstractController::TRIGGER_RefreshModuleMenu])) {
+                       $pageRenderer->addJsInlineCode(
+                               AbstractController::TRIGGER_RefreshModuleMenu,
+                               'if (top.TYPO3ModuleMenu.refreshMenu) { top.TYPO3ModuleMenu.refreshMenu(); }'
+                       );
+               }
+               return '';
+       }
+
+}
+
+?>
\ No newline at end of file
index b111185..cedd161 100644 (file)
@@ -1,12 +1,13 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
-<em:be.container pageTitle="Extension Manager" enableJumpToUrl="true" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" loadExtJs="false" loadExtJsTheme="true"
-       triggers="{triggers}"
-       addCssFiles="{
+
+<f:be.container pageTitle="Extension Manager" enableJumpToUrl="true" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" loadExtJs="false" loadExtJsTheme="true"
+
+       includeCssFiles="{
                0:'{f:uri.resource(path:\'Css/main.css\')}',
                1:'{f:uri.resource(path:\'Contrib/LoadMask/jquery.loadmask.css\')}',
                2:'{f:uri.resource(path:\'Css/jquery.clearable.css\')}'
        }"
-       addJsFiles="{
+       includeJsFiles="{
                0:'{f:uri.resource(path:\'JavaScript/jquery-1.8.2.min.js\')}',
                1:'{f:uri.resource(path:\'JavaScript/jquery.dataTables-1.9.4.min.js\')}',
                2:'{f:uri.resource(path:\'JavaScript/jquery-ui-1.8.17.custom.min.js\')}',
@@ -20,6 +21,7 @@
                9:'{f:uri.resource(path:\'JavaScript/upload.js\')}'
                }">
 
+       <em:be.trigger triggers="{triggers}" />
        <div id="typo3-docheader">
                <div class="typo3-docheader-functions">
                        <f:be.menus.actionMenu>
@@ -40,4 +42,4 @@
                        <f:render section="Content" />
                </div>
        </div>
-</em:be.container>
+</f:be.container>
index 8b18d1e..f44597a 100644 (file)
@@ -20,9 +20,11 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Be;
  *                                                                        *
  * The TYPO3 project - inspiring people to share!                         *
  *                                                                        */
+
+use \TYPO3\CMS\Core\Utility\GeneralUtility;
+
 /**
  * View helper which allows you to create extbase based modules in the style of TYPO3 default modules.
- * Note: This feature is experimental!
  *
  * = Examples =
  *
@@ -30,16 +32,18 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Be;
  * <f:be.container>your module content</f:be.container>
  * </code>
  * <output>
- * "your module content" wrapped with propper head & body tags.
+ * "your module content" wrapped with proper head & body tags.
  * Default backend CSS styles and JavaScript will be included
  * </output>
  *
- * <code title="All options">
- * <f:be.container pageTitle="foo" enableJumpToUrl="false" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" scriptaculousModule="someModule,someOtherModule" loadExtJs="true" loadExtJsTheme="false" extJsAdapter="jQuery" enableExtJsDebug="true" addCssFile="{f:uri.resource(path:'styles/backend.css')}" addJsFile="{f:uri.resource(path:'scripts/main.js')}">your module content</f:be.container>
+ * <code title="All options (except deprecated ones)">
+ * <f:be.container pageTitle="foo" enableJumpToUrl="false" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" scriptaculousModule="someModule,someOtherModule" loadExtJs="true" loadExtJsTheme="false" extJsAdapter="jQuery" enableExtJsDebug="true" loadJQuery="true" includeCssFiles="0: '{f:uri.resource(path:\'Styles/Styles.css\')}'" includeJsFiles="0: '{f:uri.resource(path:\'JavaScript/Library1.js\')}', 1: '{f:uri.resource(path:\'JavaScript/Library2.js\')}'" addJsInlineLabels="{0: 'label1', 1: 'label2'}">your module content</f:be.container>
  * </code>
  * <output>
- * "your module content" wrapped with propper head & body tags.
- * Custom CSS file EXT:your_extension/Resources/Public/styles/backend.css and JavaScript file EXT:your_extension/Resources/Public/scripts/main.js will be loaded
+ * "your module content" wrapped with proper head & body tags.
+ * Custom CSS file EXT:your_extension/Resources/Public/Styles/styles.css and
+ * JavaScript files EXT:your_extension/Resources/Public/JavaScript/Library1.js and EXT:your_extension/Resources/Public/JavaScript/Library2.js
+ * will be loaded, plus ExtJS and jQuery and some inline labels for usage in JS code.
  * </output>
  */
 class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {
@@ -57,12 +61,17 @@ class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBacken
         * @param boolean $loadExtJsTheme whether to load ExtJS "grey" theme. Defaults to FALSE
         * @param string  $extJsAdapter load alternative adapter (ext-base is default adapter)
         * @param boolean $enableExtJsDebug if TRUE, debug version of ExtJS is loaded. Use this for development only
-        * @param string $addCssFile Custom CSS file to be loaded
-        * @param string $addJsFile Custom JavaScript file to be loaded
+        * @param string $addCssFile Custom CSS file to be loaded (deprecated, use $includeCssFiles)
+        * @param string $addJsFile Custom JavaScript file to be loaded (deprecated, use $includeJsFiles)
+        * @param boolean $loadJQuery whether to load jQuery library. Defaults to FALSE
+        * @param array $includeCssFiles List of custom CSS file to be loaded
+        * @param array $includeJsFiles List of custom JavaScript file to be loaded
+        * @param array $addJsInlineLabels Custom labels to add to JavaScript inline labels
         * @return string
-        * @see template
+        * @see \TYPO3\CMS\Backend\Template\DocumentTemplate
+        * @see \TYPO3\CMS\Core\Page\PageRenderer
         */
-       public function render($pageTitle = '', $enableJumpToUrl = TRUE, $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $extJsAdapter = '', $enableExtJsDebug = FALSE, $addCssFile = NULL, $addJsFile = NULL) {
+       public function render($pageTitle = '', $enableJumpToUrl = TRUE, $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $extJsAdapter = '', $enableExtJsDebug = FALSE, $addCssFile = NULL, $addJsFile = NULL, $loadJQuery = FALSE, $includeCssFiles = NULL, $includeJsFiles = NULL, $addJsInlineLabels = NULL) {
                $doc = $this->getDocInstance();
                $pageRenderer = $doc->getPageRenderer();
                if ($enableJumpToUrl) {
@@ -76,6 +85,7 @@ class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBacken
                                </script>
                        ';
                }
+               // Load various standard libraries
                if ($enableClickMenu) {
                        $doc->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/clickmenu.js');
                }
@@ -91,12 +101,38 @@ class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBacken
                                $pageRenderer->enableExtJsDebug();
                        }
                }
+               if ($loadJQuery) {
+                       $pageRenderer->loadJquery(NULL, NULL, $pageRenderer::JQUERY_NAMESPACE_DEFAULT_NOCONFLICT);
+               }
+               // This way of adding a single CSS or JS file is deprecated, the array below should be used instead
                if ($addCssFile !== NULL) {
+                       GeneralUtility::deprecationLog('Usage of addCssFile attribute is deprecated since TYPO3 CMS 6.2. It will be removed in TYPO3 CMS 7.0. Use includeCssFiles instead.');
                        $pageRenderer->addCssFile($addCssFile);
                }
                if ($addJsFile !== NULL) {
+                       GeneralUtility::deprecationLog('Usage of addJsFile attribute is deprecated since TYPO3 CMS 6.2. It will be removed in TYPO3 CMS 7.0. Use includeJsFiles instead.');
                        $pageRenderer->addJsFile($addJsFile);
                }
+               // Include custom CSS and JS files
+               if (is_array($includeCssFiles) && count($includeCssFiles) > 0) {
+                       foreach ($includeCssFiles as $addCssFile) {
+                               $pageRenderer->addCssFile($addCssFile);
+                       }
+               }
+               if (is_array($includeJsFiles) && count($includeJsFiles) > 0) {
+                       foreach ($includeJsFiles as $addJsFile) {
+                               $pageRenderer->addJsFile($addJsFile);
+                       }
+               }
+               // Add inline language labels
+               if (is_array($addJsInlineLabels) && count($addJsInlineLabels) > 0) {
+                       $extensionKey = $this->controllerContext->getRequest()->getControllerExtensionKey();
+                       foreach ($addJsInlineLabels as $key) {
+                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($key, $extensionKey);
+                               $pageRenderer->addInlineLanguageLabel($key, $label);
+                       }
+               }
+               // Render the content and return it
                $output = $this->renderChildren();
                $output = $doc->startPage($pageTitle) . $output;
                $output .= $doc->endPage();
diff --git a/typo3/sysext/lang/Classes/ViewHelpers/Be/ContainerViewHelper.php b/typo3/sysext/lang/Classes/ViewHelpers/Be/ContainerViewHelper.php
deleted file mode 100644 (file)
index c97066b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-namespace TYPO3\CMS\Lang\ViewHelpers\Be;
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2012-2013 Kai Vogel <kai.vogel@speedprogs.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 which allows you to create extbase based modules in the style of TYPO3 default modules.
- * Note: This feature is experimental!
- *
- * = Examples =
- *
- * <code title="Simple">
- * <f:be.container>your module content</f:be.container>
- * </code>
- * <output>
- * "your module content" wrapped with propper head & body tags.
- * Default backend CSS styles and JavaScript will be included
- * </output>
- *
- * <code title="All options">
- * <f:be.container pageTitle="foo" enableJumpToUrl="false" enableClickMenu="false" loadPrototype="false" loadScriptaculous="false" loadJQuery="false" scriptaculousModule="someModule,someOtherModule" loadExtJs="true" loadExtJsTheme="false" extJsAdapter="jQuery" enableExtJsDebug="true" addCssFile="{f:uri.resource(path:'styles/backend.css')}" addJsFile="{f:uri.resource(path:'scripts/main.js')}">your module content</f:be.container>
- * </code>
- * <output>
- * "your module content" wrapped with propper head & body tags.
- * Custom CSS file EXT:your_extension/Resources/Public/styles/backend.css and JavaScript file EXT:your_extension/Resources/Public/scripts/main.js will be loaded
- * </output>
- */
-class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {
-
-       /**
-        * Render start page with \TYPO3\CMS\Backend\Template\DocumentTemplate and pageTitle
-        *
-        * @param string  $pageTitle title tag of the module. Not required by default, as BE modules are shown in a frame
-        * @param boolean $enableJumpToUrl If TRUE, includes "jumpTpUrl" javascript function required by ActionMenu. Defaults to TRUE
-        * @param boolean $enableClickMenu If TRUE, loads clickmenu.js required by BE context menus. Defaults to TRUE
-        * @param boolean $loadPrototype specifies whether to load prototype library. Defaults to TRUE
-        * @param boolean $loadScriptaculous specifies whether to load scriptaculous libraries. Defaults to FALSE
-        * @param string  $scriptaculousModule additionales modules for scriptaculous
-        * @param boolean $loadExtJs specifies whether to load ExtJS library. Defaults to FALSE
-        * @param boolean $loadExtJsTheme whether to load ExtJS "grey" theme. Defaults to FALSE
-        * @param string  $extJsAdapter load alternative adapter (ext-base is default adapter)
-        * @param boolean $enableExtJsDebug if TRUE, debug version of ExtJS is loaded. Use this for development only
-        * @param boolean $loadJQuery whether to load jQuery library. Defaults to FALSE
-        * @param array $addCssFiles Custom CSS files to be loaded
-        * @param array $addJsFiles Custom JavaScript files to be loaded
-        * @param array $addJsInlineLabels Custom labels to add to JavaScript inline labels
-        * @return string
-        * @see template
-        * @see \TYPO3\CMS\Core\Page\PageRenderer
-        */
-       public function render($pageTitle = '', $enableJumpToUrl = TRUE, $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $extJsAdapter = '', $enableExtJsDebug = FALSE, $loadJQuery = FALSE, $addCssFiles = NULL, $addJsFiles = NULL, $addJsInlineLabels = NULL) {
-               $doc = $this->getDocInstance();
-               $pageRenderer = $doc->getPageRenderer();
-               if ($enableJumpToUrl) {
-                       $doc->JScode .= '
-                               <script language="javascript" type="text/javascript">
-                                       script_ended = 0;
-                                       function jumpToUrl(URL) {
-                                               document.location = URL;
-                                       }
-                                       ' . $doc->redirectUrls() . '
-                               </script>
-                       ';
-               }
-               if ($enableClickMenu) {
-                       $doc->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/clickmenu.js');
-               }
-               if ($loadPrototype) {
-                       $pageRenderer->loadPrototype();
-               }
-               if ($loadScriptaculous) {
-                       $pageRenderer->loadScriptaculous($scriptaculousModule);
-               }
-               if ($loadExtJs) {
-                       $pageRenderer->loadExtJS(TRUE, $loadExtJsTheme, $extJsAdapter);
-                       if ($enableExtJsDebug) {
-                               $pageRenderer->enableExtJsDebug();
-                       }
-               }
-               if ($loadJQuery) {
-                       $pageRenderer->loadJquery(NULL, NULL, $pageRenderer::JQUERY_NAMESPACE_DEFAULT_NOCONFLICT);
-               }
-               if (is_array($addCssFiles)) {
-                       foreach ($addCssFiles as $addCssFile) {
-                               $pageRenderer->addCssFile($addCssFile);
-                       }
-               }
-               if (is_array($addJsFiles)) {
-                       foreach ($addJsFiles as $addJsFile) {
-                               $pageRenderer->addJsFile($addJsFile);
-                       }
-               }
-               if (is_array($addJsInlineLabels)) {
-                       $extensionKey = $this->controllerContext->getRequest()->getControllerExtensionKey();
-                       foreach ($addJsInlineLabels as $key) {
-                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($key, $extensionKey);
-                               $pageRenderer->addInlineLanguageLabel($key, $label);
-                       }
-               }
-               $output = $this->renderChildren();
-               $output = $doc->startPage($pageTitle) . $output;
-               $output .= $doc->endPage();
-               return $output;
-       }
-
-}
-?>
\ No newline at end of file
index 42ed73c..f310114 100644 (file)
@@ -1,16 +1,14 @@
-{namespace lang=TYPO3\CMS\Lang\ViewHelpers}
-
-<lang:be.container
+<f:be.container
        enableJumpToUrl="0"
        enableClickMenu="0"
        loadPrototype="0"
        loadScriptaculous="0"
        loadExtJs="0"
        loadJQuery="true"
-       addCssFiles="{
+       includeCssFiles="{
                0: '{f:uri.resource(path:\'StyleSheet/LangModule.css\')}'
        }"
-       addJsFiles="{
+       includeJsFiles="{
                0: '{f:uri.resource(path:\'Contrib/jquery.dataTables-1.9.4.min.js\')}',
                1: '{f:uri.resource(path:\'JavaScript/LangModule.js\')}'
        }"
@@ -50,4 +48,4 @@
                </div>
 
        </div>
-</lang:be.container>
\ No newline at end of file
+</f:be.container>
\ No newline at end of file
index 023870f..66e6f6e 100644 (file)
@@ -1,4 +1,4 @@
-<f:be.container addCssFile="{f:uri.resource(path:'styles.css')}">
+<f:be.container includeCssFiles="{0: '{f:uri.resource(path:\'styles.css\')}'}">
        <div class="typo3-fullDoc" id="ext-reports-mod-index-php">
                <div id="typo3-docheader">
                        <div class="typo3-docheader-functions">