diff --git a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
index e9f80ab6604fd9ef80a4537a05824036952d17b4..eb8c3874bab8f5ca3352411190d22c5e808ec3a4 100644
--- a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
+++ b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
@@ -26,10 +26,8 @@ use TYPO3\CMS\Backend\View\BackendLayoutView;
 use TYPO3\CMS\Backend\View\PageLayoutView;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
 use TYPO3\CMS\Core\Database\ConnectionPool;
-use TYPO3\CMS\Core\Database\Query\QueryBuilder;
 use TYPO3\CMS\Core\Database\Query\Restriction\BackendWorkspaceRestriction;
 use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
-use TYPO3\CMS\Core\Database\Query\Restriction\WorkspaceRestriction;
 use TYPO3\CMS\Core\Domain\Repository\PageRepository;
 use TYPO3\CMS\Core\Http\HtmlResponse;
 use TYPO3\CMS\Core\Imaging\Icon;
@@ -72,27 +70,6 @@ class PageLayoutController
      */
     protected $imagemode;
 
-    /**
-     * Search-fields
-     *
-     * @var string
-     */
-    protected $search_field;
-
-    /**
-     * Search-levels
-     *
-     * @var int
-     */
-    protected $search_levels;
-
-    /**
-     * Show-limit
-     *
-     * @var int
-     */
-    protected $showLimit;
-
     /**
      * Return URL
      *
@@ -284,23 +261,14 @@ class PageLayoutController
         // Setting module configuration / page select clause
         $this->MCONF['name'] = $this->moduleName;
         $this->perms_clause = $this->getBackendUser()->getPagePermsClause(Permission::PAGE_SHOW);
-        // Get session data
-        $sessionData = $this->getBackendUser()->getSessionData(__CLASS__);
-        $this->search_field = !empty($sessionData['search_field']) ? $sessionData['search_field'] : '';
 
         $this->id = (int)($parsedBody['id'] ?? $queryParams['id'] ?? 0);
         $this->pointer = $parsedBody['pointer'] ?? $queryParams['pointer'] ?? null;
         $this->imagemode = $parsedBody['imagemode'] ?? $queryParams['imagemode'] ?? null;
         $this->popView = $parsedBody['popView'] ?? $queryParams['popView'] ?? null;
-        $this->search_field = $parsedBody['search_field'] ?? $queryParams['search_field'] ?? null;
-        $this->search_levels = $parsedBody['search_levels'] ?? $queryParams['search_levels'] ?? null;
-        $this->showLimit = $parsedBody['showLimit'] ?? $queryParams['showLimit'] ?? null;
         $returnUrl = $parsedBody['returnUrl'] ?? $queryParams['returnUrl'] ?? null;
         $this->returnUrl = GeneralUtility::sanitizeLocalUrl($returnUrl);
 
-        $sessionData['search_field'] = $this->search_field;
-        // Store session data
-        $this->getBackendUser()->setAndSaveSessionData(__CLASS__, $sessionData);
         // Load page info array:
         $this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause);
         // Initialize menu
@@ -820,7 +788,7 @@ class PageLayoutController
             }
             // Start the dblist object:
             $dbList->itemsLimitSingleTable = 1000;
-            $dbList->start($this->id, $table, $this->pointer, $this->search_field, $this->search_levels, $this->showLimit);
+            $dbList->start($this->id, $table, $this->pointer);
             $dbList->counter = $CMcounter;
             $dbList->ext_function = $this->MOD_SETTINGS['function'];
             // Generate the list of elements here:
@@ -846,15 +814,17 @@ class PageLayoutController
             $content .= $output;
         }
         // Making search form:
-        if (!$this->modTSconfig['properties']['disableSearchBox'] && ($dbList->counter > 0 || $this->currentPageHasSubPages())) {
-            $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ToggleSearchToolbox');
-            $toggleSearchFormButton = $this->buttonBar->makeLinkButton()
-                ->setClasses('t3js-toggle-search-toolbox')
-                ->setTitle($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.searchIcon'))
-                ->setIcon($this->iconFactory->getIcon('actions-search', Icon::SIZE_SMALL))
-                ->setHref('#');
-            $this->buttonBar->addButton($toggleSearchFormButton, ButtonBar::BUTTON_POSITION_LEFT, 4);
-            $this->searchContent = $dbList->getSearchBox();
+        if (!$this->modTSconfig['properties']['disableSearchBox']) {
+            $this->searchContent = $this->getSearchBox();
+            if ($this->searchContent) {
+                $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ToggleSearchToolbox');
+                $toggleSearchFormButton = $this->buttonBar->makeLinkButton()
+                    ->setClasses('t3js-toggle-search-toolbox')
+                    ->setTitle($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.searchIcon'))
+                    ->setIcon($this->iconFactory->getIcon('actions-search', Icon::SIZE_SMALL))
+                    ->setHref('#');
+                $this->buttonBar->addButton($toggleSearchFormButton, ButtonBar::BUTTON_POSITION_LEFT, 4);
+            }
         }
         // Additional footer content
         foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']['drawFooterHook'] ?? [] as $hook) {
@@ -919,9 +889,6 @@ class PageLayoutController
                 'edit_record',
                 'pointer',
                 'new_unique_uid',
-                'search_field',
-                'search_levels',
-                'showLimit'
             ])
             ->setSetVariables(array_keys($this->MOD_MENU));
         $this->buttonBar->addButton($shortcutButton);
@@ -1200,35 +1167,6 @@ class PageLayoutController
         }
     }
 
-    /**
-     * Checks whether the current page has sub pages
-     *
-     * @return bool
-     */
-    protected function currentPageHasSubPages(): bool
-    {
-        // get workspace id
-        $workspaceId = (int)$this->getBackendUser()->workspace;
-
-        /** @var QueryBuilder $queryBuilder */
-        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
-        $queryBuilder->getRestrictions()
-            ->removeAll()
-            ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
-            ->add(GeneralUtility::makeInstance(WorkspaceRestriction::class, $workspaceId));
-
-        $count = $queryBuilder
-            ->count('uid')
-            ->from('pages')
-            ->where(
-                $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($this->id, \PDO::PARAM_INT))
-            )
-            ->execute()
-            ->fetchColumn(0);
-
-        return (bool)$count;
-    }
-
     /**
      * Returns the target page if visible
      *
@@ -1240,4 +1178,74 @@ class PageLayoutController
     {
         return !(bool)($targetPage['hidden'] ?? false) ? $targetPage : [];
     }
+
+    /**
+     * Creates the search box
+     *
+     * @return string HTML for the search box
+     */
+    protected function getSearchBox(): string
+    {
+        if (!$this->getBackendUser()->check('modules', 'web_list')) {
+            return '';
+        }
+        $lang = $this->getLanguageService();
+        $listModule = GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('web_list', ['id' => $this->id]);
+        // Make level selector:
+        $opt = [];
+
+        // "New" generation of search levels ... based on TS config
+        $config = BackendUtility::getPagesTSconfig($this->id);
+        $searchLevelsFromTSconfig = $config['mod.']['web_list.']['searchLevel.']['items.'];
+        $searchLevelItems = [];
+
+        // get translated labels for search levels from pagets
+        foreach ($searchLevelsFromTSconfig as $keySearchLevel => $labelConfigured) {
+            $label = $lang->sL('LLL:' . $labelConfigured);
+            if ($label === '') {
+                $label = $labelConfigured;
+            }
+            $searchLevelItems[$keySearchLevel] = $label;
+        }
+
+        foreach ($searchLevelItems as $kv => $label) {
+            $opt[] = '<option value="' . $kv . '"' . ($kv === 0 ? ' selected="selected"' : '') . '>'
+                . htmlspecialchars($label)
+                . '</option>';
+        }
+        $searchLevelLabel = $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search_levels');
+        $searchStringLabel = $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.searchString');
+        $lMenu = '<select class="form-control" name="search_levels" title="' . htmlspecialchars($searchLevelLabel) . '" id="search_levels">' . implode('', $opt) . '</select>';
+        return '<div class="db_list-searchbox-form db_list-searchbox-toolbar module-docheader-bar module-docheader-bar-search t3js-module-docheader-bar t3js-module-docheader-bar-search" id="db_list-searchbox-toolbar" style="display: none;">
+			<form action="' . htmlspecialchars((string)$listModule) . '" method="post">
+                <div id="typo3-dblist-search">
+                    <div class="panel panel-default">
+                        <div class="panel-body">
+                            <div class="row">
+                                <div class="form-group col-xs-12">
+                                    <label for="search_field">' . htmlspecialchars($searchStringLabel) . ': </label>
+									<input class="form-control" type="search" placeholder="' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.enterSearchString')) . '" title="' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.searchString')) . '" name="search_field" id="search_field" value="" />
+                                </div>
+                                <div class="form-group col-xs-12 col-sm-6">
+									<label for="search_levels">' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.search_levels')) . ': </label>
+									' . $lMenu . '
+                                </div>
+                                <div class="form-group col-xs-12 col-sm-6">
+									<label for="showLimit">' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.limit')) . ': </label>
+									<input class="form-control" type="number" min="0" max="10000" placeholder="10" title="' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.limit')) . '" name="showLimit" id="showLimit" value="" />
+                                </div>
+                                <div class="form-group col-xs-12">
+                                    <div class="form-control-wrap">
+                                        <button type="submit" class="btn btn-default" name="search" title="' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search')) . '">
+                                            ' . $this->iconFactory->getIcon('actions-search', Icon::SIZE_SMALL)->render() . ' ' . htmlspecialchars($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.search')) . '
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </form>
+        </div>';
+    }
 }
