在 SilverStripe CMS 中移动元数据字段?
Move metadata field in SilverStripe CMS?
我正在尝试移动 SilverStripe CMS 中的默认元数据字段,但似乎无法成功。这是我试过的:
$fields->removeFieldFromTab("Root.Content.Main", "Metadata");
$fields->insertBefore(new FormField('Metadata', 'Metadata'), 'Content');
但是不行。我可以删除此字段,但将它添加回我想要的位置是一个挑战,因为它不仅仅是一个普通的文本字段或 HTML 字段。使用上面的代码,我在我想要的位置插入了一个新的元数据字段,但它不是正确的字段类型,也不包含任何现有的元数据字段元素。
有没有办法绕过这样的字段?
我们可以使用 $fields->fieldByName('Root.Main.Metadata')
检索当前的元数据字段,以便我们可以将其放回原处。
尝试以下操作:
function getCMSFields() {
$fields = parent::getCMSFields();
if ($metadataField = $fields->fieldByName('Root.Main.Metadata')) {
$fields->removeFieldFromTab('Root.Main', 'Metadata');
$fields->addFieldToTab('Root.Main', $metadataField, 'Content');
}
return $fields;
}
我正在尝试移动 SilverStripe CMS 中的默认元数据字段,但似乎无法成功。这是我试过的:
$fields->removeFieldFromTab("Root.Content.Main", "Metadata");
$fields->insertBefore(new FormField('Metadata', 'Metadata'), 'Content');
但是不行。我可以删除此字段,但将它添加回我想要的位置是一个挑战,因为它不仅仅是一个普通的文本字段或 HTML 字段。使用上面的代码,我在我想要的位置插入了一个新的元数据字段,但它不是正确的字段类型,也不包含任何现有的元数据字段元素。
有没有办法绕过这样的字段?
我们可以使用 $fields->fieldByName('Root.Main.Metadata')
检索当前的元数据字段,以便我们可以将其放回原处。
尝试以下操作:
function getCMSFields() {
$fields = parent::getCMSFields();
if ($metadataField = $fields->fieldByName('Root.Main.Metadata')) {
$fields->removeFieldFromTab('Root.Main', 'Metadata');
$fields->addFieldToTab('Root.Main', $metadataField, 'Content');
}
return $fields;
}