后台图像UploadField未在CMS中显示

时间:2016-05-30 08:47:58

标签: php silverstripe

在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

1 个答案:

答案 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列,其中包含一个关系。

字段生成看起来没问题,它应该按原样运行。