如何在 silverstripe 中堆叠 CMS 字段标签?
How do I stack CMS field labels in silverstripe?
我正在 SilverStripe 4 中创建自定义 CMS 字段,它们是用左栏中的标签和右栏中的编辑器构建的。
见图:
如何像图片中的默认内容编辑器和标签一样堆叠标签和编辑器?
所以我在搜索其他内容时终于找到了答案。我会回答我自己的问题,以防将来有人在寻找同样的东西,因为很难找到 Silverstripe 问题的答案。
文档中说要为额外的所见即所得编辑器执行此操作
return new FieldList([
new HTMLEditorField('OtherContent', 'Other content', $this->OtherContent, 'myConfig')
]);
我们将把它分解成组件,以便我们更好地控制
$fields = parent::getCMSFields();
//create a $fields variable that will hold the new fields
$jobDescriptionField = HTMLEditorField::create('JobDescription', 'JobDescription');
//create the actual field in it's own variable
$fields->addFieldToTab('Root.Main', $jobDescriptionField , 'Content');
//add the new field to our fields and tell it to appear above the default 'Content' editor
如果我们停在这里 return $fields,我们将让 Label 浮动到左侧,内容编辑器浮动到右侧。即使在全屏上它也会被压扁。不好。
因此我们需要添加一个由 silverstripe 提供的 class,名为 "stacked"
$jobDescriptionField->addExtraClass('stacked');
因此完整代码如下所示:
public function getCMSFields(){
$fields = parent::getCMSFields();
$jobDescriptionField = HTMLEditorField::create('JobDescription', 'JobDescription');
$fields->addFieldToTab('Root.Main', $jobDescriptionField , 'Content');
$jobDescriptionField->addExtraClass('stacked');
return $fields;
}
我正在 SilverStripe 4 中创建自定义 CMS 字段,它们是用左栏中的标签和右栏中的编辑器构建的。
见图:
如何像图片中的默认内容编辑器和标签一样堆叠标签和编辑器?
所以我在搜索其他内容时终于找到了答案。我会回答我自己的问题,以防将来有人在寻找同样的东西,因为很难找到 Silverstripe 问题的答案。
文档中说要为额外的所见即所得编辑器执行此操作
return new FieldList([
new HTMLEditorField('OtherContent', 'Other content', $this->OtherContent, 'myConfig')
]);
我们将把它分解成组件,以便我们更好地控制
$fields = parent::getCMSFields();
//create a $fields variable that will hold the new fields
$jobDescriptionField = HTMLEditorField::create('JobDescription', 'JobDescription');
//create the actual field in it's own variable
$fields->addFieldToTab('Root.Main', $jobDescriptionField , 'Content');
//add the new field to our fields and tell it to appear above the default 'Content' editor
如果我们停在这里 return $fields,我们将让 Label 浮动到左侧,内容编辑器浮动到右侧。即使在全屏上它也会被压扁。不好。
因此我们需要添加一个由 silverstripe 提供的 class,名为 "stacked"
$jobDescriptionField->addExtraClass('stacked');
因此完整代码如下所示:
public function getCMSFields(){
$fields = parent::getCMSFields();
$jobDescriptionField = HTMLEditorField::create('JobDescription', 'JobDescription');
$fields->addFieldToTab('Root.Main', $jobDescriptionField , 'Content');
$jobDescriptionField->addExtraClass('stacked');
return $fields;
}