[BUGFIX] Show nav title in element browser 47/44747/6
authorMarco Huber <mail@marco-huber.de>
Tue, 17 Nov 2015 12:56:36 +0000 (13:56 +0100)
committerMarkus Klein <markus.klein@typo3.org>
Wed, 18 Nov 2015 10:31:26 +0000 (11:31 +0100)
Show the nav title instead of the page title in the element browser
(f.e. in the link wizard), if the user TSconfig setting
"options.pageTree.showNavTitle=1" is set.

Resolves: #71625
Related: #64492
Releases: master
Change-Id: Id6721edf9741d05596342f0fee920cf8068e1354
Reviewed-on: https://review.typo3.org/44747
Reviewed-by: Marco Huber <mail@marco-huber.de>
Tested-by: Marco Huber <mail@marco-huber.de>
Tested-by: Gianluigi Martino <gmartino27@gmail.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
typo3/sysext/backend/Classes/Tree/View/BrowseTreeView.php
typo3/sysext/backend/Classes/Tree/View/ElementBrowserPageTreeView.php
typo3/sysext/backend/Classes/Tree/View/PageTreeView.php
typo3/sysext/backend/Classes/View/PageTreeView.php

index a23f679..f0d47ba 100644 (file)
@@ -15,6 +15,7 @@ namespace TYPO3\CMS\Backend\Tree\View;
  */
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * Generate a page-tree, browsable.
@@ -65,6 +66,11 @@ class BrowseTreeView extends AbstractTreeView
     public $domIdPrefix = 'pages';
 
     /**
+     * @var bool
+     */
+    public $ext_showNavTitle = false;
+
+    /**
      * Initialize, setting what is necessary for browsing pages.
      * Using the current user.
      *
@@ -74,17 +80,17 @@ class BrowseTreeView extends AbstractTreeView
      */
     public function init($clause = '', $orderByFields = '')
     {
-        // This will hide records from display - it has nothing todo with user rights!!
+        // This will hide records from display - it has nothing to do with user rights!!
         $clauseExcludePidList = '';
-        if ($pidList = $GLOBALS['BE_USER']->getTSConfigVal('options.hideRecords.pages')) {
-            if ($pidList = $GLOBALS['TYPO3_DB']->cleanIntList($pidList)) {
+        if ($pidList = $this->getBackendUser()->getTSConfigVal('options.hideRecords.pages')) {
+            if ($pidList = $this->getDatabaseConnection()->cleanIntList($pidList)) {
                 $clauseExcludePidList = ' AND pages.uid NOT IN (' . $pidList . ')';
             }
         }
         // This is very important for making trees of pages: Filtering out deleted pages, pages with no access to and sorting them correctly:
-        parent::init(' AND ' . $GLOBALS['BE_USER']->getPagePermsClause(1) . ' ' . $clause . $clauseExcludePidList, 'sorting');
+        parent::init(' AND ' . $this->getBackendUser()->getPagePermsClause(1) . ' ' . $clause . $clauseExcludePidList, 'sorting');
         $this->title = $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
-        $this->MOUNTS = $GLOBALS['BE_USER']->returnWebmounts();
+        $this->MOUNTS = $this->getBackendUser()->returnWebmounts();
         if ($pidList) {
             // Remove mountpoint if explicitly set in options.hideRecords.pages (see above)
             $hideList = explode(',', $pidList);
@@ -119,7 +125,8 @@ class BrowseTreeView extends AbstractTreeView
         if (!$this->ext_IconMode) {
             $theIcon = BackendUtility::wrapClickMenuOnIcon($icon, $this->treeName, $this->getId($row), 0);
         } elseif ($this->ext_IconMode === 'titlelink') {
-            $aOnClick = 'return jumpTo(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->getJumpToParam($row)) . ',this,' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->domIdPrefix . $this->getId($row)) . ',' . $this->bank . ');';
+            $aOnClick = 'return jumpTo(' . GeneralUtility::quoteJSvalue($this->getJumpToParam($row)) . ',this,'
+                        . GeneralUtility::quoteJSvalue($this->domIdPrefix . $this->getId($row)) . ',' . $this->bank . ');';
             $theIcon = '<a href="#" onclick="' . htmlspecialchars($aOnClick) . '">' . $icon . '</a>';
         }
         return $theIcon;
@@ -135,9 +142,22 @@ class BrowseTreeView extends AbstractTreeView
      */
     public function getTitleStr($row, $titleLen = 30)
     {
-        $title = parent::getTitleStr($row, $titleLen);
-        if (isset($row['is_siteroot']) && $row['is_siteroot'] != 0 && $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showDomainNameWithTitle')) {
-            $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('domainName,sorting', 'sys_domain', 'pid=' . $GLOBALS['TYPO3_DB']->quoteStr(($row['uid'] . BackendUtility::deleteClause('sys_domain') . BackendUtility::BEenableFields('sys_domain')), 'sys_domain'), '', 'sorting', 1);
+        if ($this->ext_showNavTitle && isset($row['nav_title']) && trim($row['nav_title']) !== '') {
+            $title = parent::getTitleStr(['title' => $row['nav_title']], $titleLen);
+        } else {
+            $title = parent::getTitleStr($row, $titleLen);
+        }
+        if (!empty($row['is_siteroot']) && $this->getBackendUser()->getTSConfigVal('options.pageTree.showDomainNameWithTitle')) {
+            $rows = $this->getDatabaseConnection()->exec_SELECTgetRows(
+                'domainName,sorting',
+                'sys_domain',
+                'pid=' . $this->getDatabaseConnection()->quoteStr(
+                    $row['uid'] . BackendUtility::deleteClause('sys_domain') . BackendUtility::BEenableFields('sys_domain'),
+                    'sys_domain'
+                ),
+                '',
+                'sorting',
+                1);
             if (is_array($rows) && !empty($rows)) {
                 $title = sprintf('%s [%s]', $title, htmlspecialchars($rows[0]['domainName']));
             }
index 0899922..a3ea73c 100644 (file)
@@ -36,11 +36,6 @@ class ElementBrowserPageTreeView extends BrowseTreeView
     /**
      * @var bool
      */
-    public $ext_showNavTitle = false;
-
-    /**
-     * @var bool
-     */
     public $ext_pArrPages = true;
 
     /**
index 484ee34..42158b7 100644 (file)
@@ -15,7 +15,6 @@ namespace TYPO3\CMS\Backend\Tree\View;
  */
 
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Lang\LanguageService;
 
 /**
  * Generate a page-tree, non-browsable.
@@ -125,16 +124,23 @@ class PageTreeView extends AbstractTreeView
      */
     public function getTitleStr($row, $titleLen = 30)
     {
-        /** @var LanguageService $lang */
-        $lang = $GLOBALS['LANG'];
-        if ($this->ext_showNavTitle && trim($row['nav_title']) !== '') {
-            $title = '<span title="' . $lang->sL('LLL:EXT:lang/locallang_tca.xlf:title', true) . ' ' . htmlspecialchars(trim($row['title'])) . '">' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($row['nav_title'], $titleLen)) . '</span>';
+        $lang = $this->getLanguageService();
+        if ($this->ext_showNavTitle && isset($row['nav_title']) && trim($row['nav_title']) !== '') {
+            $title = '<span title="' . $lang->sL('LLL:EXT:lang/locallang_tca.xlf:title', true) . ' '
+                     . htmlspecialchars(trim($row['title'])) . '">'
+                     . htmlspecialchars(GeneralUtility::fixed_lgd_cs($row['nav_title'], $titleLen))
+                     . '</span>';
         } else {
             $title = htmlspecialchars(GeneralUtility::fixed_lgd_cs($row['title'], $titleLen));
-            if (trim($row['nav_title']) !== '') {
-                $title = '<span title="' . $lang->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.nav_title', true) . ' ' . htmlspecialchars(trim($row['nav_title'])) . '">' . $title . '</span>';
+            if (isset($row['nav_title']) && trim($row['nav_title']) !== '') {
+                $title = '<span title="'
+                         . $lang->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.nav_title', true)
+                         . ' ' . htmlspecialchars(trim($row['nav_title'])) . '">' . $title
+                         . '</span>';
             }
-            $title = trim($row['title']) === '' ? '<em>[' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.no_title', true) . ']</em>' : $title;
+            $title = trim($row['title']) === ''
+                ? '<em>[' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.no_title', true) . ']</em>'
+                : $title;
         }
         return $title;
     }
index 30670dd..1b06718 100644 (file)
@@ -31,16 +31,6 @@ class PageTreeView extends BrowseTreeView
     public $ext_showPageId = false;
 
     /**
-     * @var bool
-     */
-    public $ext_showNavTitle = false;
-
-    /**
-     * @var string
-     */
-    public $ext_IconMode;
-
-    /**
      * @var string
      */
     public $ext_separateNotinmenuPages;