在 Silverstripe 中扩展页面

Extending a page in Silverstripe

我正在 Silverstripe 中处理自定义页面,虽然这绝对是基本的,但我仍然无法完成。

我创建了 FundraisingPage(下面的代码)并将新页面设置为 FundraisingPage。然后,我包含了字段数组和 getCMSFields。我重建了数据库并刷新了缓存,但它没有向我显示后端中的字段。

感谢您的帮助。 亚历克斯

<?php
 class FundraisingPage extends Page {

    private static $db = array(
        'fr_video_url' => 'Text',
        'fr_form_url' => 'Text',
        'fr_meter_url' => 'Text',
        'fr_meter_url_employers' => 'Text',
        'fr_meter_url_classes' => 'Text',
    );

     public function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Links', new TextField('fr_video_url', 'Video URL'), 'Content');
        $fields->addFieldToTab('Root.Links', new TextField('fr_form_url', 'Form URL'), 'Content');
        $fields->addFieldToTab('Root.Links', new TextField('fr_meter_url', 'Meter URL'), 'Content');
        $fields->addFieldToTab('Root.Links', new TextField('fr_meter_url_employers','Meter URL by employer'), 'Content');
        $fields->addFieldToTab('Root.Links', new TextField('fr_meter_url_classes', 'Meter URL by classes'), 'Content');

        return $fields;
    }

 }


class FundraisingPage_Controller extends Page_Controller {
}

只需删除每个 addFieldToTab 末尾的“, 'Content'”。由于链接选项卡中没有内容字段,因此无法在 "Content".

之后添加字段
$fields->addFieldToTab('Root.Links', new TextField('fr_meter_url_classes', 'Meter URL by classes'));