[!!!][TASK] Remove SU mode "change to" in EXT:beuser
[Packages/TYPO3.CMS.git] / typo3 / class.browse_links.php
index 6161ccc..49578b2 100644 (file)
@@ -16,11 +16,9 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
 
        /**
         * Constructor. Just calling init()
-        *
-        * @todo Define visibility
         */
        public function __construct() {
-               $this->thisScript = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('SCRIPT_NAME');
+               $this->determineScriptUrl();
                $this->init();
                $this->clause = ' AND doktype!=' . \TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_RECYCLER . $this->clause;
        }
@@ -30,9 +28,8 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
         *
         * @param string $title Title, (must be ready for output, that means it must be htmlspecialchars()'ed).
         * @param array $v The record
-        * @param boolean $ext_pArrPages (Ignore)
+        * @param bool $ext_pArrPages (Ignore)
         * @return string Wrapping title string.
-        * @todo Define visibility
         */
        public function wrapTitle($title, $v, $ext_pArrPages = '') {
                if ($this->ext_isLinkable($v['doktype'], $v['uid'])) {
@@ -48,10 +45,9 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
         *
         * @param array $treeArr Tree array
         * @return string HTML output.
-        * @todo Define visibility
         */
        public function printTree($treeArr = '') {
-               $titleLen = intval($GLOBALS['BE_USER']->uc['titleLen']);
+               $titleLen = (int)$GLOBALS['BE_USER']->uc['titleLen'];
                if (!is_array($treeArr)) {
                        $treeArr = $this->tree;
                }
@@ -66,7 +62,7 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
                        } else {
                                $arrCol = '<td></td>';
                        }
-                       $aOnClick = 'return jumpToUrl(\'' . $this->thisScript . '?act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandPage=' . $v['row']['uid'] . '\');';
+                       $aOnClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandPage=' . $v['row']['uid']) . ');';
                        $cEbullet = $this->ext_isLinkable($v['row']['doktype'], $v['row']['uid']) ? '<a href="#" onclick="' . htmlspecialchars($aOnClick) . '"><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/ol/arrowbullet.gif', 'width="18" height="16"') . ' alt="" /></a>' : '';
                        $out .= '
                                <tr class="' . $bgColorClass . '">
@@ -88,10 +84,9 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
        /**
         * Returns TRUE if a doktype can be linked.
         *
-        * @param integer $doktype Doktype value to test
-        * @param integer $uid uid to test.
-        * @return boolean
-        * @todo Define visibility
+        * @param int $doktype Doktype value to test
+        * @param int $uid uid to test.
+        * @return bool
         */
        public function ext_isLinkable($doktype, $uid) {
                if ($uid && $doktype < 199) {
@@ -104,17 +99,17 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
         *
         * @param string $icon HTML string to wrap, probably an image tag.
         * @param string $cmd Command for 'PM' get var
-        * @param boolean $bMark If set, the link will have a anchor point (=$bMark) and a name attribute (=$bMark)
+        * @param bool $bMark If set, the link will have a anchor point (=$bMark) and a name attribute (=$bMark)
         * @return string Link-wrapped input string
-        * @todo Define visibility
         */
        public function PM_ATagWrap($icon, $cmd, $bMark = '') {
+               $name = '';
                if ($bMark) {
                        $anchor = '#' . $bMark;
                        $name = ' name="' . $bMark . '"';
                }
-               $aOnClick = 'return jumpToUrl(\'' . $this->thisScript . '?PM=' . $cmd . '\',\'' . $anchor . '\');';
-               return '<a href="#"' . $name . ' onclick="' . htmlspecialchars($aOnClick) . '">' . $icon . '</a>';
+               $aOnClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'PM=' . $cmd) . ',' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($anchor) . ');';
+               return '<a href="#"' . htmlspecialchars($name) . ' onclick="' . htmlspecialchars($aOnClick) . '">' . $icon . '</a>';
        }
 
        /**
@@ -123,7 +118,6 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
         * @param string $icon The image tag for the icon
         * @param array $row The row for the current element
         * @return string The processed icon input value.
-        * @todo Define visibility
         */
        public function wrapIcon($icon, $row) {
                $content = $this->addTagAttributes($icon, ' title="id=' . $row['uid'] . '"');
@@ -136,15 +130,6 @@ class localPageTree extends \TYPO3\CMS\Backend\Tree\View\BrowseTreeView {
 }
 
 /**
- * Page tree for the RTE - totally the same, no changes needed. (Just for the sake of beauty - or confusion... :-)
- *
- * @author Kasper Skårhøj <kasperYYYY@typo3.com>
- */
-class rtePageTree extends localPageTree {
-
-}
-
-/**
  * For TBE record browser
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
@@ -154,10 +139,9 @@ class TBE_PageTree extends localPageTree {
        /**
         * Returns TRUE if a doktype can be linked (which is always the case here).
         *
-        * @param integer $doktype Doktype value to test
-        * @param integer $uid uid to test.
-        * @return boolean
-        * @todo Define visibility
+        * @param int $doktype Doktype value to test
+        * @param int $uid uid to test.
+        * @return bool
         */
        public function ext_isLinkable($doktype, $uid) {
                return TRUE;
@@ -168,18 +152,17 @@ class TBE_PageTree extends localPageTree {
         *
         * @param string $title Title, ready for output.
         * @param array $v The record
-        * @param boolean $ext_pArrPages If set, pages clicked will return immediately, otherwise reload page.
+        * @param bool $ext_pArrPages If set, pages clicked will return immediately, otherwise reload page.
         * @return string Wrapping title string.
-        * @todo Define visibility
         */
        public function wrapTitle($title, $v, $ext_pArrPages) {
                if ($ext_pArrPages) {
                        $ficon = \TYPO3\CMS\Backend\Utility\IconUtility::getIcon('pages', $v);
                        $onClick = 'return insertElement(\'pages\', \'' . $v['uid'] . '\', \'db\', ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($v['title']) . ', \'\', \'\', \'' . $ficon . '\',\'\',1);';
                } else {
-                       $onClick = htmlspecialchars('return jumpToUrl(\'' . $this->thisScript . '?act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandPage=' . $v['uid'] . '\');');
+                       $onClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandPage=' . $v['uid']) . ');';
                }
-               return '<a href="#" onclick="' . $onClick . '">' . $title . '</a>';
+               return '<a href="#" onclick="' . htmlspecialchars($onClick) . '">' . $title . '</a>';
        }
 
 }
@@ -194,17 +177,15 @@ class TBE_PageTree extends localPageTree {
 class localFolderTree extends \TYPO3\CMS\Backend\Tree\View\FolderTreeView {
 
        /**
-        * @todo Define visibility
+        * @var int
         */
        public $ext_IconMode = 1;
 
        /**
         * Initializes the script path
-        *
-        * @todo Define visibility
         */
        public function __construct() {
-               $this->thisScript = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('SCRIPT_NAME');
+               $this->determineScriptUrl();
                parent::__construct();
        }
 
@@ -214,11 +195,10 @@ class localFolderTree extends \TYPO3\CMS\Backend\Tree\View\FolderTreeView {
         * @param string $title Title, ready for output.
         * @param \TYPO3\CMS\Core\Resource\Folder $folderObject The "record
         * @return string Wrapping title string.
-        * @todo Define visibility
         */
        public function wrapTitle($title, \TYPO3\CMS\Core\Resource\Folder $folderObject) {
                if ($this->ext_isLinkable($folderObject)) {
-                       $aOnClick = 'return jumpToUrl(\'' . $this->thisScript . '?act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandFolder=' . rawurlencode($folderObject->getCombinedIdentifier()) . '\');';
+                       $aOnClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandFolder=' . rawurlencode($folderObject->getCombinedIdentifier())) . ');';
                        return '<a href="#" onclick="' . htmlspecialchars($aOnClick) . '">' . $title . '</a>';
                } else {
                        return '<span class="typo3-dimmed">' . $title . '</span>';
@@ -229,11 +209,10 @@ class localFolderTree extends \TYPO3\CMS\Backend\Tree\View\FolderTreeView {
         * Returns TRUE if the input "record" contains a folder which can be linked.
         *
         * @param \TYPO3\CMS\Core\Resource\Folder $folderObject Object with information about the folder element. Contains keys like title, uid, path, _title
-        * @return boolean TRUE is returned if the path is found in the web-part of the server and is NOT a recycler or temp folder
-        * @todo Define visibility
+        * @return bool TRUE is returned if the path is found in the web-part of the server and is NOT a recycler or temp folder
         */
        public function ext_isLinkable(\TYPO3\CMS\Core\Resource\Folder $folderObject) {
-               if (!$folderObject->getStorage()->isPublic() || strstr($folderObject->getIdentifier(), '_recycler_') || strstr($folderObject->getIdentifier(), '_temp_')) {
+               if (strstr($folderObject->getIdentifier(), '_recycler_') || strstr($folderObject->getIdentifier(), '_temp_')) {
                        return FALSE;
                } else {
                        return TRUE;
@@ -245,55 +224,41 @@ class localFolderTree extends \TYPO3\CMS\Backend\Tree\View\FolderTreeView {
         *
         * @param string $icon HTML string to wrap, probably an image tag.
         * @param string $cmd Command for 'PM' get var
-        * @param boolean $bMark If set, the link will have a anchor point (=$bMark) and a name attribute (=$bMark)
+        * @param bool $bMark If set, the link will have a anchor point (=$bMark) and a name attribute (=$bMark)
         * @return string Link-wrapped input string
         * @access private
-        * @todo Define visibility
         */
        public function PM_ATagWrap($icon, $cmd, $bMark = '') {
+               $name = $anchor = '';
                if ($bMark) {
                        $anchor = '#' . $bMark;
                        $name = ' name="' . $bMark . '"';
                }
-               $aOnClick = 'return jumpToUrl(\'' . $this->thisScript . '?PM=' . $cmd . '\',\'' . $anchor . '\');';
-               return '<a href="#"' . $name . ' onclick="' . htmlspecialchars($aOnClick) . '">' . $icon . '</a>';
+               $aOnClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'PM=' . $cmd) . ',' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($anchor) . ');';
+               return '<a href="#"' . htmlspecialchars($name) . ' onclick="' . htmlspecialchars($aOnClick) . '">' . $icon . '</a>';
        }
 
 }
 
 /**
- * Folder tree for the RTE - totally the same, no changes needed. (Just for the sake of beauty - or confusion... :-)
- *
- * @author Kasper Skårhøj <kasperYYYY@typo3.com>
- */
-class rteFolderTree extends localFolderTree {
-
-}
-
-/**
  * For TBE File Browser
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 class TBE_FolderTree extends localFolderTree {
 
-       // If file-drag mode is set, temp and recycler folders are filtered out.
        /**
-        * @todo Define visibility
+        * If file-drag mode is set, temp and recycler folders are filtered out.
+        *
+        * @var int
         */
        public $ext_noTempRecyclerDirs = 0;
 
        /**
-        * @var array
-        */
-       protected $scope;
-
-       /**
         * Returns TRUE if the input "record" contains a folder which can be linked.
         *
         * @param \TYPO3\CMS\Core\Resource\Folder $folderObject object with information about the folder element. Contains keys like title, uid, path, _title
-        * @return boolean TRUE is returned if the path is NOT a recycler or temp folder AND if ->ext_noTempRecyclerDirs is not set.
-        * @todo Define visibility
+        * @return bool TRUE is returned if the path is NOT a recycler or temp folder AND if ->ext_noTempRecyclerDirs is not set.
         */
        public function ext_isLinkable($folderObject) {
                if ($this->ext_noTempRecyclerDirs && (substr($folderObject->getIdentifier(), -7) == '_temp_/' || substr($folderObject->getIdentifier(), -11) == '_recycler_/')) {
@@ -309,38 +274,14 @@ class TBE_FolderTree extends localFolderTree {
         * @param string $title Title, ready for output.
         * @param \TYPO3\CMS\Core\Resource\Folder $folderObject The folderObject 'record'
         * @return string Wrapping title string.
-        * @todo Define visibility
         */
        public function wrapTitle($title, $folderObject) {
                if ($this->ext_isLinkable($folderObject)) {
-                       $aOnClick = 'return jumpToUrl(\'' . $this->thisScript . '?act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandFolder=' . rawurlencode($folderObject->getCombinedIdentifier()) . '\');';
+                       $aOnClick = 'return jumpToUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getThisScript() . 'act=' . $GLOBALS['SOBE']->browser->act . '&mode=' . $GLOBALS['SOBE']->browser->mode . '&expandFolder=' . rawurlencode($folderObject->getCombinedIdentifier())) . ');';
                        return '<a href="#" onclick="' . htmlspecialchars($aOnClick) . '">' . $title . '</a>';
                } else {
                        return '<span class="typo3-dimmed">' . $title . '</span>';
                }
        }
 
-       /**
-        * Wrap the plus/minus icon in a link
-        *
-        * @param string $icon HTML string to wrap, probably an image tag.
-        * @param string $cmd Command for 'PM' get var
-        * @param boolean $isExpand Whether to be expanded
-        * @return string Link-wrapped input string
-        * @internal
-        */
-       public function PMiconATagWrap($icon, $cmd, $isExpand = TRUE) {
-               $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,
-                       ),
-               );
-
-               return parent::PMiconATagWrap($icon, $cmd, $isExpand);
-       }
-
 }