在SilverStripe CMS网站上,我有一个我想扩展的自定义页脚附加代码,以便我可以在CMS中上传背景图像。代码似乎很好,但添加的字段无法在CMS中找到。
这是我的代码:
class CustomFooter extends DataExtension {
static $db = array(
'FooterContent' => 'HTMLText'
);
public static $has_one = array(
'Logo' => 'Image',
'BGImage' => 'Background Image'
);
public function getCMSFields() {
$this->extend('updateCMSFields', $fields);
return $fields;
}
public function updateCMSFields(FieldList $fields) {
$fields->addFieldToTab('Root.Footer', new HTMLEditorField('FooterContent', 'Footer Content'));
$fields->addFieldToTab('Root.Main', new UploadField('Logo', 'Company Logo'));
$fields->addFieldToTab('Root.Main', new UploadField('BGImage', 'Background image'));
}
}
奇怪的是,两个图片上传字段都没有显示内容标签显示的位置,并且按预期运行。
为什么不显示UploadField
?
答案 0 :(得分:3)
你的
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Set copySheet = Worksheets("data")
Set pasteSheet = Worksheets("KoMKo")
lRow = copySheet.Cells(copySheet.Rows.Count, 1).End(xlUp).Row
With copySheet.Range("BX2:BX" & lRow)
pasteSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value
End With
看起来很奇怪。 public static $has_one = array(
"Logo"=>"Image",
"BGImage"=>"Background Image"
);
数组的关系名称为key,关系的类名称为value,我怀疑是否允许在名称中包含空格的类名。所以我会尝试像
$has_one
然后运行public static $has_one = array(
"Logo"=>"Image",
"BGImage"=>"Image"
);
并检查数据库中是否有一个dev/build?flush
列和LogoID
列,其中包含一个关系。
字段生成看起来没问题,它应该按原样运行。