diff --git a/typo3/sysext/backend/Classes/View/PageLayoutView.php b/typo3/sysext/backend/Classes/View/PageLayoutView.php
index c4f6cb9b252625885ab3809afb4f161ffe6a7f03..c563da3d2342890cdf3a35c793d30f52396c5fcb 100644
--- a/typo3/sysext/backend/Classes/View/PageLayoutView.php
+++ b/typo3/sysext/backend/Classes/View/PageLayoutView.php
@@ -23,7 +23,6 @@ use TYPO3\CMS\Backend\Clipboard\Clipboard;
 use TYPO3\CMS\Backend\Controller\Page\LocalizationController;
 use TYPO3\CMS\Backend\Controller\PageLayoutController;
 use TYPO3\CMS\Backend\Routing\UriBuilder;
-use TYPO3\CMS\Backend\Tree\View\PageTreeView;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent;
 use TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent;
@@ -49,7 +48,6 @@ use TYPO3\CMS\Core\Site\SiteFinder;
 use TYPO3\CMS\Core\Type\Bitmask\Permission;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\HttpUtility;
-use TYPO3\CMS\Core\Utility\MathUtility;
 use TYPO3\CMS\Core\Utility\StringUtility;
 use TYPO3\CMS\Core\Versioning\VersionState;
 use TYPO3\CMS\Fluid\View\StandaloneView;
