【问题标题】:Silverstripe nivo sliderSilverstripe nivo 滑块
【发布时间】:2014-07-09 07:54:05
【问题描述】:
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 silder 任何人都可以帮助我理解是一段代码。 我收到一个错误 ComplexTableField 找不到。

【问题讨论】:

  • 您使用的是什么版本的 SilverStripe?

标签: silverstripe nivo-slider


【解决方案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;
}

【讨论】:

  • 用什么代替 CompositeField..?
  • 你为什么这么问? CompositeField 在 Silverstripe 3.1 中仍然有效:api.silverstripe.org/3.1/class-CompositeField.html
  • 在非对象上调用成员函数 addComponent():我收到此错误
  • 如何在 datefield 中显示 Datepicker..??我在 yml 文件中进行了更改,但它没有反映在 datefield 上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 2013-09-10
  • 1970-01-01
相关资源
最近更新 更多