2 namespace TYPO3\CMS\Recordlist\Browser;
46 $this->pageRenderer->loadRequireJsModule(
'TYPO3/CMS/Recordlist/BrowseDatabase');
54 parent::initVariables();
66 if ($this->expandPage !== null) {
70 $this->expandPage = (int)$data[
'expandPage'];
73 return array($data, $store);
83 list(, , , $allowedTables) = explode(
'|', $this->bparams);
89 $pageTree->setLinkParameterProvider($this);
90 $pageTree->ext_pArrPages = $allowedTables ===
'pages';
91 $pageTree->ext_showNavTitle = (bool)$backendUser->getTSConfigVal(
'options.pageTree.showNavTitle');
92 $pageTree->ext_showPageId = (bool)$backendUser->getTSConfigVal(
'options.pageTree.showPageIdWithTitle');
93 $pageTree->addField(
'nav_title');
94 $tree = $pageTree->getBrowsableTree();
97 if ($allowedTables !==
'' && $allowedTables !==
'*') {
99 $onlyRootLevel =
true;
100 foreach ($tablesArr as $currentTable) {
101 if (isset(
$GLOBALS[
'TCA'][$currentTable])) {
102 if (!isset(
$GLOBALS[
'TCA'][$currentTable][
'ctrl'][
'rootLevel']) || (
int)
$GLOBALS[
'TCA'][$currentTable][
'ctrl'][
'rootLevel'] !== 1) {
103 $onlyRootLevel =
false;
107 if ($onlyRootLevel) {
110 $this->expandPage = 0;
114 $renderedRecordList = $this->renderTableRecords($allowedTables);
117 $content = $this->doc->startPage(
'TBE record selector');
118 $content .= $this->doc->getFlashMessages();
123 Wrapper table for page tree / record list:
125 <table border="0" cellpadding="0" cellspacing="0" id="typo3-EBrecords">
128 $content .=
'<td class="c-wCell" valign="top">'
132 $content .=
'<td class="c-wCell" valign="top">' . $renderedRecordList .
'</td>
138 $content .=
'<br /><br />';
140 $content .= $this->doc->endPage();
141 return $this->doc->insertStylesAndJS($content);
151 if ((
int)$this->
getBackendUser()->getSessionData(
'pageTree_temporaryMountPoint') === 0) {
155 . $this->
getLanguageService()->sl(
'LLL:EXT:lang/locallang_core.xlf:labels.temporaryDBmount',
true) .
'</a>';
169 if (isset($tmpMount)) {
170 $backendUser->setAndSaveSessionData(
'pageTree_temporaryMountPoint', (
int)$tmpMount);
173 $alternativeWebmountPoint = (int)$backendUser->getSessionData(
'pageTree_temporaryMountPoint');
174 if ($alternativeWebmountPoint) {
176 $backendUser->setWebmounts($alternativeWebmountPoint);
179 $alternativeWebmountPoints = trim($backendUser->getTSConfigVal(
'options.pageTree.altElementBrowserMountPoints'));
180 $appendAlternativeWebmountPoints = $backendUser->getTSConfigVal(
'options.pageTree.altElementBrowserMountPoints.append');
181 if ($alternativeWebmountPoints) {
183 $this->
getBackendUser()->setWebmounts($alternativeWebmountPoints, $appendAlternativeWebmountPoints);
194 protected function renderTableRecords($tables)
197 if ($this->expandPage === null || $this->expandPage < 0 || !$backendUser->isInWebMount($this->expandPage)) {
201 if (trim($tables) ===
'*') {
202 $tablesArr = array_keys(
$GLOBALS[
'TCA']);
210 $titleLen = (int)$backendUser->uc[
'titleLen'];
212 if (is_array($mainPageRecord)) {
215 $out .= $this->iconFactory->getIconForRecord(
'pages', $mainPageRecord,
Icon::SIZE_SMALL)->render();
216 if (in_array(
'pages', $tablesArr,
true)) {
217 $out .=
'<span data-uid="' . htmlspecialchars($mainPageRecord[
'uid']) .
'" data-table="pages" data-title="' . htmlspecialchars($mainPageRecord[
'title']) .
'" data-icon="">';
218 $out .=
'<a href="#" data-close="0">'
219 . $this->iconFactory->getIcon(
'actions-edit-add',
Icon::SIZE_SMALL)->render()
221 .
'<a href="#" data-close="1">'
231 $permsClause = $backendUser->getPagePermsClause(1);
238 $dbList->thumbs =
false;
239 $dbList->localizationView =
true;
240 $dbList->setIsEditable(
false);
241 $dbList->calcPerms = $backendUser->calcPerms($pageInfo);
242 $dbList->noControlPanels =
true;
243 $dbList->clickMenuEnabled =
false;
244 $dbList->tableList = implode(
',', $tablesArr);
247 list($fieldPointerString) = explode(
'|', $this->bparams);
249 $fieldPointerParts = explode(
'[', $fieldPointerString);
250 $relatingTableName = substr($fieldPointerParts[1], 0, -1);
251 $relatingFieldName = substr($fieldPointerParts[3], 0, -1);
252 if ($relatingTableName && $relatingFieldName) {
253 $dbList->setRelatingTableAndField($relatingTableName, $relatingFieldName);
265 $dbList->setDispFields();
266 $dbList->generateList();
268 $out .= $dbList->getSearchBox();
271 $out .= $dbList->HTMLcode;
274 if ($dbList->table) {
275 $this->pageRenderer->loadRequireJsModule(
'TYPO3/CMS/Recordlist/FieldSelectBox');
276 $out .= $dbList->fieldSelectBox($dbList->table);
301 'expandPage' => $pid,