@@ -157,34 +155,6 @@ class PageLayoutView implements LoggerAwareInterface
      */
     public $itemLabels = [];
 
-    /**
-     * Number of records to show
-     *
-     * @var int
-     */
-    public $showLimit = 0;
-
-    /**
-     * Containing which fields to display in extended mode
-     *
-     * @var string[]
-     */
-    public $displayFields;
-
-    /**
-     * Field, to sort list by
-     *
-     * @var string
-     */
-    public $sortField;
-
-    /**
-     * default Max items shown per table in "multi-table mode", may be overridden by tables.php
-     *
-     * @var int
-     */
-    public $itemsLimitPerTable = 20;
-
     /**
      * Page select permissions
      *
@@ -213,13 +183,6 @@ class PageLayoutView implements LoggerAwareInterface
      */
     public $calcPerms = 0;
 
-    /**
-     * Levels to search down.
-     *
-     * @var int
-     */
-    public $searchLevels = '';
-
     /**
      * "LIMIT " in SQL...
      *
@@ -262,13 +225,6 @@ class PageLayoutView implements LoggerAwareInterface
      */
     public $eCounter = 0;
 
-    /**
-     * Search string
-     *
-     * @var string
-     */
-    public $searchString = '';
-
     /**
      * default Max items shown per table in "single-table mode", may be overridden by tables.php
      *
@@ -276,13 +232,6 @@ class PageLayoutView implements LoggerAwareInterface
      */
     public $itemsLimitSingleTable = 100;
 
-    /**
-     * Field, indicating to sort in reverse order.
-     *
-     * @var bool
-     */
-    public $sortRev;
-
     /**
      * Specify a list of tables which are the only ones allowed to be displayed.
      *
@@ -2696,12 +2645,9 @@ class PageLayoutView implements LoggerAwareInterface
      * @param int $id Page id for which the list is rendered. Must be >= 0
      * @param string $table Tablename - if extended mode where only one table is listed at a time.
      * @param int $pointer Browsing pointer.
-     * @param string $search Search word, if any
-     * @param int $levels Number of levels to search down the page tree
-     * @param int $showLimit Limit of records to be listed.
      * @throws SiteNotFoundException
      */
-    public function start($id, $table, $pointer, $search = '', $levels = 0, $showLimit = 0)
+    public function start($id, $table, $pointer)
     {
         $this->resolveSiteLanguages((int)$id);
         $backendUser = $this->getBackendUser();
@@ -2713,13 +2659,6 @@ class PageLayoutView implements LoggerAwareInterface
             $this->table = $table;
         }
         $this->firstElementNumber = $pointer;
