[BUGFIX] Icons of folder tree of RTE image dialogue are erratic
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / Classes / FolderTree.php
index 82f950c..8fb7461 100644 (file)
@@ -10,6 +10,15 @@ namespace TYPO3\CMS\Rtehtmlarea;
 class FolderTree extends \rteFolderTree {
 
        /**
+        * Constructor function of the class
+        */
+       public function __construct() {
+               // The backpath is set her to fix problems with relatives path when used in ajax scope
+               $GLOBALS['BACK_PATH'] = isset($GLOBALS['ajaxID']) ? '../../../' : $GLOBALS['BACK_PATH'];
+               parent::__construct();
+       }
+
+       /**
         * Wrapping the title in a link, if applicable.
         *
         * @param       string                  Title, ready for output.
@@ -36,8 +45,25 @@ class FolderTree extends \rteFolderTree {
         * @access private
         */
        public function PMiconATagWrap($icon, $cmd, $isExpand = TRUE) {
+
+               if (empty($this->scope)) {
+                       $this->scope = array(
+                               'class' => get_class($this),
+                               'script' => $this->thisScript,
+                               'ext_noTempRecyclerDirs' => $this->ext_noTempRecyclerDirs,
+                               'browser' => array(
+                                       'mode' => $GLOBALS['SOBE']->browser->mode,
+                                       'act' => $GLOBALS['SOBE']->browser->act,
+                                       'editorNo' => $GLOBALS['SOBE']->browser->editorNo
+                               ),
+                       );
+               }
+
                if ($this->thisScript) {
-                       $js = htmlspecialchars('Tree.thisScript=\'' . $GLOBALS['BACK_PATH'] . 'ajax.php\',Tree.load(\'' . $cmd . '\', ' . intval($isExpand) . ', this);');
+                       // Activates dynamic AJAX based tree
+                       $scopeData = serialize($this->scope);
+                       $scopeHash = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac($scopeData);
+                       $js = htmlspecialchars('Tree.thisScript=\'' . $this->backPath . 'ajax.php\',Tree.load(\'' . $cmd . '\', ' . (int)$isExpand . ', this, ' . json_encode($scopeData) . ', \'' . $scopeHash . '\');');
                        return '<a class="pm" onclick="' . $js . '">' . $icon . '</a>';
                } else {
                        return $icon;
@@ -45,6 +71,3 @@ class FolderTree extends \rteFolderTree {
        }
 
 }
-
-
-?>
\ No newline at end of file