[FEATURE] Add search for alias as option to the pagetree filter 84/9084/6
authorThomas Layh <thomas@layh.com>
Wed, 3 Jul 2013 07:47:32 +0000 (09:47 +0200)
committerPhilipp Gampe <philipp.gampe@typo3.org>
Fri, 5 Jul 2013 08:24:01 +0000 (10:24 +0200)
When searching/filtering in the page tree for an alias,
you don't get any results. Search only works with id and page title.

Extend the query to search for the alias, if it is configured in the
user ts config (options.pageTree.searchInAlias)

Change-Id: I40e6ad7b8f2f02cf63820f423830e11f13058621
Resolves: #32960
Releases: 6.2
Reviewed-on: https://review.typo3.org/9084
Reviewed-by: Sebastian Michaelsen
Tested-by: Sebastian Michaelsen
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
typo3/sysext/backend/Classes/Tree/Pagetree/DataProvider.php

index bfe9b13..4628a9a 100644 (file)
@@ -424,11 +424,20 @@ class DataProvider extends \TYPO3\CMS\Backend\Tree\AbstractTreeDataProvider {
                        }
                        $searchFilter = $GLOBALS['TYPO3_DB']->fullQuoteStr('%' . $searchFilter . '%', 'pages');
                        $useNavTitle = $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showNavTitle');
+                       $useAlias = $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.searchInAlias');
+
+                       $searchWhereAlias = '';
+                       if ($useAlias) {
+                               $searchWhereAlias = ' OR alias LIKE ' . $searchFilter;
+                       }
+
                        if ($useNavTitle) {
-                               $searchWhere .= '(nav_title LIKE ' . $searchFilter . ' OR (nav_title = "" AND title LIKE ' . $searchFilter . '))';
+                               $searchWhere .= '(nav_title LIKE ' . $searchFilter .
+                               ' OR (nav_title = "" AND title LIKE ' . $searchFilter . ')' . $searchWhereAlias . ')';
                        } else {
-                               $searchWhere .= 'title LIKE ' . $searchFilter;
+                               $searchWhere .= 'title LIKE ' . $searchFilter . $searchWhereAlias;
                        }
+
                        $where .= ' AND (' . $searchWhere . ')';
                }
                return $where;