gpt4 book ai didi

GridFieldConfig 的 SilverStripe 扩展

转载 作者:行者123 更新时间:2023-12-01 22:23:26 25 4
gpt4 key购买 nike

我正在尝试创建一个类来简化每次重新构建 GridFieldConfig 的过程。我对 CMS 中的几乎每个 GridFieldConfig 使用以下设置:

$config = GridFieldConfig::create()->addComponents(
new GridFieldToolbarHeader(),
new GridFieldAddNewButton('toolbar-header-right'),
new GridFieldTitleHeader(),
... etc
)

我不想每次都重复自己,而是创建一个类,该类返回带有上述 组件 的 GridFieldConfig 实例。所以我创建了这个类,但我不确定如何让它正常工作以及如何将它插入到框架/cms。

<?php

class CustomGridConfig extends ??? {

function __construct() {

$config = GridFieldConfig::create()->addComponents(
new GridFieldToolbarHeader(),
new GridFieldAddNewButton('toolbar-header-right'),
new GridFieldTitleHeader()
... etc
);

return $config;

}

}

最终它将在 GridField 中实现如下:

GridField::create('Foo', 'Bar', $this->Foo(), new CustomGridConfig());

我不确定是否可以在这样的类中创建一个类,我也不太确定如何将此类加载到 CMS 中。

此设置的概念是否可行?如果是这样,如何?这将帮助我了解如何正确扩展框架/cms。

最佳答案

SilverStripe 已经附带了一组开箱即用的 GridFieldConfig,它们可能已经满足了您的需要。

要回答您的问题,您需要扩展 GridFieldConfig 并像这样在构造函数中添加您的组件:

class CustomGridConfig extends GridFieldConfig {
public function __construct() {
$this->addComponents(
new GridFieldToolbarHeader(),
new GridFieldAddNewButton('toolbar-header-right'),
new GridFieldTitleHeader()
... etc
);
}
}

执行“刷新”(将 ?flush 附加到任何站点 URL)后,此类将可用 - 请参阅 the documentation on caching .

参见 the docs for information on the built in configs .

关于GridFieldConfig 的 SilverStripe 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566910/

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