55 foreach ($layoutData as $data) {
57 $backendLayoutCollection->
add($backendLayout);
70 $backendLayout =
null;
72 if ((
string)$identifier ===
'default') {
78 if (is_array($data)) {
82 return $backendLayout;
94 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.backend_layout.default',
108 $backendLayout->setIconPath($this->
getIconPath($data));
109 $backendLayout->setData($data);
110 return $backendLayout;
121 $fileRepository = GeneralUtility::makeInstance(FileRepository::class);
122 $references = $fileRepository->findByRelation($this->tableName,
'icon', $icon[
'uid']);
123 if (!empty($references)) {
124 $icon = reset($references);
125 return $icon->getPublicUrl();
138 protected function getLayoutData($fieldName, array $pageTsConfig, $pageUid)
144 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
145 ->getQueryBuilderForTable($this->tableName);
146 $queryBuilder->getRestrictions()
148 GeneralUtility::makeInstance(
149 WorkspaceRestriction::class,
150 GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect(
'workspace',
'id')
155 ->from($this->tableName)
157 $queryBuilder->expr()->orX(
158 $queryBuilder->expr()->andX(
159 $queryBuilder->expr()->comparison(
160 $queryBuilder->createNamedParameter($pageTsConfigId[$fieldName], \PDO::PARAM_INT),
162 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
164 $queryBuilder->expr()->comparison(
165 $queryBuilder->createNamedParameter($storagePid, \PDO::PARAM_INT),
167 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
170 $queryBuilder->expr()->orX(
171 $queryBuilder->expr()->eq(
172 'backend_layout.pid',
173 $queryBuilder->createNamedParameter($pageTsConfigId[$fieldName], \PDO::PARAM_INT)
175 $queryBuilder->expr()->eq(
176 'backend_layout.pid',
177 $queryBuilder->createNamedParameter($storagePid, \PDO::PARAM_INT)
180 $queryBuilder->expr()->andX(
181 $queryBuilder->expr()->comparison(
182 $queryBuilder->createNamedParameter($pageTsConfigId[$fieldName], \PDO::PARAM_INT),
184 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
186 $queryBuilder->expr()->eq(
187 'backend_layout.pid',
188 $queryBuilder->createNamedParameter($pageUid, \PDO::PARAM_INT)
194 if (!empty(
$GLOBALS[
'TCA'][$this->tableName][
'ctrl'][
'sortby'])) {
195 $queryBuilder->orderBy(
$GLOBALS[
'TCA'][$this->tableName][
'ctrl'][
'sortby']);
198 $statement = $queryBuilder->execute();
201 while ($record = $statement->fetch()) {
203 if (is_array($record)) {
204 $results[$record[
't3ver_oid'] ?: $record[
'uid']] = $record;
221 if (!empty($pageTsConfig[
'TCEFORM.'][
'pages.'][
'_STORAGE_PID'])) {
222 $storagePid = (int)$pageTsConfig[
'TCEFORM.'][
'pages.'][
'_STORAGE_PID'];
237 'backend_layout' => 0,
238 'backend_layout_next_level' => 0,
241 if (!empty($pageTsConfig[
'TCEFORM.'][
'pages.'][
'backend_layout.'][
'PAGE_TSCONFIG_ID'])) {
242 $pageTsConfigIds[
'backend_layout'] = (int)$pageTsConfig[
'TCEFORM.'][
'pages.'][
'backend_layout.'][
'PAGE_TSCONFIG_ID'];
245 if (!empty($pageTsConfig[
'TCEFORM.'][
'pages.'][
'backend_layout_next_level.'][
'PAGE_TSCONFIG_ID'])) {
246 $pageTsConfigIds[
'backend_layout_next_level'] = (int)$pageTsConfig[
'TCEFORM.'][
'pages.'][
'backend_layout_next_level.'][
'PAGE_TSCONFIG_ID'];
249 return $pageTsConfigIds;