-        $this->searchString = trim($search);
-        $this->searchLevels = (int)$levels;
-        $this->showLimit = MathUtility::forceIntegerInRange($showLimit, 0, 10000);
-        // Setting GPvars:
-        $this->sortField = GeneralUtility::_GP('sortField');
-        $this->sortRev = GeneralUtility::_GP('sortRev');
-        $this->displayFields = GeneralUtility::_GP('displayFields');
         // Init dynamic vars:
         $this->counter = 0;
         $this->HTMLcode = '';
@@ -2820,10 +2759,7 @@ class PageLayoutView implements LoggerAwareInterface
                 }
                 $this->iLimit = isset($GLOBALS['TCA'][$tableName]['interface']['maxDBListItems'])
                     ? (int)$GLOBALS['TCA'][$tableName]['interface']['maxDBListItems']
-                    : $this->itemsLimitPerTable;
-            }
-            if ($this->showLimit) {
-                $this->iLimit = $this->showLimit;
+                    : 20;
             }
 
             // Finally, render the list:
@@ -2831,123 +2767,6 @@ class PageLayoutView implements LoggerAwareInterface
         }
     }
 
-    /**
-     * Creates the search box
-     *
-     * @param bool $formFields If TRUE, the search box is wrapped in its own form-tags
-     * @return string HTML for the search box
-     */
-    public function getSearchBox($formFields = true)
-    {
-        $lang = $this->getLanguageService();
-        // Setting form-elements, if applicable:
-        $formElements = ['', ''];
-        if ($formFields) {
-            $formElements = [
-                '<form action="' . htmlspecialchars(
-                    $this->listURL('', '-1', 'firstElementNumber,search_field')
-                ) . '" method="post">',
-                '</form>'
-            ];
-        }
-        // Make level selector:
-        $opt = [];
-
-        // "New" generation of search levels ... based on TS config
-        $config = BackendUtility::getPagesTSconfig($this->id);
-        $searchLevelsFromTSconfig = $config['mod.']['web_list.']['searchLevel.']['items.'];
-        $searchLevelItems = [];
-
-        // get translated labels for search levels from pagets
-        foreach ($searchLevelsFromTSconfig as $keySearchLevel => $labelConfigured) {
-            $label = $lang->sL('LLL:' . $labelConfigured);
-            if ($label === '') {
-                $label = $labelConfigured;
-            }
-            $searchLevelItems[$keySearchLevel] = $label;
-        }
-
-        foreach ($searchLevelItems as $kv => $label) {
-            $opt[] = '<option value="' . $kv . '"' . ($kv === $this->searchLevels ? ' selected="selected"' : '') . '>' . htmlspecialchars(
-                $label
-            ) . '</option>';
-        }
-        $lMenu = '<select class="form-control" name="search_levels" title="' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search_levels')
-        ) . '" id="search_levels">' . implode('', $opt) . '</select>';
-        // Table with the search box:
-        $content = '<div class="db_list-searchbox-form db_list-searchbox-toolbar module-docheader-bar module-docheader-bar-search t3js-module-docheader-bar t3js-module-docheader-bar-search" id="db_list-searchbox-toolbar" style="display: ' . ($this->searchString == '' ? 'none' : 'block') . ';">
-			' . $formElements[0] . '
-                <div id="typo3-dblist-search">
-                    <div class="panel panel-default">
-                        <div class="panel-body">
-                            <div class="row">
-                                <div class="form-group col-xs-12">
-                                    <label for="search_field">' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.searchString')
-        ) . ': </label>
-									<input class="form-control" type="search" placeholder="' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.enterSearchString')
-        ) . '" title="' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.searchString')
-        ) . '" name="search_field" id="search_field" value="' . htmlspecialchars($this->searchString) . '" />
-                                </div>
-                                <div class="form-group col-xs-12 col-sm-6">
-									<label for="search_levels">' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.search_levels')
-        ) . ': </label>
-									' . $lMenu . '
-                                </div>
-                                <div class="form-group col-xs-12 col-sm-6">
-									<label for="showLimit">' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.limit')
-        ) . ': </label>
-									<input class="form-control" type="number" min="0" max="10000" placeholder="10" title="' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.limit')
-        ) . '" name="showLimit" id="showLimit" value="' . htmlspecialchars(
-            ($this->showLimit ?: '')
-        ) . '" />
-                                </div>
-                                <div class="form-group col-xs-12">
-                                    <div class="form-control-wrap">
-                                        <button type="submit" class="btn btn-default" name="search" title="' . htmlspecialchars(
-            $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search')
-        ) . '">
-                                            ' . $this->iconFactory->getIcon('actions-search', Icon::SIZE_SMALL)->render(
-            ) . ' ' . htmlspecialchars(
-                $lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.search')
-            ) . '
-                                        </button>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-			' . $formElements[1] . '</div>';
-        return $content;
-    }
-
-    /**
-     * Setting the field names to display in extended list.
-     * Sets the internal variable $this->setFields
-     */
-    public function setDispFields()
-    {
-        $backendUser = $this->getBackendUser();
-        // Getting from session:
-        $dispFields = $backendUser->getModuleData('list/displayFields');
-        // If fields has been inputted, then set those as the value and push it to session variable:
-        if (is_array($this->displayFields)) {
-            reset($this->displayFields);
-            $tKey = key($this->displayFields);
-            $dispFields[$tKey] = $this->displayFields[$tKey];
-            $backendUser->pushModuleData('list/displayFields', $dispFields);
-        }
-        // Setting result:
-        $this->setFields = $dispFields;
-    }
-
     /**
      * Create thumbnail code for record/field
      *
@@ -2962,8 +2781,7 @@ class PageLayoutView implements LoggerAwareInterface
     }
 
     /**
-     * Returns a QueryBuilder configured to select $fields from $table where the pid is restricted
-     * depending on the current searchlevel setting.
+     * Returns a QueryBuilder configured to select $fields from $table where the pid is restricted.
      *
      * @param string $table Table name
      * @param int $pageId Page id Only used to build the search constraints, getPageIdConstraint() used for restrictions
@@ -3011,8 +2829,8 @@ class PageLayoutView implements LoggerAwareInterface
     protected function prepareQueryBuilder(
         string $table,
         int $pageId,
-        array $fieldList = ['*'],
-        array $additionalConstraints = [],
+        array $fieldList,
+        array $additionalConstraints,
         QueryBuilder $queryBuilder,
         bool $addSorting = true
     ): QueryBuilder {
@@ -3029,24 +2847,8 @@ class PageLayoutView implements LoggerAwareInterface
             $queryBuilder->setMaxResults($this->iLimit);
         }
 
-        if ($addSorting) {
-            if ($this->sortField && in_array($this->sortField, $this->makeFieldList($table))) {
-                $queryBuilder->orderBy($this->sortField, $this->sortRev ? 'DESC' : 'ASC');
-            } else {
-                $orderBy = $GLOBALS['TCA'][$table]['ctrl']['sortby'] ?: $GLOBALS['TCA'][$table]['ctrl']['default_sortby'];
-                $orderBys = QueryHelper::parseOrderBy((string)$orderBy);
-                foreach ($orderBys as $orderBy) {
-                    $queryBuilder->addOrderBy($orderBy[0], $orderBy[1]);
-                }
-            }
-        }
-
         // Build the query constraints
         $queryBuilder = $this->addPageIdConstraint($table, $queryBuilder);
-        $searchWhere = $this->makeSearchString($table, $pageId);
-        if (!empty($searchWhere)) {
-            $queryBuilder->andWhere($searchWhere);
-        }
 
         // Filtering on displayable pages (permissions):
         if ($table === 'pages' && $this->perms_clause) {
@@ -3104,140 +2906,13 @@ class PageLayoutView implements LoggerAwareInterface
             ->fetchColumn();
     }
 
-    /**
-     * Creates part of query for searching after a word ($this->searchString)
-     * fields in input table.
-     *
-     * @param string $table Table, in which the fields are being searched.
-     * @param int $currentPid Page id for the possible search limit. -1 only if called from an old XCLASS.
-     * @return string Returns part of WHERE-clause for searching, if applicable.
-     */
-    public function makeSearchString($table, $currentPid = -1)
-    {
-        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
-        $expressionBuilder = $queryBuilder->expr();
-        $constraints = [];
-        $currentPid = (int)$currentPid;
-        $tablePidField = $table === 'pages' ? 'uid' : 'pid';
-        // Make query only if table is valid and a search string is actually defined
-        if (empty($this->searchString)) {
-            return '';
-        }
-
-        $searchableFields = $this->getSearchFields($table);
-        if (MathUtility::canBeInterpretedAsInteger($this->searchString)) {
-            $constraints[] = $expressionBuilder->eq('uid', (int)$this->searchString);
-            foreach ($searchableFields as $fieldName) {
-                if (!isset($GLOBALS['TCA'][$table]['columns'][$fieldName])) {
-                    continue;
-                }
-                $fieldConfig = $GLOBALS['TCA'][$table]['columns'][$fieldName]['config'];
-                $fieldType = $fieldConfig['type'];
-                $evalRules = $fieldConfig['eval'] ?: '';
-                if ($fieldType === 'input' && $evalRules && GeneralUtility::inList($evalRules, 'int')) {
-                    if (!isset($fieldConfig['search']['pidonly'])
-                        || ($fieldConfig['search']['pidonly'] && $currentPid > 0)
-                    ) {
-                        $constraints[] = $expressionBuilder->andX(
-                            $expressionBuilder->eq($fieldName, (int)$this->searchString),
-                            $expressionBuilder->eq($tablePidField, (int)$currentPid)
-                        );
-                    }
-                } elseif ($fieldType === 'text'
-                    || $fieldType === 'flex'
-                    || ($fieldType === 'input' && (!$evalRules || !preg_match('/\b(?:date|time|int)\b/', $evalRules)))
-                ) {
-                    $constraints[] = $expressionBuilder->like(
-                        $fieldName,
-                        $queryBuilder->quote('%' . (int)$this->searchString . '%')
-                    );
-                }
-            }
-        } elseif (!empty($searchableFields)) {
-            $like = $queryBuilder->quote('%' . $queryBuilder->escapeLikeWildcards($this->searchString) . '%');
-            foreach ($searchableFields as $fieldName) {
-                if (!isset($GLOBALS['TCA'][$table]['columns'][$fieldName])) {
-                    continue;
-                }
-                $fieldConfig = $GLOBALS['TCA'][$table]['columns'][$fieldName]['config'];
-                $fieldType = $fieldConfig['type'];
-                $evalRules = $fieldConfig['eval'] ?: '';
-                $searchConstraint = $expressionBuilder->andX(
-                    $expressionBuilder->comparison(
-                        'LOWER(' . $queryBuilder->quoteIdentifier($fieldName) . ')',
-                        'LIKE',
-                        'LOWER(' . $like . ')'
-                    )
-                );
-                if (is_array($fieldConfig['search'])) {
-                    $searchConfig = $fieldConfig['search'];
-                    if (in_array('case', $searchConfig)) {
-                        // Replace case insensitive default constraint
-                        $searchConstraint = $expressionBuilder->andX($expressionBuilder->like($fieldName, $like));
-                    }
-                    if (in_array('pidonly', $searchConfig) && $currentPid > 0) {
-                        $searchConstraint->add($expressionBuilder->eq($tablePidField, (int)$currentPid));
-                    }
-                    if ($searchConfig['andWhere']) {
-                        $searchConstraint->add(
-                            QueryHelper::stripLogicalOperatorPrefix($fieldConfig['search']['andWhere'])
-                        );
-                    }
-                }
-                if ($fieldType === 'text'
-                    || $fieldType === 'flex'
-                    || $fieldType === 'input' && (!$evalRules || !preg_match('/\b(?:date|time|int)\b/', $evalRules))
-                ) {
-                    if ($searchConstraint->count() !== 0) {
-                        $constraints[] = $searchConstraint;
-                    }
-                }
-            }
-        }
-        // If no search field conditions have been built ensure no results are returned
-        if (empty($constraints)) {
-            return '0=1';
-        }
-
-        return $expressionBuilder->orX(...$constraints);
-    }
-
-    /**
-     * Fetches a list of fields to use in the Backend search for the given table.
-     *
-     * @param string $tableName
-     * @return string[]
-     */
-    protected function getSearchFields($tableName)
-    {
-        $fieldArray = [];
-        $fieldListWasSet = false;
-        // Get fields from ctrl section of TCA first
-        if (isset($GLOBALS['TCA'][$tableName]['ctrl']['searchFields'])) {
-            $fieldArray = GeneralUtility::trimExplode(',', $GLOBALS['TCA'][$tableName]['ctrl']['searchFields'], true);
-            $fieldListWasSet = true;
-        }
-        // Call hook to add or change the list
-        foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['mod_list']['getSearchFieldList'] ?? [] as $hookFunction) {
-            $hookParameters = [
-                'tableHasSearchConfiguration' => $fieldListWasSet,
-                'tableName' => $tableName,
-                'searchFields' => &$fieldArray,
-                'searchString' => $this->searchString
-            ];
-            GeneralUtility::callUserFunction($hookFunction, $hookParameters, $this);
-        }
-        return $fieldArray;
-    }
-
     /**
      * Creates the URL to this script, including all relevant GPvars
-     * Fixed GPvars are id, table, imagemode, returnUrl, search_field, search_levels and showLimit
-     * The GPvars "sortField" and "sortRev" are also included UNLESS they are found in the $exclList variable.
+     * Fixed GPvars are id, table, imagemode
      *
      * @param string $altId Alternative id value. Enter blank string for the current id ($this->id)
      * @param string $table Table name to display. Enter "-1" for the current table.
-     * @param string $exclList Comma separated list of fields NOT to include ("sortField", "sortRev" or "firstElementNumber")
+     * @param string $exclList Comma separated list of fields NOT to include ("firstElementNumber")
      * @return string URL
      */
     public function listURL($altId = '', $table = '-1', $exclList = '')
