Silverstripe nivo滑块

时间:2014-07-09 07:54:06

标签: silverstripe nivo-slider

if (class_exists('DataObjectManager'))
    $a='DataObjectManager';
else
    $a='ComplexTableField';
$f->addFieldToTab(
    "Root.Content.Panels",
    new $a(
        $this,
        'Panels',
        'NivoSliderPanel',
        array('Name' => 'Name','Thumbnail' => 'Thumbnail'),
        'getCMSFields_forPopup'
    )
);

我正在使用nivo滑块任何人都可以帮助我理解是一段代码。 我收到一个错误ComplexTableField找不到。

1 个答案:

答案 0 :(得分:1)

ComplexTableField来自Silverstripe 2.4,不再适用于3.0或3.1。

如果您收到ComplexTableField无法找到的错误,那么我猜您正在使用Silverstripe 3.1。

Silverstripe 2.4代码在3.1中不起作用。此代码需要修改才能在3.1中工作。

在Silverstripe 3.1 GridField已取代ComplexTableField

使用GridField看起来像这样:

private static $has_many = array (
    'Panels' => 'Panel'
);

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

    $panelsField = new GridField(
        'Panels',
        'Panels',
        $this->Panels(),
        GridFieldConfig_RecordEditor::create()
    ); 
    $fields->addFieldToTab('Root.Panels', $panelsField);

    return $fields;
}