【问题标题】:New Fields under "MetaData-Tab" after removing Content Field - Silverstripe删除内容字段后“元数据选项卡”下的新字段 - Silverstripe
【发布时间】:2013-10-22 15:00:57
【问题描述】:

从页面类型中删除内容字段后,添加到 Root.Main 的所有新字段都会出现在元数据选项卡下。这很烦人。谁能告诉我如何获取 MetaData-Tab 上方的新字段?

这是我的代码

        $fields->removeFieldsFromTab('Root.Main', array('Content'));

    $newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
    $fields->addFieldToTab('Root.Main', $newsObjectField);

提前致谢

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    addFieldToTab默认在列表末尾添加新字段。

    所以你可以使用类似的东西:

    $newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
    $fields->fieldByName('Root')->fieldByName('Main')->insertAfter($newsObjectField, 'MenuTitle');
    

    insertInsertBefore 的工作原理类似。

    这里的MenuTitle 可以是您想要的任何其他字段名称。

    fieldByName 使用点分语法,所以它也可以是$fields->fieldByName('Root.Main')

    编辑

    @Zauberfisch 指出,addFieldToTab 可以采用第三个参数,让您指定在哪个字段之前插入:

    $fields->addFieldToTab('Root.Main', $newsObjectField, 'Metadata');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多