@@ -3256,24 +2931,9 @@ class PageLayoutView implements LoggerAwareInterface
         if ($this->thumbs) {
             $urlParameters['imagemode'] = $this->thumbs;
         }
-        if ((!$exclList || !GeneralUtility::inList($exclList, 'search_field')) && $this->searchString) {
-            $urlParameters['search_field'] = $this->searchString;
-        }
-        if ($this->searchLevels) {
-            $urlParameters['search_levels'] = $this->searchLevels;
-        }
-        if ($this->showLimit) {
-            $urlParameters['showLimit'] = $this->showLimit;
-        }
         if ((!$exclList || !GeneralUtility::inList($exclList, 'firstElementNumber')) && $this->firstElementNumber) {
             $urlParameters['pointer'] = $this->firstElementNumber;
         }
-        if ((!$exclList || !GeneralUtility::inList($exclList, 'sortField')) && $this->sortField) {
-            $urlParameters['sortField'] = $this->sortField;
-        }
-        if ((!$exclList || !GeneralUtility::inList($exclList, 'sortRev')) && $this->sortRev) {
-            $urlParameters['sortRev'] = $this->sortRev;
-        }
 
         if ($routePath = GeneralUtility::_GP('route')) {
             $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
@@ -3338,58 +2998,9 @@ class PageLayoutView implements LoggerAwareInterface
         return $fieldListArr;
     }
 
