diff --git a/typo3/sysext/backend/Classes/Controller/NewRecordController.php b/typo3/sysext/backend/Classes/Controller/NewRecordController.php
index 1e1b23f4bb4e..7a90e40a2cb4 100644
--- a/typo3/sysext/backend/Classes/Controller/NewRecordController.php
+++ b/typo3/sysext/backend/Classes/Controller/NewRecordController.php
@@ -416,17 +416,7 @@ protected function renderNewRecordControls(): void
}
break;
case 'tt_content':
- if (!$this->newContentInto || !$this->isRecordCreationAllowedForTable($table) || !$this->isTableAllowedOnPage($table, $this->pageinfo)) {
- break;
- }
- $groupedLinksOnTop['tt_content'] = [
- 'title' => $lang->getLL('createNewContent'),
- 'icon' => 'actions-document-new',
- 'items' => [
- $this->renderLink(htmlspecialchars($lang->sL($v['ctrl']['title'])), $table, $this->id),
- $this->renderNewContentElementWizardLink(),
- ],
- ];
+ // Skip, as inserting content elements is part of the page module
break;
default:
if (!$this->newContentInto || !$this->isRecordCreationAllowedForTable($table) || !$this->isTableAllowedOnPage($table, $this->pageinfo)) {
@@ -570,22 +560,6 @@ protected function renderPageSelectPositionLink(): string
';
}
- /**
- * Generate link to the new content element wizard
- */
- protected function renderNewContentElementWizardLink(): string
- {
- $url = (string)$this->uriBuilder->buildUriFromRoute('new_content_element_wizard', ['id' => $this->id, 'returnUrl' => $this->returnUrl]);
- $title = $this->getLanguageService()->getLL('newContentElement');
- return '
-
-
- ';
- }
-
/**
* Returns TRUE if the tablename $checkTable is allowed to be created on the page with record $pid_row
*
diff --git a/typo3/sysext/core/Documentation/Changelog/12.2/Important-99660-RemoveContentSectionFromNewRecordController.rst b/typo3/sysext/core/Documentation/Changelog/12.2/Important-99660-RemoveContentSectionFromNewRecordController.rst
new file mode 100644
index 000000000000..643b949ce31a
--- /dev/null
+++ b/typo3/sysext/core/Documentation/Changelog/12.2/Important-99660-RemoveContentSectionFromNewRecordController.rst
@@ -0,0 +1,25 @@
+.. include:: /Includes.rst.txt
+
+.. _important-99660-1674251294:
+
+==============================================================
+Important: #99660 - Remove content area from new record wizard
+==============================================================
+
+See :issue:`99660`
+
+Description
+===========
+
+The TYPO3 Backend comes with a distinction between "Content elements" and
+other records: While content is managed using the specialized "Page" module,
+the "List" module is the main management interface for other types of records.
+
+Managing content elements from within the "List" module is not a good choice
+for editors, the "Page" module should be used.
+
+To foster this separation, the "Create new record" view reachable from within
+the "List" module no longer allows to add "Content elements". As a side effect,
+this avoids wrong or invalid default values of the "Column" (colPos) field.
+
+.. index:: Backend, ext:backend
diff --git a/typo3/sysext/core/Resources/Private/Language/locallang_misc.xlf b/typo3/sysext/core/Resources/Private/Language/locallang_misc.xlf
index 97db8eee22fb..98f529752ca6 100644
--- a/typo3/sysext/core/Resources/Private/Language/locallang_misc.xlf
+++ b/typo3/sysext/core/Resources/Private/Language/locallang_misc.xlf
@@ -195,12 +195,6 @@
-
-
-
-
-
-
diff --git a/typo3/sysext/core/Tests/Acceptance/Application/Recycler/RecyclerModuleCest.php b/typo3/sysext/core/Tests/Acceptance/Application/Recycler/RecyclerModuleCest.php
index 1609aabda252..264745ff4e5d 100644
--- a/typo3/sysext/core/Tests/Acceptance/Application/Recycler/RecyclerModuleCest.php
+++ b/typo3/sysext/core/Tests/Acceptance/Application/Recycler/RecyclerModuleCest.php
@@ -30,7 +30,7 @@ class RecyclerModuleCest
protected static string $treeNode = '#typo3-pagetree-tree .nodes .node';
protected static string $dragNode = '#typo3-pagetree-toolbar .svg-toolbar__drag-node';
protected static string $nodeEditInput = '.node-edit';
- protected static string $contentTitle = 'Dummy Recycler Content';
+ protected static string $sysNoteSubject = 'Dummy Recycler Content';
protected static string $pageTitle = 'Dummy 1-styleguide TCA demo-new';
public function _before(ApplicationTester $I, PageTree $pageTree, ModalDialog $modalDialog): void
@@ -53,8 +53,8 @@ public function _before(ApplicationTester $I, PageTree $pageTree, ModalDialog $m
$I->switchToContentFrame();
$I->waitForElement('[title="Create new record"]');
$I->click('a[title="Create new record"]');
- $I->click('//a[text()[normalize-space(.) = "Page Content"]]');
- $I->fillField('//input[contains(@data-formengine-input-name, "data[tt_content]") and contains(@data-formengine-input-name, "[header]")]', static::$contentTitle);
+ $I->click('//a[text()[normalize-space(.) = "Internal note"]]');
+ $I->fillField('//input[contains(@data-formengine-input-name, "data[sys_note]") and contains(@data-formengine-input-name, "[subject]")]', static::$sysNoteSubject);
$I->click('button[name="_savedok"]');
$I->click('a[title="Close"]');
}
@@ -70,9 +70,9 @@ public function deleteAndRecoverRecords(ApplicationTester $I): void
// Select depth infinite
$I->selectOption('select[name="depth"]', 999);
- $I->amGoingTo('See if the deleted page its content appear in the recycler');
+ $I->amGoingTo('See if the deleted page and its content appear in the recycler');
$I->waitForText(static::$pageTitle);
- $I->waitForText(static::$contentTitle);
+ $I->waitForText(static::$sysNoteSubject);
$I->amGoingTo('Recover the page and its contents');
$I->click('tr[data-recordtitle="' . static::$pageTitle . '"] .t3js-multi-record-selection-check');
@@ -87,7 +87,7 @@ public function deleteAndRecoverRecords(ApplicationTester $I): void
$newPage = $this->pageTree->getPageXPathByPageName(static::$pageTitle);
$I->click($newPage);
$I->switchToContentFrame();
- $I->waitForText(static::$contentTitle, 10, 'a[aria-label="Edit record"]');
+ $I->waitForText(static::$sysNoteSubject, 10, 'a[aria-label="Edit record"]');
}
/**
@@ -124,7 +124,7 @@ protected function deleteAndWipeRecords(ApplicationTester $I): void
$I->switchToContentFrame();
$I->click('[data-action="reload"]');
- $I->cantSee(static::$contentTitle);
+ $I->cantSee(static::$sysNoteSubject);
$I->cantSee(static::$pageTitle);
}