gpt4 book ai didi

php - 对继承对象重新排序/移动 Silverstripe 3 CMS 选项卡

转载 作者:可可西里 更新时间:2023-10-31 23:01:31 24 4
gpt4 key购买 nike

到处搜索这个问题的答案,但似乎没有其他人拥有它或真正担心它。这是问题所在:

  • A 类有一个 getCMSFields() 方法,它添加了一个名为“Root.SEO”的选项卡,其中包含一些字段。
  • B 类继承自 A 类并拥有自己的 getCMSFields() 方法,该方法首先调用 $fields = parent::getCMSFields() 并向 $fields 添加更多字段/选项卡。
  • SEO 选项卡始终位于 B 类中设置的任何内容之前,因为 A 类首先执行。但我希望它位于 B 类定义的两个选项卡之间的某个位置

我尝试了 $fields->removeByName('SEO') 并且他们手动重新添加了 B 类中的选项卡。这很好,但我似乎无法找到一种方法来在删除 SEO 选项卡之前获取它的内容。所以我能做的最好的事情就是正确定位一个空的 SEO 选项卡,其中没有来自 A 类的字段。

最佳答案

一种方法是删除 SEO 选项卡,然后在添加其他字段和选项卡后将其重新添加:

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

// Add fields here

if ($seoTab = $fields->fieldByName('Root.SEO')) {
$fields->removeFieldFromTab('Root', 'SEO');
$fields->fieldByName('Root')->push($seoTab);
}
}

关于php - 对继承对象重新排序/移动 Silverstripe 3 CMS 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com