-    /**
-     * @return array
-     */
-    public function getOverridePageIdList(): array
-    {
-        return $this->overridePageIdList;
-    }
-
-    /**
-     * @param int[]|array $overridePageIdList
-     */
-    public function setOverridePageIdList(array $overridePageIdList)
-    {
-        $this->overridePageIdList = array_map('intval', $overridePageIdList);
-    }
-
-    /**
-     * Get all allowed mount pages to be searched in.
-     *
-     * @param int $id Page id
-     * @param int $depth Depth to go down
-     * @param string $perms_clause select clause
-     * @return int[]
-     */
-    protected function getSearchableWebmounts($id, $depth, $perms_clause)
-    {
-        $backendUser = $this->getBackendUser();
-        /** @var PageTreeView $tree */
-        $tree = GeneralUtility::makeInstance(PageTreeView::class);
-        $tree->init('AND ' . $perms_clause);
-        $tree->makeHTML = 0;
-        $tree->fieldArray = ['uid', 'php_tree_stop'];
-        $idList = [];
-
-        $allowedMounts = !$backendUser->isAdmin() && $id === 0
-            ? $backendUser->returnWebmounts()
-            : [$id];
-
-        foreach ($allowedMounts as $allowedMount) {
-            $idList[] = $allowedMount;
-            if ($depth) {
-                $tree->getTree($allowedMount, $depth, '');
-            }
-            $idList = array_merge($idList, $tree->ids);
-        }
-
-        return $idList;
-    }
-
     /**
      * Add conditions to the QueryBuilder object ($queryBuilder) to limit a
-     * query to a list of page IDs based on the current search level setting.
+     * query to a list of page IDs
      *
      * @param string $tableName
      * @param QueryBuilder $queryBuilder
@@ -3397,41 +3008,12 @@ class PageLayoutView implements LoggerAwareInterface
      */
     protected function addPageIdConstraint(string $tableName, QueryBuilder $queryBuilder): QueryBuilder
     {
-        // Set search levels:
-        $searchLevels = $this->searchLevels;
-
-        // Set search levels to 999 instead of -1 as the following methods
-        // do not support -1 as valid value for infinite search.
-        if ($searchLevels === -1) {
-            $searchLevels = 999;
-        }
-
-        if ($searchLevels === 0) {
-            $queryBuilder->andWhere(
-                $queryBuilder->expr()->eq(
-                    $tableName . '.pid',
-                    $queryBuilder->createNamedParameter($this->id, \PDO::PARAM_INT)
-                )
-            );
-        } elseif ($searchLevels > 0) {
-            $allowedMounts = $this->getSearchableWebmounts($this->id, $searchLevels, $this->perms_clause);
-            $queryBuilder->andWhere(
-                $queryBuilder->expr()->in(
-                    $tableName . '.pid',
-                    $queryBuilder->createNamedParameter($allowedMounts, Connection::PARAM_INT_ARRAY)
-                )
-            );
-        }
-
-        if (!empty($this->getOverridePageIdList())) {
-            $queryBuilder->andWhere(
-                $queryBuilder->expr()->in(
-                    $tableName . '.pid',
-                    $queryBuilder->createNamedParameter($this->getOverridePageIdList(), Connection::PARAM_INT_ARRAY)
-                )
-            );
-        }
-
+        $queryBuilder->andWhere(
+            $queryBuilder->expr()->eq(
+                $tableName . '.pid',
+                $queryBuilder->createNamedParameter($this->id, \PDO::PARAM_INT)
+            )
+        );
         return $queryBuilder;
     }
 
