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找不到。
答案 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;
}