Fixed bug #16735: Inclusion of js/css for loadResourcesForRegisteredNavigationCompone...
authorSteffen Kamper <info@sk-typo3.de>
Fri, 17 Dec 2010 10:31:30 +0000 (10:31 +0000)
committerSteffen Kamper <info@sk-typo3.de>
Fri, 17 Dec 2010 10:31:30 +0000 (10:31 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@9818 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/backend.php

index 77fe099..bed125b 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2010-12-17   Steffen Kamper  <steffen@typo3.org>
 
+       * Fixed bug #16735: Inclusion of js/css for loadResourcesForRegisteredNavigationComponents lacks loading order
        * Fixed bug #16084: Clicking a label should set the focus on the input field
 
 2010-12-17  Steffen Gebert  <steffen@steffen-gebert.de>
index 9bf113d..c39312a 100644 (file)
@@ -298,12 +298,25 @@ class TYPO3backend {
                        $absoluteComponentPath = t3lib_extMgm::extPath($info['extKey']) . $componentDirectory;
                        $relativeComponentPath = t3lib_extMgm::extRelPath($info['extKey']) . $componentDirectory;
 
-                       $cssFiles = t3lib_div::getFilesInDir($absoluteComponentPath . 'css/');
+                       $cssFiles = t3lib_div::getFilesInDir($absoluteComponentPath . 'css/', 'css');
+                       if (file_exists($absoluteComponentPath . 'css/loadorder.txt')) {
+                                       //don't allow inclusion outside directory
+                               $loadOrder = str_replace('../', '', t3lib_div::getURL($absoluteComponentPath . 'css/loadorder.txt'));
+                               $cssFilesOrdered = t3lib_div::trimExplode(LF, $loadOrder, TRUE);
+                               $cssFiles = array_merge($cssFilesOrdered, $cssFiles);
+                       }
                        foreach ($cssFiles as $cssFile) {
                                $this->pageRenderer->addCssFile($relativeComponentPath . 'css/' . $cssFile);
                        }
 
-                       $jsFiles = t3lib_div::getFilesInDir($absoluteComponentPath . 'javascript/');
+                       $jsFiles = t3lib_div::getFilesInDir($absoluteComponentPath . 'javascript/', 'js');
+                       if (file_exists($absoluteComponentPath . 'javascript/loadorder.txt')) {
+                                       //don't allow inclusion outside directory
+                               $loadOrder = str_replace('../', '', t3lib_div::getURL($absoluteComponentPath . 'javascript/loadorder.txt'));
+                               $jsFilesOrdered = t3lib_div::trimExplode(LF, $loadOrder, TRUE);
+                               $jsFiles = array_merge($jsFilesOrdered, $jsFiles);
+                       }
+
                        foreach ($jsFiles as $jsFile) {
                                $this->pageRenderer->addJsFile($relativeComponentPath . 'javascript/' . $jsFile);
                        }