diff --git a/typo3/sysext/backend/Tests/Functional/Controller/PageLayoutControllerTest.php b/typo3/sysext/backend/Tests/Functional/Controller/PageLayoutControllerTest.php
deleted file mode 100644
index 3cec1f3dc62ddfaa10a75defce9d73912f9d92b0..0000000000000000000000000000000000000000
--- a/typo3/sysext/backend/Tests/Functional/Controller/PageLayoutControllerTest.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-namespace TYPO3\CMS\Backend\Tests\Functional\Controller;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Controller\PageLayoutController;
-use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
-use TYPO3\CMS\Core\Core\Bootstrap;
-use TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait;
-use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
-use TYPO3\TestingFramework\Core\Functional\Framework\DataHandling\Scenario\DataHandlerFactory;
-use TYPO3\TestingFramework\Core\Functional\Framework\DataHandling\Scenario\DataHandlerWriter;
-use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
-
-/**
- * Functional database test for PageLayoutController behaviour
- */
-class PageLayoutControllerTest extends FunctionalTestCase
-{
-    use SiteBasedTestTrait;
-
-    /**
-     * @var string[]
-     */
-    protected $coreExtensionsToLoad = ['workspaces'];
-
-    /**
-     * @var PageLayoutController|AccessibleObjectInterface
-     */
-    private $subject;
-
-    /**
-     * @var BackendUserAuthentication
-     */
-    private $backendUser;
-
-    public static function setUpBeforeClass(): void
-    {
-        parent::setUpBeforeClass();
-        static::initializeDatabaseSnapshot();
-    }
-
-    public static function tearDownAfterClass(): void
-    {
-        static::destroyDatabaseSnapshot();
-        parent::tearDownAfterClass();
-    }
-
-    protected function setUp(): void
-    {
-        parent::setUp();
-
-        $this->subject = $this->getAccessibleMock(PageLayoutController::class, ['dummy']);
-        $this->backendUser = $this->setUpBackendUserFromFixture(1);
-
-        $this->withDatabaseSnapshot(function () {
-            $this->setUpDatabase();
-        });
-    }
-
-    protected function tearDown(): void
-    {
-        unset($this->subject, $this->backendUser);
-        parent::tearDown();
-    }
-
-    protected function setUpDatabase()
-    {
-        Bootstrap::initializeLanguageObject();
-
-        $scenarioFile = __DIR__ . '/../Fixtures/CommonScenario.yaml';
-        $factory = DataHandlerFactory::fromYamlFile($scenarioFile);
-        $writer = DataHandlerWriter::withBackendUser($this->backendUser);
-        $writer->invokeFactory($factory);
-        static::failIfArrayIsNotEmpty(
-            $writer->getErrors()
-        );
-    }
-
-    /**
-     * @return array
-     */
-    public function currentPageHasSubPagesDataProvider(): array
-    {
-        return [
-            'live workspace with live & version sub pages' => [
-                1000,
-                0,
-                true
-            ],
-            'draft workspace with live & version sub pages' => [
-                1000,
-                1,
-                true
-            ],
-            'live workspace with version sub pages only' => [
-                1950,
-                0,
-                false
-            ],
-            'draft workspace with version sub pages only' => [
-                1950,
-                1,
-                true
-            ],
-            'live workspace with live sub pages only' => [
-                2000,
-                0,
-                true
-            ],
-            'draft workspace with live sub pages only' => [
-                2000,
-                1,
-                true
-            ],
-        ];
-    }
-
-    /**
-     * @param int $pageId
-     * @param int $workspaceId
-     * @param bool $expectation
-     *
-     * @dataProvider currentPageHasSubPagesDataProvider
-     * @test
-     */
-    public function currentPageHasSubPages(int $pageId, int $workspaceId, bool $expectation)
-    {
-        $this->backendUser->workspace = $workspaceId;
-        $this->subject->_set('id', $pageId);
-        $actualResult = $this->subject->_call('currentPageHasSubPages');
-        self::assertSame($expectation, $actualResult);
-    }
-}