FIX Remove any extra added tabs from SingleTabPage

This commit is contained in:
Steve Boyd 2024-06-13 12:18:39 +12:00
parent 58c8438ed5
commit 5bbeb77777

View File

@ -4,6 +4,7 @@ namespace SilverStripe\FrameworkTest\Model;
use Page;
use SilverStripe\Forms\RequiredFields;
use SilverStripe\Forms\Tab;
if (!class_exists(Page::class)) {
return;
@ -22,4 +23,22 @@ class SingleTabPage extends Page
'Content'
]);
}
public function getCMSFields()
{
$fields = parent::getCMSFields();
// Page may will extend CWP BasePage if running in a kitchen-sink context,
// so removing any extra tabs added - this class is for a "single tab" test
$tabFieldNames = [];
foreach ($fields->flattenFields() as $field) {
$fieldName = $field->getName();
if (is_a($field, Tab::class) && $fieldName !== 'Main') {
$tabFieldNames[] = $fieldName;
}
}
foreach ($tabFieldNames as $tabFieldName) {
$fields->removeByName($tabFieldName);
}
return $fields;
}
}